
- •1.Введение в функциональное и логическое программирование
- •1.1. Основные классы вычислительных моделей
- •1.1.1 Процедурная вычислительная модель
- •1.1.2 Функциональная вычислительная модель
- •1.1.3. Логическая вычислительная модель
- •1.1.4. Объектно-ориентированная вычислительная модель (ооп)
- •1.2.Метод оценки (способ получения результатов)
- •1.3. Обмен информацией в процессе оценки
- •1.4.Понятие искусственного интеллекта
- •1.5.Символьные языки программирования
- •1.6. Основные направления в искусственном интеллекте
- •Для работы в сфере ии надо иметь:
- •1) Языки ии, обеспечивающие простоту модификации
- •3) Важна и структура самой машины, позволяющая с
- •2.Основы логического программирования и язык Пролог.
- •2.1.Основные понятия
- •2.2.Определение отношений на основе фактов и правил
- •2.3 Пример программы на языке Пролог
- •2.4.Использование рекурсии
- •2.5.Декларативная и процедурная трактовка программы
- •2.6. Cтруктура программы
- •2.7.Особенности лп:
- •2.8 Использование предиката not и
- •3.Синтаксис Пролога
- •3.1. Объекты данных
- •3.2. Составные объекты и альтернативные домены. В утверждениях объекты представляют собой данные.
- •3.2.1. Составная структура
- •Листинг3.1. Использование доменной структуры с именем personal_library
- •3.2.2.Доменная структурная диаграмма программы “Библиотека” (дсд)
- •3.2.3.Предикатная структурная диаграмма программы “Библиотека” (псд)
- •3.2.4. Альтернативные домены
- •Выводы:
- •Рассмотрение работы с составными объектами и альтернативными доменами закончено. Посмотрим, как именно строится логический вывод, реализованный на эвм?
- •3.3. Сопоставление структур(matching)
- •3.4.Унификация и подстановки (Unify).
- •3.5.Основные правила поиска с возвратом:
- •Листинг 3.4.Унификация и поиск с возвратом
- •4.Принцип резолюции
- •Метод резолюции в исчислении предикатов – это пра-
- •4.1.Логическое следствие
- •4.2. Логический вывод
- •4.3 Преимущества и недостатки метода резолюции
- •4.4. Пример применения метода резолюций.
- •5. Управление поиском решений
- •5.1.Метод отката после неудачи – опн
- •5.2 Метод отсечения и отката – оо
- •5.2.1.Влияние предиката cut на составную цель
- •5.2.3. Использование зеленых и красных отсечений
- •5.2.4.Использование предиката not как средства управления
- •5.3.Метод повтора, определяемый пользователем (мп)
- •5.4.Методы организации рекурсии
- •Листинг 5.9. Бесконечная рекурсия (хвостовая рекурсия)
- •Пример программы, которая циклически считывает символ, введенный пользователем. Если символ не равен #, то он выводится на экран, иначе процесс заканчивается.
- •Листинг 5.14. Пример рекурсии для генерации ряда чисел в порядке возрастания
- •Определение
- •Список помогает сделать программу компактной, эффектив-
- •Список – это рекурсивный составной объект, поэтому
- •6.1.Операции над структурами данных типа список.
- •6.2.Предикат findall
- •6.3. Операции со структурами данных.
4.2. Логический вывод
- это процесс получения некоторого предложения Fn+1 ,исходя из множества предложений S1 путем применения одного или нескольких правил вывода.
Логический вывод -> Если A,то B.
Если известно, что A- истинно, то можно заключить, что B- истинно. Однако, если A-не истинно, то нельзя сделать никакого вывода о B.Утверждение “Если A,то B” будет правильно независимо от того, истинно В или ложно.
Единственный способ показать, что само утверждение о выводимости – ложно- это предъявить ситуацию, в которой известно, что В – ложно, хотя A –истинно.
Цель вывода: показать справедливость отношения
S1|-- Fn+1. В ЛП используется метод резолюции( одно правило вывода)Каждое применение правила называется шагом вывода. Будем применять метод резолюции (правило вывода) только к предложениям трех типов:
Отрицание : (A1,….,An)
Факт: А
Правило: A:- B1,….,Bm
(импликация)
где A1,….,An и B1,…..,Bm -произвольные предикаты.
Каждое предложение в логике предикатов первого порядка преобразуется в множество дизъюнктов (то есть объединение множеств). Предложения, являющиеся отрицаниями, фактами и правилами, образуют подкласс класса всех дизъюнктов и называются хорновскими дизъюнктами.
Введем наиболее простую форму резолюции
Пусть имеем:
1случай отрицание S1: A
импликация S2:A:-B
Здесь предикат А из S1 совпадает с заголовком A из S2
В результате первого шага резолютивного вывода получаем из S1 и S2 (родительские предложения) новое предложение s:
s:- B -резольвента, которая получилась в результате применения резолюции к S1 и S2.
Допуская, что не А и А, если В, выводим не В{modus tollens}.
2cлучай: отрицание S1: A
факт S2:A
Применяя к этим родительским предложениям правило резолюции, выводим в качестве резольвенты пустое отрицание (противоречие):
S: противоречие
Допуская, что не А и А , выводим противоречие
В ЛП вопрос, задаваемый системе, представляется в виде отрицания, и система должна опровергнуть это отрицание при помощи других предложений. Опровержение отрицания происходит путем демонстрации того, что его допущение ведет к противоречию (в математике – доказательство от противного). Резолюция, порождающая последовательность отрицаний, называется резолюцией сверху вниз.
1 шаг – формулировка задачи
2 шаг – запрос (цель)
3 шаг – выполняет ПК, который пытается решить поставленную задачу, строя доказательство от противного.
В теории резолюции есть важный результат:
Из S1 логически следует Fn+1 тогда и только тогда, когда из S1 и F можно вывести противоречие.
Вывод: построение логического вывода пустого отрицания при помощи правила резолюции означает, что из множества допущений S1 логически следует заключение F .Это заключение прямо отвечает на запрос, поставленный исходным отрицанием F и поэтому всегда является утверждением о решении задачи: так как исходное отрицание цели было опровергнуто, то цель – успешна.
Используя метод резолюции совместно с методом унификации можно выводить из имеющихся дизъюнктов все новые дизъюнкты – следствия.
Комбинация методов называется приведением к противоречию. Резолюция позволяет объединить две формулы, удалив из одной А, а из другой А.