- •Введение
- •Глава 1. Ведение в системы искусственного интеллекта
- •1.1. Архитектура систем искусственного интеллекта
- •1.2. База знаний и данных
- •1.1.1 Понятие модели
- •1.1.2. Логические модели
- •1.1.3 Модели знаний на основе продукций
- •1.1.4 Фреймовая модель знаний
- •1.1.5 Семантические сети
- •1.3. Машина вывода
- •1.3.1. Понятие формальной системы
- •Примеры стратегии вывода
- •Как функционирует машина вывода
- •1.4. Извлечение знаний и обучение
- •1.4.1. Извлечение знаний от многих экспертов
- •1.4.2 Проблема непротиворечивости формализованной базы знаний
- •1.5. Обучение системы
- •1.6. Интерфейс с пользователем
- •1.7. Организация работы
- •1.8. Инструментальные средства создания систем искусственного интеллекта
- •Языки программирования
- •1.8.2. Языки продукционного программирования
- •1. 8. 3. Языки инженерии знаний и инструментальные системы
- •1.8.3.1. Система vpExpert
- •1.8.3.2. Система kas
- •1.8.3.3. Система Expert-Ease
- •Глава 2. База знаний
- •2.1. Методы извлечения знаний
- •2.1.1. Классификация методов извлечения знаний
- •2.1.2. Пассивные методы
- •2.1.2.1. Наблюдения
- •2.1.2.2. Анализ протоколов «мыслей вслух»
- •2.1.2.3. Лекции
- •2.1.3. Активные индивидуальные методы
- •2.1.3.1. Анкетирование
- •2.1.3.2. Интервью
- •2.1.3.3. Свободный диалог
- •2.1.4. Активные групповые методы
- •2.1.4.1. «Круглый стол»
- •2.1.4.2. «Мозговой штурм»
- •2.1.4.3. Экспертные игры
- •2.1.4.3.1. Игры с экспертом
- •2.1.4.3.2. Ролевые игры в группе
- •2.1.4.4. Игры с тренажерами
- •2.1.4.4.1. Компьютерные экспертные игры
- •2.1.5. Текстологические методы
- •2.2.Формальное описание понятий предметной области (по)
- •2.2.1. Методы абстрагирования понятий
- •2.2.1.1.Агрегация и декомпозиция понятий
- •2.2.1.2.Обобщение и специализация понятий
- •2.2.1.3.Типизация и конкретизация понятий
- •2.2.1.4.Ассоциация и индивидуализация понятий
- •2.3.Методы классификации
- •2.3.1. Экстенсиональный и интенсиональный аспекты классификации
- •2.3.2. Таксономия и мерономия
- •2.3.3. Типы классификаций
- •2.3.4. Древовидные классификации
- •2.3.5. Булевы классификации
- •2.3.6. Комбинативные классификации
- •2.4.События и процессы
- •2.4.1. Состояния предметной области
- •2.4.2. Событие
- •2.4.3. Последовательные процессы
- •2.4.4. Рекурсивные процессы
- •2.4.5. Ветвящиеся процессы
- •2.5. Системы продукций: структура, технология, применение
- •2.5.1. Неформальное введение в системы продукций
- •2.5.1.1 Алгоритмические модели
- •2.5.2 Логический вывод
- •2.5.3 Прикладные модели
- •2.5.4. Метамодель систем продукций
- •2.5.4.1. Основные подсистемы
- •2.5.5.2. Метаструктура базы данных и операций
- •2.5.5.2.1. Характер организации данных
- •2.5.5.2.2 Операции над базой данных
- •2.5.5.2.3 Контроль несовместимости
- •2.5.5.2.4 Ассоциативная надстройка
- •2.5.6. Метаструктура модуля правил
- •2.5.6.1 Аппарат активации
- •2.5.6.2 Структура правил
- •2.5.7. Метаструктура модуля управления
- •2.5.8. Технология поддержки разработок продукционных систем
- •2.5.9. Формальные модели систем продукций
- •2.5.9.1. Алгебраическая модель
- •2.5.9.1.1. Основные определения
- •2.5.9.1.2. Операции преобразования ситуации
- •2.5.9.1.3. Условия корректности вычислений над конъюнктивной базой данных
- •2.5.9.1.4. Однозначность вычислений над дизъюнктивной базой
- •2.5.9.2. Управление выводом в системах продукций
- •2.5.9.3. Язык управления применением продукций
- •2.5.9.4. Язык управления выбором данных
- •2.5.9.5. Обзор формальных моделей вычислений
- •2.5.10. Экспериментальные системы продукций
- •2.5.10.1. Система скип
- •2.5.10.2. Система анализа топологических чертежей интегральных схем
- •P(слой) x0, y0 : Dx1, Dy2, .., Dxn-1, Dyn;
- •2.6. Выводы к второй главе
- •3. Машина логического вывода
- •3.1. Формальное определение задачи
- •3.2. Специфика решения задач в сии
- •3.3. Управление процессом решения задачи
- •3.4. Модели эвристического поиска решений
- •3.4.1 Стратегия поиска в глубину
- •3.4.2. Стратегии перебора с отсечениями
- •3.4.2.1. Метод ветвей и границ
- •3.4.2.2. Стратегии поиска на основе эвристической функции оценки
- •3.5. Методы вывода и доказательства теорем
- •3.5.1 Механизм резолюции Робинсона
- •3.5.2. Резолюция в логике высказываний
- •3.5.2.1 Линейная резолюция вL
- •Метод линейного вывода в lЛавленда, Ковальского и Кюнера
- •Эффективная реализация
- •3.5.2.3. Метод поиска в глубину
- •3.5.2.4 Эвристики поиска в дереве
- •3.5.2.5. Семантическая резолюция
- •3.5.3 Резолюция в pl
- •3.6. Методы индуктивного вывода
- •3.6.1. Виды индукции
- •3.6.2. Индукция как вывод и индукция как метод
- •3.6.3. Правила, необходимые для систем автоматического формирования знаний
- •3.7. Дедуктивный вывод на семантических сетях
- •3.7.1. Нерезолютивные методы вывода на семантических сетях
3.4.2.2. Стратегии поиска на основе эвристической функции оценки
Оценочная функция позволяет упорядочить вершины в списке ОТКРЫТ таким образом, чтобы первые позиции в нем занимали вершины с минимальной величиной оценки. Обозначим черезf(n) значение оценочной функции на вершинеn. Функцияf(n) определяет оценку стоимости наилучшего (т.е. имеющего минимальную суммарную стоимость) пути, соединяющего вершинуnс начальной вершиной и целевой вершиной.
Теперь алгоритм поиска решения - как маршрута в графе состояний задачи, связывающего начальную и целевую вершины, на основе функции f(n)принимает следующий вид:
Занести начальную вершину s в список ОТКРЫТ и вычислить f(s).
Если список ОТКРЫТ пуст, то алгоритм завершается общей неудачей; иначе - следующий шаг.
В списке ОТКРЫТ выбирается вершина х с минимальным значением f(s).
Если х - целевая вершина - то конец; иначе построить множество Г(x). Для каждой вершины y Г(x) найти f(y). Если вершина у отсутствует в списке ОТКРЫТ, то поместить ее туда с найденным значением f(у). Если у уже входит в список ОТКРЫТ, то установить для у то из значений f(у), которое минимально.
Перейти к п. (2).
Приведенный алгоритм известен в литературе как алгоритмА*. Нетрудно догадаться, что выбор оценочной функции является решающим для эффективности алгоритма поиска. Определим оценочную функциюf(n)в виде суммы
f(n) = g(n) + h(n), (3.12)
гдеg(n)- стоимость наилучшего пути, найденного для вершиныn, который связывает ее с начальной вершиной;h(n) - стоимость оптимального пути от вершиныnдо целевой вершины.
Кроме того, пусть- оценка дляg(n), - оценка дляh(n) и - оценка дляf(n), т.е.
(3.13)
Из определения g(n) имеем, чтоg(n).
Отметим, что определение g(n) в общем случае не вызывает затруднений. Для функции дело обстоит иначе. Однако еслипредставляет нижнюю границу дляh, то алгоритмА*находит маршрут с минимальной общей стоимостью. Теореме, устанавливающей это свойство алгоритмаА*, предпочтем следующую лемму.
Лемма. Если для всехnвыполняется условие, то в любой момент времени до того, как алгоритмА*закончит свою работу, на любом оптимальном путиРот начальной вершиныsк цели существует открытая вершинаn', для которойf(n') f(s).
Доказательство.По определению.
Так как n'лежит на оптимальном пути, то и, следовательно,, ибо мы приняли, что.
Далее имеем, что для любых двух вершинх1их2, лежащих на оптимальном путиf(x1) = f(x2) = f(s). В самом деле, пустьх1расположена дох2в оптимальном пути. Тогда
f(x1) = g(x1) + j(x1, x2), (2.14)
где j(x1, x2) - стоимость оптимального пути от х1 к х2.
но, очевидно, j(x1, x2) + h(x2) = h(x1) и g(x1) + j(x1, x2) = g(x2).
Отсюда следует, что .
Теорема 2.1. Если для всех вершинnвыполняется условие и если стоимости всех дуг превосходят некоторое малое положительное число, то алгоритмА*оканчивает свою работу построением оптимального пути к цели.
Доказательство.Возможны три различных исхода.
Исход 1: Работа алгоритма заканчивается, но целевая вершина не найдена. Это значит, что список ОТКРЫТ пуст, но цель не достигнута. Такая ситуация возможна, если и только если не существует пути, связывающего начальную и целевую вершины.
Исход 2: Алгоритм не оканчивает работу. Эта ситуация невозможна если множество всех состояний задачи конечно. Допустим противное: граф конечен, но алгоритм не завершает работу. Это значит, что список ОТКРЫТ никогда не опустеет, т.е. в него будут попадать одни и те же вершины, для которых значениеf(х)все время уменьшается. Каждый такой случай соответствует обнаружению нового, более лучшего пути изsвх. Но число всех таких путей в конечном графе ограничено, из чего следует противоречие.
Исход 3: Алгоритм завершает работу на целевой вершине, но найденный маршрут не оптимален. Допустим, что работа алгоритмаА*оканчивается на некоторой вершинеtс. Однако по лемме выше как раз перед окончанием работы на оптимальном пути существует такая вершинаn', чтоf(n') f(), поэтому была бы выбрана для раскрытия не вершинаt, а вершинаn'.
Говорят, что эвристическая функция hудовлетворяет монотонному ограничению, если для любых вершин х и у, таких чтоу Г(х)имеет местоh(x) h(y) + c(x, y), гдес(x, у)- стоимость дуги, связывающей вершиныхиу.
Теорема 2.2. Если функцияhудовлетворяет монотонному ограничению, тоА*оптимален.
Доказательство.Найдем
. (3.15)
Тогда примем для каждой вершины х . (3.16)
Ясно, что для всехх. В силу теоремы 2А*оптимален.
Несмотря на то, что алгоритм А*находит маршрут минимальной стоимости, он имеет экспоненциальный характер. Поэтому естественны попытки ускорить сходимость процедуры поиска ценой потери оптимальности. В этой связи рассмотрим подход Галлаба и Алларда, предложивших эвристический алгоритмА, ускоряющий сходимость процесса.
Алгоритм Апридерживается стратегии поиска в глубину, раскрывая вершины, принадлежащие одному и тому же пути, пока это возможно. Считается, что вершинаnдопустима, еслиf(n) не превосходит величины(1 + )max {f(n')}, гдеn'принадлежит множеству вершин, бывших первыми в списке ОТКРЫТ.
Другое отличие между А*иАзаключается в том, что если для раскрываемой вершиныn Г(n) не содержит допустимой вершины, тоАпытается раскрыть вершины изГ(n), затем вершины изГ(Г(n)) и т.д. несколько раз, предполагая, что в силу монотонностиhс увеличениемf(n') некоторые вершины перейдут из разряда недопустимых в разряд допустимых.
Алгоритм А:
Список ОТКРЫТ = {s}.
Список ЗАКРЫТ =
g(s) = 0; f(s) = h(s)
верхняя граница = (1 + ) f(s)
РАСКРЫТЬ (s)
АХ = {x Г(s)¦ x допустима}
x допустима, если x ОТКРЫТ и f(x) верхняя_граница
2. Если АХ , то n = выбрать (АХ) иначе n = выбрать (ОТКРЫТ)
3. РАСКРЫТЬ (n).
4. Если Г(n) не содержит допустимых вершин, то строить Г(Г(n)), Г(Г(Г(n)))... и т.д. до тех пор, пока не будет получена вершина t, являющаяся допустимой или список ОТКРЫТ не станет пустым; или число последовательных применений операции раскрытия Г...Г не станет больше некоторого порогового значения N
РАСКРЫТЬ (t)
5. АХ = {x Г(n)¦ x допустима}
6. Если целевая вершина найдена и допустима, то конец.
Если ОТКРЫТ = , то общая неудача,
иначе
вычислить_новую_верхнюю_границу и повторить с п. 2.
Процедура выбрать (АХ) выбирает в множестве АХ вершину хс минимальным значениемf(х);
Процедура выбрать (Открыть)более сложная, поскольку она должна определить допустимую вершинуnв списке ОТКРЫТ, которая не лежит на пути, связывающем последнюю раскрытую вершину с целевой вершиной.
При этом такой выбор должен минимизировать функцию
1 f(x) + 2 h(x) (3.17)
Выбор 1и2определяется из следующих соображений. Минимизацияh(х)"ориентирована" на скорейшее приближение к целевой вершине, однако увеличивает риск возврата с выбранного пути к вершинам на более высоком уровне в графе решения. Минимизацияf(х) максимально увеличивает верхнюю границу(1 + ) f(x), т.е. увеличивает перебор. Практически рекомендовано устанавливать значение1>2. Следующие результаты получены для задачи о коммивояжере дляN = 9городов (табл. 3.1).
Из табл. 2.1 видно, что при = Орезультирующий путь имеет минимальную стоимость (100), но и максимальное число раскрытых вершин (100). С увеличением происходит сокращение числа раскрытых вершин. При = 0.25было раскрыто всего 23 вершины и сделано 3 возврата, что практически на порядок меньше, чем при = О. При этом относительная потеря точности результата составляет 3%.
Таблица 3. 1
|
0 |
0,01 |
0,05 |
0,1 |
0,15 |
0,25 |
|
Стоимость результирующего пути |
100 |
100.1 |
100.4 |
101.1 |
101.9 |
103.0 |
107.0 |
число раскрытых вершин |
100 |
92 |
77 |
54 |
42 |
23 |
15 |
число возвратов |
100 |
83 |
48 |
21 |
13 |
3 |
0 |
3.4.2.3. (-)-процедура
Рассмотрим граф состояний, в котором все множество состояний делится на два непересекающихся классаUиU. Будем считать, что в каждом состоянииаизUигроквыбирает допустимый переход в некоторое состояние изU, причемГ(а)U; наоборот, в каждом состоянииbизUигроквыбирает некоторый допустимый переход в одно из состоянийГ(b)U. Считается, что выигрывает тот игрок, который своим последним ходом исключает возможность сделать очередной ход противнику, т.е. у противника отсутствует допустимый ход в заключительном состоянии.
Стратегия называется выигрышной для игрока, если независимо от ответного хода противника игра заканчивается в ситуации, выигрышной для.
Как и ранее, с каждым состоянием хсвязывается оценка, приписываемая этому состоянию игроком, который делает ход.
Будем полагать, что игроки иоценивают ситуации таким образом, что для любой ситуациихоценка(х) = 1 - (х), (х) + (х) = 1.
Из этого допущения следует, что стремление каждого игрока добиться лучшей для себя ситуации означает адекватное ухудшение соответствующей оценки противника. Очевидно, разумная тактика у игрока заключается в стремлении получить гарантированный минимальный выигрыш на каждом шаге, т.е. строить игру, исходя из допущения, что игрокпридерживается каждый раз своей наилучшей стратегии.
Пустьх- текущая ситуация, в которой ход делает игрок. Тогда он может выбрать любую вершину из множестваГ(х). Допустим, он выбрал вершинуу*Г(х). Теперь, в свою очередь, игрокможет выбрать любую вершину изГ(у*). Очевидно, игроквыберет изГ(у*)ту вершинуz*, которая доставляет максимальное значение величине(z*). Следовательно, игрокдолжен выбором вершиныу*гарантировать
(3.18)
С другой стороны, игрок а стремится максимизировать минимальный выигрыш независимо от выбора игрока, т.е.
(3.19)
Убеждаемся, что (2.19) вытекает из (2.18) в силу того, что (х) min(x). Теперь ясно, что оптимальная стратегия игрокадолжна гарантировать соблюдение для каждого состоянияхусловия
W(x) U(x) (3.20)
Стратегия со свойством (2.20) называется оптимальной для игрока. Оценка (2.20) позволяет отсечь те направления, для которых с учетом возвращаемого игрокомзначенияU(х), соотношение (2.20) не выполняется.
Первоначальный граф представлен на рис. 3.5.
Удалим дуги x6 x5, x3 x5, согласно операции О2 (рис. 3.6,а).
Согласно операции О3 удаляем вершину x8 вместе с инцидентными ей дугами. (рис. 3.6,б).
Согласно операции О6 удаляем альтернативную вершину x2 вместе с инцидентными ей дугами.
По О5 пометка 4 снимается со всех дуг, входящих вx6 и x4 и пометка 5. Следовательно, удаляются дугиx5 x6, x5 x4 и x7 x4 (рис. 3.6,в).
Согласно операции О6 удаляем альтернативную вершину x4 вместе с инцидентными ей дугами.
По О5 пометка 6 снимается со всех дуг, входящих вx6. Следовательно, из дуг x1 x6 и x3 x6 (рис. 3.6,г).