- •Содержание
- •Введение
- •Глава 1. Основные понятия
- •1.1. Понятие об искусственном интеллекте
- •1.1.1. Точка зрения Петрунина.
- •1.1.2. Интеллектуальные алгоритмы.
- •1.2. Основные направления исследования в области ии
- •1.3. Данные и знания. Основные модели представления знаний
- •Глава 2. Логические модели представления знаний
- •2.1. Логика высказываний
- •2.1.1. Булева алгебра.
- •2.1.2. Понятие о логическом следствии.
- •2.1.3. Метод резолюции в лв.
- •Имеет место теорема о полноте резолютивного вывода. Множество клозов противоречиво тогда и только тогда, когда из него методом резолюции можно вывести пустой клоз.
- •2.2. Логика предикатов первого порядка
- •2.2.1. Основные определения.
- •2.2.2. Метод резолюции в лппп.
- •2.2.3. Стратегии проведения резолюции.
- •2.2.4. Упорядоченный линейный вывод в лппп.
- •2.2.5.Применение поиска в пространстве состояний при реализации автоматизированного логического вывода.
- •2.2.6. Логический вывод на хорновских дизъюнктах.
- •Понятие экспертной системы и применение логического вывода при построении экспертных систем.
- •2.2.9. Запросы класса b.
- •2.2.10. Запросы класса c.
- •2.3. Понятие о нечетком выводе
- •2.4. Неклассические логики
- •2.4.1. Логики высших порядков.
- •2.4.2. Модальные логики.
- •2.4.3. Многозначные логики.
- •Глава 3. Продукционные модели представления знаний
- •3.1. Основные понятия
- •3.2. Стратегии управления
- •3.2.1. Поиск с возвратом.
- •3.2.2. Поиск в пространстве состояний.
- •3.3. Понятие о коммутативных системах продукций
- •3.4. Понятие о нечетком выводе на продукциях
- •3.5. Сравнение продукционных и логических моделей
- •Глава 4. Реляционные языки представления знаний
- •4.1. Основные элементы естественных языков
- •4.2. Дескрипторные модели
- •4.2.1. Понятие об ипс.
- •4.2.2. Линейная модель работы ипс.
- •4.2.3. Понятие о многоуровневом поиске.
- •4.2.4. Основные характеристики ипс.
- •4.4. Синтагматические цепи
- •4.4.1. Понятие синтагматических цепей.
- •4.4.2. Фреймы.
- •4.5. Сетевые модели представления знаний
- •4.5.1. Понятие семантической сети.
- •4.5.2. Структура интеллектуальной системы доступа к данным на основе семантической сети.
- •4.5.3. Задача поиска кратчайшего обхода образца в семантической сети.
- •4.5.4. Понятие о логическом выводе на семантических сетях.
- •Глава 5. Нейронные сети
- •5.1. Параллели из биологии
- •5.2. Базовая искусственная модель
- •5.3. Применение нейронных сетей
- •5.4. Обучение сети
- •Глава 6. Организация диалога с эвм на естественном языке
- •6.1. Элементы теории формальных языков
- •6.2. Обратная польская запись
- •6.3. Недостатки применения аппарата формальных грамматик
- •6.4. Элементы семиотики
- •6.5. Модель непосредственных составляющих
- •6.6. Многозначность в естественных языках
- •6.7. Расширенные сети переходов
- •6.8. Глубинные (семантические) падежи
- •Глава 7. Логическое программирование на языке пролог
- •7.1. Основные понятия в языке Пролог
- •7.2. Пакет Turbo Prolog
- •7.3. Структура программы
- •7.4. Поиск решений
- •7.5. Механизм отката
- •7.6. Операторы. Декларативный и процедурный смысл программы
- •7.7. Повторение и рекурсия
- •7.8. Повторение и откат
- •7.8.1. Метод отката после неудачи (опн).
- •7.8.2. Метод отсечения и отката (оо).
- •7.8.3. Метод повтора, определенный пользователем.
- •7.9. Методы организации рекурсии
- •7.10. Отладка программы и обнаружение ошибок
- •7.11. Графика в Turbo Prolog’е
- •7.11.1 Создание меню.
- •7.11.2. Создание графического режима.
- •7.11.3. Черепашья графика
- •7.12. Списки и их использование
- •7.12.1. Использование списка.
- •7.12.2. Поиск элементов в списке.
- •7.12.3. Создание нового списка путем слияния двух списков
- •7.12.3. Разделение на два списка.
- •7.13. Сортировки
- •7.13.1. Наивная сортировка.
- •7.13.2. Сортировка включением.
- •7.13.3. Метод «пузырька».
- •7.13.4. Быстрая сортировка.
- •7.14. Компоновка данных из базы в список
- •7.15. Работа с символами и строками
- •7.16. Специальные строки
- •7.17. Работа с файлами
- •7.18. Создание динамических баз данных
- •7.19. Библиотеки Turbo Prolog’а
- •7.19. Модульное программирование
- •7.20. Решение задачи о волке, козе и капусте
- •Глава 8. Введение в язык лисп
- •8.1. Основные особенности языка Лисп
- •8.2. Понятия языка Лисп
- •8.2.1 Атомы и списки.
- •8.2.2 . Внутреннее представление списка.
- •8.2.3 .Написание программы на Лиспе.
- •8.2.4. Определение функций.
- •8.2.5. Рекурсия и итерация.
- •В) maplist. Эта функция действует подобно mapcar, но действия осуществляет не над элементами списка, а над последовательными cdr этого списка.
- •8.2.6 . Функции интерпретации выражения.
- •8.2.7. Макросредства.
- •8.2.8. Функции ввода-вывода.
- •Список используемых источников
- •Перечень используемых сокращений
2.2.9. Запросы класса b.
Запросы этого класса требуют конкретный ответ.
Пример. F(x,y) – x – отец y.
ГБД - F(Иван, Сергей) – Иван отец Сергея.
Вопрос. Кто отец Сергея (вычислить значение x, что F(x, Сергей)).
Информация для ответа здесь извлекается из подстановок в процессе логического вывода. Действуем следующим образом. После построения отрицания к теореме приписываем к ней предикат ANS(x) и в результате вывода стремятся получить не пустой клоз, а клоз, состоящий только из предиката ANS, при этом переменная в предикате примет нужное значение.
//вывод (21)
F (Иван, Сергей) |
||
F (x, Сергей) ANS (x) {Иван/x} |
||
|
||
F (Иван, Сергей) |
|
ANS (Иван) |
Иногда вопрос может содержать сразу несколько переменных. В этом случае и предикат ANS будет содержать несколько переменных. Запросы класса B возникают при попытке решения задачи определения объекта по его свойствам (например, задача определения сорта вина по результатам дегустации). Этот подход находит применение и при решении задач распознавания образов.
2.2.10. Запросы класса c.
Запрос класса C – это запрос на выявление последовательности действий для достижения какой-либо цели. Отличительной особенностью здесь является то, что приходится оперировать с функторами.
В качестве демонстрационного примера приведем задачу об обезьяне. Обезьяна находится в комнате, в которой в определенной точке под потолком подвешен банан. Достать банан она может, только встав на стул строго под бананом. Что же должна сделать обезьяна, чтобы съесть банан?
Введем предикаты.
P(x,y,z,s) – обезьяна в точке x, стул в точке y, а банан в точке z, а вся система при этом условно находится в состоянии s.
R(s) – в состоянии s обезьяна может достать банан.
Обратим внимание на абстрактное понятие состояния системы. Оно необходимо для описания возможных действий с помощью функторов.
f(x,y,s) – функция перемещения обезьяны из точки x в точку y, s – исходное состояние системы до перемещения, результат функции – состояние системы после перемещения.
g(x,y,s) – функция переноса стула из точки x в точку y, s – исходное состояние системы до переноса стула, результат функции – состояние системы после переноса стула.
k(x,s) – обезьяна залезает на стул в точке x. Система при этом переходит из состояния s в новое, выражаемое результатом функции.
Итак, опишем исходные данные, т.е. ГБД.
P(a,b,c,s1) – в начальный момент обезьяна находится в точке а, стул в точке b, банан – в точке с, абстрактная система – в абстрактном состоянии s1.
БЗ составляют следующие.
xyzs [P(x,y,z,s)->P(y,y,z,f(x,y,s))] – где бы ни была обезьяна, она может подойти к стулу.
xys [P(x,x,y,z)->P(y,y,y,g(x,y,s))] – если обезьяна и стул в одной точке, то обезьяна может поднести стул к банану.
xs [P(x,x,x,s)->R(k(x,s))] – если обезьяна, стул и банан в одной точке то она может лезть на стол и есть банан.
В качестве теоремы предполагают, что существует состояние системы, в котором обезьяна может достать банан - s R(s). К этой теореме приписываем предикат ANS(s).
//вывод (22)
P(a, b, c, S1) |
|
|
|
|
P (x, y, Z, S) |
|
P (y, y, Z, f (x, y, S)) |
|
|
P (x, x, y, S) |
|
P (y, y, y, g (x, y, S)) |
|
|
P (x, x, x, S) |
|
R(k (x, S)) |
|
|
R (S) |
|
ANS (S) {k (x, S)/S} |
|
|
|
|
|
|
|
R (k (x, S)) |
|
P (x, x, x, S) {y/x, g(x, y, S)}/S |
|
ANS(k(x, S)) |
P (x, y, Z, S) |
|
P (y, y, Z, f (x, y, S)) |
|
|
P (x, x, y, S) |
|
P (y, y, y, g (x, y, S)) |
|
|
P(a, b, c, S) |
|
|
|
|
|
|
|
|
|
|
|
R(k(y) g(x, y, S))) |
|
P(y,y,y, G(x, y, S)) |
|
P(x,x,y,S) |
|
ANS(k(y)g(x,y,S)) {y/x, z/y,f(x,y,S)/S} |
P (x, y, Z, S) |
|
P (y, y, Z, f (x, y, S)) |
|
|
|
|
P(a, b, c, S1) |
|
|
|
|
|
|
|
|
|
|
|
|
R(k(z,g(y,z)f(x,y,S))) |
|
P(z,z,z,g(y,z),f(x,y,S))) |
|
P(y,y,z,f90x,y,S) |
|
-
P(x,y,z,S
ANS(k(z,g(yz,f(x,y,S)))) {a/x, b/y, c/z, S1/S}
P (a,b,c,S)
|
||||
R(k(c,g(b,c,f(a,b,S1)))) |
|
P(c,c,c,g(b,c,f(a,b,S1))) |
|
P(b,b,c,f(a,b,S1)) |
|
|
P(a,b,c,S1) |
|
ANS (k(c,g(b,cf(a,b,S1)))) |
|
---|---|---|---|---|---|
|
|
|
|
ANS (k(c,g(b,c,f(a,b,S 1)))
Интерпретируя последовательность вложенных функций «изнутри», получают содержательный ответ.
//интерпретируем (23)
k(c,g(b,c,f(a,b,S1))): |
- f(a,b,S1) – обезьяна переходит из точки a в точку b.
g(b,c,f(a,b,S1)) – обезьяна переносит стул из точки b в точку c.
k(c,g(b,c,f(a,b,S1))) – обезьяна лезет на стул в точке c.