- •Содержание
- •Введение
- •Глава 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. Функции ввода-вывода.
- •Список используемых источников
- •Перечень используемых сокращений
4.4.2. Фреймы.
Рассмотрим выражение Y1 из примера в предыдущем пункте:
Y1=((x1 r1 i1)r2(x2 r3 x4))r4(x3 r1 i2)
Напомним, что таким образом описана ситуация «автомобиль Волга с номером A364/70Rus движется по направлению к городу Томску».
Подставим вместо имени i1 некоторую неизвестную переменную z1, тогда мы получим выражение, подразумевающее любую Волгу (номер cтанет не известен). Вместо i2 мы можем подставить переменную z2, тогда получим движение к любому городу. Если подставим переменную z3 вместо понятия x4, то получим автомобиль любой марки. Таким образом, получаем разные уровни фреймов. Переменные z1, z2 и z3 называются слотами, для каждого слота cуществует множество значений. Фреймы позволяют описывать общие случаи, а при подстановке вместо переменной конкретного понятия или имени конкретизируется ситуация.
Фреймовые модели очень широко применяются там, где следует автоматизировать процесс распознавания конкретной ситуации, прежде всего в системах ситуационного управления, т.е. в системах, которые просчитывают необходимое действие, поставленное в соответствие конкретной ситуации, которую следует распознать (пример – электронный диспетчер в аэропорту). На основе классических (неинтеллектуальных) методов построить такие системы фактически невозможно. Неэффективным оказывается и применение логических и продукционных моделей.
Отчасти с идей фреймов перекликается методология функционального программирования (самый распространенный функциональный язык – Лисп (Lisp) – list processor –n обработчик списков). Основные объекты Lisp-программы – список (содержит данные) и функция (вырабатывает конкретной результат). Программа практически представляет иерархию вложенных вызовов функций. Функциональное программирование и язык Лисп будут рассмотрены в восьмой главе.
4.5. Сетевые модели представления знаний
Сетевые модели – частный случай реляционных. В естественном языке понятия связаны некоторыми отношениями. Эти отношения на самом деле не являются разрозненными, а образуют некую единую сеть взаимосвязей, которая отражается в сетевых моделях. Иногда к сетевым причисляют формы представления знаний, не относящиеся к реляционным языкам, но предполагающие структуризацию в виде сети (например, нейронные сети).
4.5.1. Понятие семантической сети.
Начнем с неформального определения. Под семантической сетью понимается простой ориентированный граф, вершины которого соответствуют понятиями (или именами) естественного языка и помечены знаками соответствующих понятий, а ребра соответствуют отношениям между ними и помечены знаками соответствующих отношений.
Пример 1. Автомобили Нива и Волга движутся навстречу друг к другу по направлению к городу Томску.
//рисунок (10)
Теперь приведем формальное определение. Семантической сетью называется пятерка ((X, O), A, R, f, g),
где (X,0) – простой ориентированный граф (X – множество вершин, O – множество ребер, т.е. фактически упорядоченных пар вершин),
A – множество понятий и имен,
R – множество отношений,
f: X→A – функция разметки вершин (каждой вершине ставится в соответствие одно и только понятие),.
g: O → P(R)/ǿ (11)– функция разметки ребер (каждому ребру ставится в соответствие непустое подмножество понятий).
Семантические сети часто используются при решении задач распознавания образов (сюда относятся задача распознавания печатных знаков, распознавание звуков человеческого голоса и т.д.).
Пример 2. Пусть есть следующее изображение:
//рисунок (12)
Его можно смоделировать с помощью следующей семантической сети:
//рисунок (13)
Здесь, А={КВ, МТ, БТ}, R={в, к, п}.
КВ – квадрат, МТ – малый треугольник, БТ – большой треугольник, в – выше, к – касаться, п – правее.
В виде семантической сети можно представить не только исходные данные, но и запрос. Задача состоит в том, чтобы определить имеется ли в исходной сети фрагмент, соответствующий запросу и если таковой имеется, то выделить его.
Алгоритмы поиска в семантической сети применимы и в ИПС.