- •Содержание
- •Введение
- •Глава 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. Функции ввода-вывода.
- •Список используемых источников
- •Перечень используемых сокращений
Глава 3. Продукционные модели представления знаний
В данной главе рассматриваются продукционные модели представления знаний, которые являются ближайшей альтернативой логических моделей. Производится сравнение моделей этих типов.
3.1. Основные понятия
Продукцией или продукционным правилом называется правило вида:
ЕСЛИ условие ТО действие.
В рамках продукционной модели знания представляются в виде набора (системы) продукционных правил, которые задают возможности преобразования глобальной базы данных.
Пример. «Игра в восемь» (упрощенные пятнашки).
Задача. Дана доска, на которой девять клеток, по которым перемещается восемь фишек. Их следует расположить по порядку (см. рисунки ? и ?).
//рисунки – пример начального расположения фишек и правильное расположение фишек, которое должно получиться. (1)
2 |
|
3 |
|
1 |
2 |
3 |
1 |
6 |
4 |
|
8 |
|
4 |
8 |
7 |
5 |
|
7 |
6 |
5 |
Сформулируем правила. Условно считаем, что мы как бы перемещаем не фишки, а пустую клетку (дырку).
A) Если дырка не в верхнем ряду, переместить ее вверх.
B) Если дырка не а правом столбце, переместить ее вправо.
С) Если дырка не в левом столбце, переместить ее влево.
D) Если дырка не в нижнем ряду, переместить ее вниз.
//рисунок хода игры (2)
2 |
|
3 |
← |
|
2 |
3 |
↓ |
1 |
2 |
3 |
↓ |
1 |
6 |
4 |
1 |
6 |
4 |
|
6 |
4 |
|||
8 |
7 |
5 |
8 |
7 |
5 |
8 |
7 |
5 |
1 |
2 |
3 |
→ |
1 |
2 |
3 |
↑ |
1 |
2 |
3 |
8 |
6 |
4 |
8 |
6 |
4 |
8 |
|
4 |
||
|
7 |
5 |
7 |
|
5 |
7 |
6 |
5 |
Последнее состояние здесь является терминальным (правильная расстановка цифр).
Продукционные модели часто используются при построении ЭС. Эта модель удобна тем, что язык представления ГБД может выбираться произвольно в зависимости от задачи (в предикатных языках ГБД представляется в виде набора предикатов). Структура ЭС описана в 2.2.7. Здесь, вспомним, что конечная цель – достижение терминального состояния ГБД.
Пример. Формализация задачи о волке, козе и капусте. Есть река и лодка, в которую входит лодочник и еще один предмет. Козу и волка, а также козу и капусту нельзя оставлять вместе без присмотра. Задача – перевезти все с левого берега на правый.
Представление ГБД. (x,y,z,s).
x,y,z,s = 0 - соответствующий предмет на левом берегу
x,y,z,s =1 – соответствующий предмет на правом берегу
Таким образом, (0,0,0,0) – исходное состояние, а (1,1,1,1) – терминальное состояние.
Прежде чем сформулировать правила, необходимо отсеять недопустимые состояния. Таковыми являются состояния, предусматривающие одновременное нахождение волка и козы или козы и капусты на берегу, противоположном от лодочника. Допустимые правила должны обеспечивать отсутствие возможности перехода в недопустимые состояния.
Исходя, их этого соображения можно построить следующую таблицу:
-
Правило
Условие применимости
прямая перевозка волка – (0,y,z,0)->(1,y,z,1)
(y=0 z=0)
прямая перевозка козы – (x,0,z,0)->(x,1,z,1)
всегда
прямая перевозка капусты – (x,y,0,0)->(x,y,1,1)
(x=0 y=0)
прямая пустая перевозка
(y=0 z=0) (x=0 y=0)
обратная перевозка волка – (1,y,z,1)->(0,y,z,0)
(y=1 z=1)
обратная перевозка козы – (x,1,z,1)->(x,0,z,0)
всегда
обратная перевозка капусты – (x,y,1,1)->(x,y,0,0)
(x=1 y=1)
обратная пустая перевозка – (x,y,z,1)->(x,y,z,0)
(y=1 z=1) (x=1 y=1)
Очевидно, что на продукциях, можно поставить задачи четырех типов:
-
Определить существует ли решение вообще?
-
Найти любое решение задачи.
-
Найти всевозможные решения задачи.
D) Найти из множеств решений оптимальное в каком-либо смысле. При этом в простейшем случае, под оптимальным понимается решение, требующее как можно меньше операций преобразования ГБД. В более сложных случаях, приходится оперировать с весовыми коэффициентами, соответствующими правилам.