- •Введение
- •Глава 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. Модели эвристического поиска решений
Модели эвристического поиска решений основаны на представлении задачи в пространстве состояний. Некоторая начальная вершина этого пространства соответствует начальному состоянию. Вершины, непосредственно следующие за данной, получаются в результате применения операторов (правил, продукций, алгоритмов), которые применимы в состоянии, ассоциированном с данной вершиной. Определение всех непосредственно следующих вершин для вершины хназывается раскрытием вершиных. Обозначимоперацию раскрытия вершины какГ(х).ПодГ(х)будем понимать множество вершин, непосредственно следующих за вершинойх; коротко назовем вершинууГ(х)потомком вершиных.
Выделим некоторую целевую вершину, соответствующую конечному состоянию.
В приведенных терминах задача формулируется следующим образом:
Заданы начальное S0и конечноеSeсостояние задачи, а также множество операторов.
Найти цепочку операторов , осуществляющую переход. Иначе говоря, требуется найти последовательность вершинS0, S1, ..., Se, порождаемых соответствующими операторами, такую чтоSi Г(Si-1).
Стратегии поиска на графе состояний являются разновидностями эвристических стратегий перебора. Из них наиболее важными являются стратегия поиска в глубину, стратегия поиска с отсечениями и стратегия поиска на основе эвристической функции оценки состояний.
3.4.1 Стратегия поиска в глубину
Определим глубину вершины в дереве поиска следующим образом:
Глубина корня дерева равна 0.
Глубина вершины х, не являющейся корнем, равна глубине вершиныу, такой, чтоx Г(y), сложенной с единицей.
В стратегии поиска в глубину каждый раз раскрывается вершина, глубина которой максимальна. Опишем алгоритм, реализующий стратегию поиска в глубину:
Поместить начальную вершину в список, называемый ОТКРЫТ.
Если список ОТКРЫТ пуст, то неудача всего алгоритма, иначе следующий шаг.
Всписке ОТКРЫТ взять вершину с максимальным значением глубины и пронести ее в список ЗАКРЫТ.
Если глубина равна граничной глубине, то перейти к п. (2), иначе - следующий шаг.
Раскрыть вершину . Поместить каждую вершину Г() в список ОТКРЫТ, если не принадлежит ни списку ОТКРЫТ, ни списку ЗАКРЫТ.
Если в Г() есть целевая вершина, то конец, иначе перейти к п. (2).
Для иллюстрации стратегии поиска в глубину обратимся к задаче отыскания маршрута, связывающего произвольные две вершины в графе. Рассмотрим граф, показанный на рис. 3.7. Пусть требуется найти маршрут, ведущий из вершины 1 в вершину 7. Начальная вершина 1 образует исходный список ОТКРЫТ = {1}.
Далее находим:
В скобках рядом с номером вершины помечено значение глубины вершины в графе. Полагаем ОТКРЫТ = , ЗАКРЫТ =.
Выбираем для раскрытия вершину 2:
Г(2) = {3,4,6}.
Поскольку вершина 4 уже фигурирует в списке ЗАКРЫТ, то устанавливаем:
ОТКРЫТ = {4(1), 3(2), 6(2)}; ЗАКРЫТ = {1(0), 2(1)}.
Выбираем в списке ОТКРЫТ вершину с максимальной глубиной, например, 3, и находим
Г(3) = {4}.
Вершина 4 не включается в список ОТКРЫТ, т.к. она там присутствует. Устанавливаем
ОТКРЫТ = {4(1), 6(2)}; ЗАКРЫТ = {1(0), 2(1), 3(2)}.
Выбираем для раскрытия вершину 6:
Г(6) = {1, 5}
Полагаем
ОТКРЫТ = {1(1), 5(3)}; ЗАКРЫТ = {1(0), 2(1), 3(2), 6(2)}.
Далее аналогично находим
Г(5) = {3, 8};
ОТКРЫТ = {4(1), 8(4)};
ЗАКРЫТ = {1(0), 2(1), 3(2), 5(3), 6(2)}.
Г(8) = {6, 9}
ОТКРЫТ = {4(1), 9(5)};
ЗАКРЫТ = {1(0), 2(1), 3(2), 5(3), 6(2), 8(4)}.
Наконец,Г(9)= {7}: Конечная вершина достигнута. Искомый маршрут определяется в обратном порядке через множестваГ(). Так, конечная вершина 7 принадлежитГ(9). Следовательно, вершина 9 должна быть предпоследней вершиной маршрута. Устанавливаем, что 9Г(8). Таким образом, вершина 8 должна предшествовать вершине 9 и т.д. Окончательный список вершин, образующий маршрут из вершины 1 в вершину 7 таков: <1, 2, 6, 5, 8, 9, 7> (рис.3.8).
Рассмотренный алгоритм не использует каких-либо дополнительных предположений относительно свойств вершин - состояний. В частности, например, знание некоторых свойств, которыми должна обладать конечная вершина - состояние, позволило бы не раскрывать те вершины, которые в силу этих свойств не могут принадлежать результирующему маршруту (см. раздел 2.2). Это свойство используется различными стратегиями перебора с отсечениями.