- •1 Общая характеристика дисциплины
- •1.1 Значение дисциплины ии
- •1.2 Понятие "искусственный интеллект"
- •1.3 Краткая история развития ии
- •1.4 Классификация систем ии
- •Представления знаний - центральная проблема ии.
- •Компьютерной лингвистики, решение которой обеспечивает процесс естественно- языкового общения с эвм и процесс автомтического перевода с иностранных языков.
- •Компьютерной логики, имеющей особо важное значение для развития экспертных систем, поскольку ее цель – моделирование человеческих рассуждений.
- •1.5 Основные направления развития ии
- •2Языки систем искусственного интеллекта
- •2.1 Общие сведения о языках сии
- •2.2 Язык лисп
- •2.2.1 Алфавит
- •2.2.2 Атомы и точечные пары
- •2.2.3 Списки
- •2.2.4 Арифметические функции языка лисп
- •2.2.5 Функции setq и quote
- •2.2.6 Функции car и cdr
- •2.2.7 Композиция функций саr и cdr.
- •2.2.8 Пустой список
- •2.2.9 Функция cons
- •2.2.10 Логические значения и предикаты
- •2.2.11 Предикаты атом и eq
- •2.2.12 Предикат null
- •2.2.13 Предикаты, классифицирующие атомы
- •2.2.14 Арифметические предикаты сравнения
- •2.2.15 Операции над строками битов
- •2.2.16 Функция cond
- •2.2.17 Определяющее выражение функции
- •2.2.18 Определяемые функции
- •2.2.19 Рекурсивные функции
- •2.2.20 Prog- механизм.
- •2.3 Обращение (инверсия) списков
- •2.4 Вычисление факториала числа
- •2.5 Вычисление длины списка
- •2.6 Вычисление длины списка и его подсписков
- •2.7 Соединение списков
- •2.8 Удаление элемента из списка
- •2.9 Функция, вычисляющая список общих элементов двух списков
- •2.10 Функция, объединяющая два списка и не включающая повторяющиеся элементы
- •2.11 Ассоциативные списки
- •2.12 Функции, изменяющие значения указателей
- •2.13 Функции read и print
- •2.14 Функция eval
- •3 Представление задач и поиск решений
- •3.1 Представление задач в пространстве состояний
- •3.2 Сведение задачи к подзадачам
- •3.3Представление задач в виде доказательства теорем
- •3.4 Поиск решения в пространстве состояний
- •3.5 Алгоритм поиска в ширину
- •3.6 Алгоритм поиска в глубину
- •3.7Алгоритм равных цен
- •3.8 Алгоритмы эвристического (упорядочного) поиска
- •3.9 Поиск решения задачи, при сведении задачи к подзадачам
- •3.10 Представление знаний
- •3.10.1 Продукционные системы
- •3.10.2Семантические сети
- •3.10.3 Представление знаний фреймами
- •3.11 Сопоставление с образцом
- •3.11.1 Функции Mapcad, Apply и Funcall
- •3.11.2 Свойства Атомов
- •3.11.3 Функция сопоставления с образцом
- •3.11.4 Присваивание значений при сопоставлении с образцом
- •3.11.5 Функции Explope, Compress, AtomCar, AtomCdr
- •3.11.6 Задание ограничений при сопоставлении с образцом
- •3.12 Программная реализация лисп - машин
- •3.12.1 Структура памяти лисп - машины
- •3.12.2 Диалекты языка лисп
- •3.12.3 Аппаратная реализация языка лисп
- •4 Математические основы логического вывода
- •4.1 Решение задач с помощью доказательства теорем
- •4.2 Тождественные преобразования при доказательстве теорем
- •4.3 Принцип резолюции
- •4.4Примеры применения принципа резолюции
- •4.5 Система управления роботом strips.
- •5Решение задач искусственного интеллекта на языке пролог
- •5.1 Применение метода доказательства теорем в системе пролог
- •5.2 Особенности программирования на пролоГе
- •5.4 Арифметические предикаты
- •5.5 Предикаты управления возвратом
- •5.6 Программа вычисления квадратного корня
- •5.7 Вычисление n!
- •5.8 Область действия предиката отсечения
- •5.9 Отрицание на пролоГе
- •5.10 Определение структур управления
- •5.11 Организация циклов в языке пролог
- •5.11.1 Цикл repeat-fail
- •5.11.2 Сопоставление цикла с возвратом и рекурсии
- •5.12 Операторная запись.
- •5.13 Ввод-вывод в системе пролог
- •5.13.1 Предикаты ввода-вывода символов
- •5.13.2 Предикаты ввода-вывода термов
- •5.13.3 Примеры применения предикатов ввода-вывода
- •5.14 Предикат name
- •5.15 Предикаты проверки типов термов
- •5.16 Создание и декомпозиция термов
- •5.17 Предикаты работы с базой данных .
- •5.18 Бинарные деревья
- •5.18.1 Построение бинарного дерева
- •5.18.2 Преобразование списка в упорядоченное дерево
- •5.18.3 Преобразование дерева в список
- •5.18.4 Удаление элемента из дерева
- •5.18.5 Поиск в глубину
- •5.18.6 Поиск в ширину
- •5.19 Поиск решений в игровых программах.
- •5.20 Обратное усечение дерева.
4.3 Принцип резолюции
На практике редко удается установить невыполнимость множества предложений построением семантического дерева. Обычно содержательные задачи доказательства решаются посредством принципа резолюции (или резольвенции).
Принцип резолюции - совокупность правил, которые позволяют находить следвие совокупности предложений. Принцип резолюции используется для автоматического доказательства теорем.
Пусть требуется доказать:
_
{P(x) V Q(y) , R(z) V Q(y)} ==> {P(x) V R(z)}
предложение1 предложение2 следствие
Вновь полученное предложение называется резольвентой. В общем случае, из одной пары предложений можно получить несколько резольвент. Докажем, что если какая-либо интерпретация I удовлетворяет исходным предложениям, то она удовлетворяет и резольвенте.
Рассмотрим 2 случая :
Интерпретация I удовлетворяет предикату Q(y). Если I удовлетворяет всей л.ч.,то I должно удовлетворять R(x) ==> I удовлетворяет и следствию. (т.к. I не удовлетворяет ~Q(y) )
Интерпретация I удовлетворяет л.ч. и Q(y). Если I удовлетворяет ~Q(y), то чтобы I удовлетворяло л.ч. необходимо, чтобы I удовлетворяло P(x) ==> I удовлетворяет и следствию. (Т.к. I не удовлетворяет Q(y)).
Если любая I, удовлетворяющая всем предлож-м множества Ф, удовлетворяет и предложению F, т.е. F логически следует из Ф, то F называется следствием Ф. Совокупность правил, используемых при получении следствий (резольвент и факторов), называется принципом резолюции.
Принцип резолюции базируется на:
1.Закон силлогизма (P->Q)(Q->R) ==> P->R.
2.Закон отделения (P->Q)andP ==> Q.
3.Принцип подстановок P(x1,..,xn) ==> P(t1,..,tn).
Литерал L1 называется дополнительным к L2, если L1 является отрицанием L2.
Фактором какого-либо предложения называется следствие этого предложения, получаемое следующим образом: находится подстановка, при которой какие-либо литералы одинаковы; все одинаковые литералы, кроме одного, вычеркиваются; дизъюнкция оставшихся литералов и есть фактор. Процесс нахождения факторов называется факторизацией.
В ходе резонвельции выполняют подстановки (@)
@ = { (a,x) (y,b) ... }
" x заменить на a "
Пример:
Р(х,f(y),b) - исходный литерал.
@1={(z,x),(w,y)}
@2={(a,y)} подстановки.
@3={(g(i),x),(a,y)}
Р@1=P(z,f(w),b)
P@2=P(x,f(a),b) частные случаи исходного литерала.
P@3=P(g(i),f(a),b)
Композицией 2-х подстановок А и В называется подстановка АВ, которая получается при применении подстановки В к термам подстановки А с последующим добавлением любых пар из В, содержащих переменные, не входящие в число переменных из А.
Например:
А={(f(x),z)} и B={(a,x),(b,y),(d,z)},
их композиция AB={(f(a),z),(b,y)}.
Множество литералов {Li} называется унифицируемым, если существует подстановка @ такая, что L1@=L2@=... Подстановка @ в этом случае называется унификатором для {Li}.
L1@ = L2@ (литерал L1 c подстановкой @ = L2@)
таких подстановок м.б. много
Унификатор Л для {Li} называется простейшим или наиболее общим, если каким бы не был унификатор Q для {Li}, найдется такая подстановка S, что
{Li}ЛS={Li}Q.
Существует специальный алгоритм унификации, позволяющий получить наиболее общий унификатор.
Пример:
{ P(x,f(y,b),b), P(z,f(p,b),b) }
НОУ ==> @ = { (x,z) (y,p) }
В соответствии с принципом резолюции для нахождения следствия 2-х предложений применяют следующие правила:
Ищется такая подстановка, которая делает равными литералы одного или нескольких предложений - пр-п факторизации.
Если такая подстановка найдена, то все равные литералы за исключением одного исключаются.
Ищется такая подстановка, которая делает дополнительными друг другу некоторые литералы из разных предложений.
L1@
= L2@
дополнительные литералы
Если такая подстановка найдена, то дополнительные литералы исключаются.
Дизньюнкция оставшихся литералов и есть следствие.
ПРИМЕР: Принцип резолюции использует метод доказательства от противного, т.е. вместо того, чтобы доказывать, что Ф0 ==> F, доказывают следующее утверждение:
Док-ть: { Ф0 U ~F}
Иначе говоря, если множества Ф0 и ~F несовместны, то верно
Ф0 ==> F
Пусть R(Ф) - объединение множества Ф с множеством резольвент всех пар предложений Ф.
R^2(Ф)=R(R(Ф)) и т.д. Причем, R^0(Ф)=Ф.
Нетрудно убедиться, что если множество Ф невыполнимо, то R^i(Ф) также невыполнимо при любых i>=1, и наоборот, если R^i(Ф) при каком-либо i>=1 невыполнимо, то и R^k(Ф) невыполнимо при любом k>=0 (в т.ч. и само Ф).
Если множество Ф невыполнимо, то существует такое конечное число n, что в R^n(Ф) содержится пустое предложение. Т.о., для доказательства невыполнимости множества Ф достаточно показать, что при применении принципа резолюции к множеству Ф и его следствиям R^i(Ф) получается пустое предложение.
Процесс получения доказательства изображают в виде дерева (графа) опровержения.
"дерево опровержений"
исходное
предложение
комбинируя исходные предложения стремятся получить пустое предложение NIL. В этом случае теорема доказана.
Предложения из Ф записываются на концевых вершинах. Если два предложения, находящиеся на каких-либо вершинах, разрешаются, то их резольвента записывается на вершине, идущей непосредственно за этими вершинами и соединенной с ними ребрами. Корнем дерева опровержения служит пустое предложение, обозначаемое NIL.
ПРИМЕР: { P(x)VQ(y), ~Q(f(z)), R(z)V~P(z), ~R(w) }
предложения 1 2 3 4
y f(z)
P(x) z x
P(x) w z
NIL
Значит исх. множество несовместно и, следовательно, теорема доказана:
(P(x)VQ(y)/\(~Q(f(z)))/\(R(z)V~P(z))) ==>R(w)
Основные этапы применения принципа резолюции:
Следует отметить, что доказательство с применением принципа резолюции в общем случае предполагает использование не только резольвент, но и факторов.
Т.о., из изложенного следует:
Принцип резолюции является полным (теорема Робинсона): если конечное множество предложений невыполнимо, то опровержение может быть получено за конечное число шагов.
Принцип резолюции является непротиворечивым в том смысле, что если в результате его применения получено пусто предложение, то исходное множество предложений обязательно невыполнимо.
Непосредственное применение принципа резолюции, при котором строятся последовательно множества R(Ф), R^2(Ф) и т.д., соответствует полному перебору. Полный перебор непригоден для практики, т.к. множества-следствия слишком быстро разрастаются. Поэтому при практическом применении используют следующие стратегии:
Стратегии упрощения. Основаны на исключении из множества предложений некоторых литералов или целых предложений (исключение тавтологий, исключение путем оценивания предикатов, исключение подслучаев).
Стратегии очищения. Основаны на том, что для нахождения опровержения достаточно выполнить резольвенции только предложений, удовлетворяющих определенным требованиям С. Т.е. важно иметь алгоритм отбора резолюций. Например, стратегия опорного множества, когда не допускаются резолюции двух аксиом (в резолюции должно участвовать по крайней мере одно предложение опорного множества. При этом на каждом уровне требуется меньшее число резольвенций, хотя глубина поиска возрастает. Другой вариант - отфильтровывание предшествующих вершин.
Стратегии упорядочения. Здесь не вводится запрет на некоторые типы резольвенций, а лишь даются указания на то, какие из них нужно выполнять в первую очередь. Например, стратегия предпочтения одночленам (строят резольвенты между предложениями, содержащими единственный литерал). Такая стратегия гарантирует уменьшение длины предложений.
