
- •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. Разностные списки. Хвостовая рекурсия. Сведение рекурсивного нехвостового определения к хвостовому. Примеры.
11. Декларативная и процедурная семантика языка лп. Примеры.
Семантика
логич-х программ может отличаться от
исходной семантики логич-х фор-мул.
Логически эквив-е программы могут вып-ся
по-разному. Семантика: • Деклара-тивная:
Программа – мн-во формул логики
предикатов. Решение - логические
следст-вия исх.формул. Учёт
семантики
позволяет решить задачу. Правильная
программа:
может работать не эффективно. •
Процедурная
задаётся алгоритмом SLD-вывода
и алгоритмом поиска. Учитывается
процесс вывода. Программа – посл-ть
команд для алгоритма вывода. Решение -
результат его работы. Учёт
семантики
позволяет повы-сить эффективность.
Правильная
программа:
м.б. бессмысленной. Рекомендации:
1.Условие окончании рекурсии на 1 месте,
а затем уже рекурсивное опр-е. 2.В
рекур-сивном опр-и сначала нерек-е
предикаты, а затем предикат рекурсивного
вызова.// Решение проблемы беск.рекурсии
в различных языках: •
ProLog
Никак. Приходится исп-ть процедурные
ухищрения.
Пример: Предикат
предок: (
X)(
Y)(((
Z)A(X,Z)
P(Z,Y))
V
P(X,Y))
A(X,Y),
А(X,Y)
– X
предок Y;
P(X,Y)
– X
родитель Y.
Перейдем к Хорну: Плохо: A(X, Y)
V
неA(X,Z)
V
неP(X,
Z)\\
A(X,
Y)
V
неP(X, Y)
(Дерево с беск. левой веткой); -Хорошо:
A(X,Y)
V
неP (X, Y)\\
A(X, Y)
V
неA(X,Z)
VнеP(X,
Z)
(Усл. окончании рекурсии на 1 месте.)
Факты: P
(a,b),
P(a,c),
P(c,d),
НЕ
Цель:неA(U,
d)
•Mer-cury.Автоматич-я
оптимиз-я процесса вывода. Сложное
выбирающее правило. Выбир-ся предикаты
приводящие к более ранней конкретизации
пер-х. Программист должен описать макс-но
возможные режимы вызова предиката.
•Datalog.
Поиск в ширину.
12. Отрицание в логическом программировании. Отрицание по неуспеху и предположение о замкнутости мира. Sldnf-резолюция.
В
логических программах невозможно
эффективно и полноценно реализовать
отрицание.
Поэтому рассматривают некоторые способы
введения операций похожих по декларативной
семантике на отрицание, но строго говоря
отрицанием не являющи-хся. Df
Отрицание
по неуспеху
— отрицание некоторого утверждения
P,
•истина,
P
не
выводится и •ложь,
P
выводится, при помощи доступных механизмов
вывода. Каждое выражение стоящее под
знаком отрицания требует отдельного
док-ва, кот.не связано с текущим контекстом
унификации (Лес). Отрицание по неуспеху
логич-му отрицанию, только в предположении
о замкнутости мира (CWA):
правило вывода (
A)
|- (|-
неA)
отрицание
по бесконечному неуспеху. SLDNF-резолюция
p :— p. неуспех
q :— q. успех
q.
Попытки
оказать эти предикаты приводят к
беск.дереву вывода. Из CWA
неp
оказ-ся невыводим
введем более бедное правило – отрицание
по конечному неуспеху: (|- неА)
(
N)n
<= N,где
n
– глубина SLD-дерева
неуспешного вывода. Df
Дополненная
логическая программа, comp(Pфигурное)
получается из исх. С учетом предположения
о замкн-ти мира. Th
(О достоверности и полноте отрицания
по конечному неуспеху) Пусть P
– логическая программа без отрицаний.
Некот-е утв. А имеет конечное SLD-дерево
вывода, заканчивающееся неуспехом
comp(P)
|= неА.
Df
Обобщенная логич-я программа – лп, кот.
содержит отрицание в посылках правил.
Алгоритм вывода для ОЛП, основанный на
SLD-резолюции
наз-ся SLDNF-резолюцией.
SLDNF-
дополняет SLD-резолюцию:
•неA
закончится успехом
конечное дерево
неуспешного
вывода для
A.
•неA
закончится
не
успехом
конечное дерево
успешного
вывода для
A.
Процесс вывода в случае SLDNF-резолюции
представляет из себя лес. По одному
дереву на каждое выражение под знаком
отрицания. Осн.св-ва SLDNF-резолюции:
•Св-во
полноты не вып-но; •Св-тво
достоверности вып-ся не всегда (не вып.
A
ненеA
), •Нарушается
чистота логической программы (различные
ответы при переста-новке предикатов)
•Нельзя
использовать предикаты с отрицание для
генерации значений не(
X)(
Y)parent(X,Y)
(
X
)(
Y
)неparent(X,Y).
Предикат
not
not (Predicate) :—
Predicate,!,fail.
not(_).
13. Пролог как язык логического программирования.
Логическая программа: •Декларативная часть - набор предложений, описывающий предметную область. Подобный подход берет начало в математической логике. –факты; -правила. •Запросы - ответы на которые - результат. Выполнение - поиск зна-чений пер-х, которые удовл-ют условиям. Мн-во всех решений ищется системой на основе backtracking'a. Сущ-ет мн-во систем логич. Программир-я, большинство из них исп-ет Пролог. Термы – осн.смысловые объекты программы. Термы: •Простые –Пере-менные – начинаются с заглавной буквы или подчеркивания, область действия – 1 правило. Как правило, заменяются внутр-ми ссылками. Анонимная переем-я «_» - неск.ее вхождений в одно и то же высказывание независимы. Своб.пер-я. Переменная получает значение (связывается) в рез-те унификации. Значение перем-й м.б. измене-но только в рез-те бэктрекинга.; –Константы: -Атомы - посл-ть лат.букв, цифр, под-черкиваний, начинающихся с мал.буквы, посл-ть знаков операторов, посл-ть любых символов, взятых в апострофы; -Числа • Структурные. Лексику Пролога можно описать грамматикой:
терм ::= константа \\ | функтор"(" терм {","терм}") \\ | оператор терм
| терм оператор \\ | терм оператор терм \\ | "(" терм ")".
константа := атом | число. \\оператор := функтор. \\ функтор := атом.
Унификация: •Свободная перем-я - с произв-м термом и связывается. •Связ. Перем. - как значение с кот. она связана. •Структурный терм: Должны совпасть: 1.функтор, 2.арность, 3.все аргументы попарно униф-ся. •Константа - с такой же константой.