
- •1. Разл.Парадигмы пр-я и подходы к опр-ю выч-ти. Декларативные яп как альт. Императивным. Лп как алг-я модель, альт-я модели Тьюринга — фон Неймана.
- •3.Исчисление предикатов 1-го порядка. Понятие о формальной аксиоматической системе.Выводимость (|-) в форм. Аксиом. Системе.Правило вывода modus ponens.
- •4. Понятие о полноте, непротиворечивости и корректности логической системы. Связь логического вывода с общезначимостью. Тh о дедукции.
- •5.Алгоритмическая неразрешимость исчисления предикатов. Тh Черча. Th Геделя о неполноте формальной арифметики.
- •6. Норм-е формы. Дизьюнкты Хорна. Сведение ф-л лог.Пр-в к фразам Хорна.
- •7. Унификация. Правила унификации сложных структур.
- •8. Правило вывода modus tollens. Простое и обобщенное правило резолюции.
- •9. Метод резолюции для реализации эф-го логического вывода в логических программах на основе фраз Хорна. Стратегии резолюции. Sld-резолюция.
- •11. Декларативная и процедурная семантика языка лп. Примеры.
- •12. Отрицание в логическом программировании. Отрицание по неуспеху и предположение о замкнутости мира. Sldnf-резолюция.
- •14. Основные объекты языка Пролог: атомы, числа, константы, переменные, термы, структурные термы, предикаты.
- •15. Операторы. Представление и выч-ие арифметич-х выр-й. Опред-е польз-м операторы. Представление предикатов и правил структурными термами.
- •16. Подходы к организации циклов в лп. Примеры. Предикаты for, repeat.
- •17. Управление перебором и отсечение( cut). Предикат not.
- •18. Встроенные предикаты Пролога: read, write, nl.
- •21. Описание основных предикатов обработки списков: определение длины, взятие n-ого элемента, принадлежность элемента списку, конкатенация списков.
- •22. Описание основных предикатов обработки списков: удаление элемента из списка, определение подсписка, перестановки.
- •23. Порядковое представление списков в Прологе. Представ-е матриц. Примеры.
- •25. Деревья. Деревья поиска, основные операции с деревьями поиска.
- •26. Сбалансир-е деревья. Алгоритм добавления узла в сбалансир-е дерево.
- •27. Представления графов. Алгоритмы поиска пути (в глубину, в ширину).
- •28. Метод генерации и проверок для решения задач. Метод ветвей и границ. Явный и неявный перебор в Пролог-программах.
- •31. Операторы. Преобр.Симв.Выр.В дерево.Выч-е значений арифм.Выр.По строке.
- •30. Решение задач методом поиска в пространстве состояний. Пример. Принципы подбора алгоритма поиска пути в зависимости от задачи.
- •32. Символьные вычисления. Алгоритм символьного дифференцирования.
- •33. Подходы к символьному упрощению выражений.
- •34. Анализ ест-го языка с использованием контекстно-свободной грамматики. Подход к интерпретации знаний в естественно-языковом материале.
- •35. Учет контекстных усл. Работа со словарями. Глуб. И пов. Структуры в ест.Яз.
- •36.Расширение логического интерпретатора Пролога средствами языка. Мета-интерпритаторы. Примеры
- •24. Разностные списки. Хвостовая рекурсия. Сведение рекурсивного нехвостового определения к хвостовому. Примеры.
32. Символьные вычисления. Алгоритм символьного дифференцирования.
Вычисление выражений векторной алгебры. По аналогии с оператором is, можно вве-сти операцию для выч-я выр-й, содержащих векторы. Соотв-е выраж-я корректно раз-бираются Пролог-системой в деревья структурных термов, преимущ-но бинарных, так что необх-мо лишь определить аналог оператора is, котй будет по выражению строить рез-т. Замена переменной в выражении. Рассм. задачу подстановки. Дано некот. Выр-е (например, 1+2+х+х*(х+1)), в кот. надо заменить все вхождения атома х на некот. подвыр-е. Для решения этой задачи определим предикат subst/4: ?-subst(a,x+10,(а-1)*(а+1), R). R = (х+10-1)*(х+10+1). Когда предикату подается на вход сложное выр-е вида (а-1)*(а+1). оно явл-ся структурным термом * с 2мя аргументами-подвыр-ми.
subst(X,E,X,E) :- !. % R1 // subst(_,_,X,X) :- atomic(X). % R2 //
subst(X,E,Expr,Res) :- % R3
Expr =.. [Op,A,8],
subst(X,E,A,Al),
subst(X,E.B,Bl),
Res =.. [Op,Al ,BI] .
R1
определяет
процесс замены атома на требуемое
подвыражение. Чтобы избежать альт-х
решений, в кот.некот.вхождения атома не
заменены, это правило снабжено отсечением.
R2
- для обработки
атомарных выражений; встроенный предикат
atomic/1
проверяет, явл-ся
ли аргумент константой - атомом или
числом. R3
осущ-ет рекурсив-ную
обработку сложных выр-й: при помощи =..
функтор верхнего уровня разбивается
на сост.части (оператор Ор и аргументы
А и В), к аргументам предикат subst
применя-ется
рекурсивно, после чего результирующее
выр-е снова собирается из оператора
и переработанных операндов при помощи
=… Р-равенство
формул Ччасто
встречается ситуация, когда
необх-мо
установить рав-во 2х символьных выражений,
что требует рассмотрения различных
возможных способов записи выражения
переборным алгори-тмом, т.е. ее решение
связано с существенными вычислит.затратами.
Во многих случаях для быстрой проверки
рав-ва выр-й исп-ют понятие Р-равенства,
т.е. рав-ва выражений на некотором
достаточно полном наборе значений
входящих в них переменных. Df
Пусть Е1 и Е2 - два выражения с множеством
переменных
<х_1...х_n>.
Эти выражения называются Р-равными на
множестве Р, если
х
Р. Е1|_ х = Е2|_х. Симв-е
диф-е. Для
простоты ограничимся лишь арифметическими
операциями. Введем предикат d/З,
d(E,X,D)
означает, что
D
- производная
выр-я
Е
по пер-й X. Запрос на диф-е простого
выражения будет выглядеть следующим
образом:
?- d((x-l)/(x+l),x,R). R = ((1-0)*(х+1)-(1+0)*(х-1)}/((х+1)*(х+1))
Диф-е построено на рекурс-м принципе обработки дер.выр-я, замена пер-й -только для кажд.операции необх.предусмотреть обработку в соответствии с правилами диф-я.
d(X,X,1) :- !. // d(T,X,0) :- atomic(Т).
d(U+V,X, DU+DV) :- d(U,X,DU), d(V,X,DV).
d(U-V, X, DU-DV) :- d(U,X,DU), d(V,X,DV).
d(-T,X,-R) :- d(T,X,R). // d(C*U,X,C*W) :- atomic(C), C\\=X, !, d<U,X,W).
d(U*V,X,Vd*U+Ud*V) :- d(U,X,Ud), d(V,X,Vd).
d(U/V,X,(Ud*V-Vd*U)/(V*V)) :- d(U,X,Ud), d(V,X,Vd).