- •Введение
- •Глава 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. Нерезолютивные методы вывода на семантических сетях
2.5.9.1.4. Однозначность вычислений над дизъюнктивной базой
Обобщим введенные понятия на ситуацию с дизъюнктивными фактами. Пусть dk -множество конъюнктивно связанных фактов. Тогда дизъюнктивным состоянием базы назовем любое конечное множество
Основные понятия совпадают с введенными выше. Определим вывод по продукции в дизъюнктивной базе.
Пусть задано: и продукцияpr = <q, r>.
Определение 7. Будем говорить, что издизъюнктивно выводимо по продукцииpr, если найдутся такие (подстановка),k(1 k m), что
Очевидно, что любая система продукций конфлюэнтна относительно дизъюнктивного вывода, и все возможные результирующие ситуации, получаемые конъюнктивным выводом, входят в результирующую ситуацию в виде дизъюнктных членов.
Дизъюнктивный вывод представляет собой полный перебор альтернативных вариантов, основной недостаток которого — комбинаторный рост дизъюнктов. Для его реализации в работе [43] предложен метод "снизу-вверх" с использованием отношения несовместности на фактах, принадлежащих различных вариантам вывода.
Однако вывод с отношением несовместности несмотря на все средства оптимизации основан на алгоритме полного перебора. Поэтому в формальной модели необходимо разработать средства для представления эвристических функций сокращения перебора и управления выводом.
2.5.9.2. Управление выводом в системах продукций
При описании предметных областей традиционно выделяют два вида знаний: логический,используемый при решении задач, иуправляющий, описывающий основные стратегии и методы решения задач. На ранних этапах конструирования СП эти виды знаний не отделялись друг от друга, и обычная схема вывода в СП не предусматривала никаких средств управления: продукция могла применяться только в случае, когда были истинны условия ее применимости. Однако во многих предметных областях необходимы средства представления управляющей информации, поскольку решение задачи часто требует знания о планах и последовательности действий. Кроме того, при значительных объемах знаний размеры деревьев поиска решения задач оказываются очень большими, что делает обе процедуры систематического перебора (в глубину и ширину) в высшей степени непривлекательными.
Эксплицитное разделение знаний1дает, по мнению многих авторов, два основных преимущества:
логические знания, если из них максимально убраны управляющие, будут ясным, корректным и лаконичным описанием предметной области;
управляющие знания, влияющие на эффективность системы, в результате отделения от логических проще улучшать и оптимизировать.
Таким образом, выработка адекватных способов представления управляющих знаний, которые не изменили бы сущности СП и сохраняли такие их важнейшие свойства, как расширяемость и способность к саморедактированию, является одной из основных задач при разработке технологических комплексов.
Управление выводом в СП распадается на два основных типа: управление продукциями и управление данными. Рассмотрим каждый из них более подробно.
2.5.9.3. Язык управления применением продукций
Описание процедур разрешения конфликта сводится обычно к заданию порядка применения продукций, называемому иногда дисциплиной применения. При этом порядок может быть либо детерминированным, когда на каждом шаге задается ровно одна продукция, либо недетерминированным, когда проверяются условия нескольких продукций, но их число значительно меньше общего количества правил в системе.
По способу задания можно выделить встроенный и настраиваемый порядки применения продукций. К встроенным относятся средства, которые непосредственно запрограммированы в интерпретаторе системы. Примером встроенного порядка применения правил может служить схема выбора правил в нормальных алгоритмах Маркова. На каждом шаге вывода проверяются условия только одного правила (на первом шаге — первого), если оно не применимо, то происходит переход к следующему. Если оно применилось, то на следующем шаге снова проверяются условия первого правила и т.д. В системе продукции можно упорядочивать по частоте использования или по самым длинным спискам условий, по приоритету и т.п. Кроме этого, в различных системах широко использовалось введение меток и тегов, специальных логических символов внутри продукции для задания последовательности выбора. Такие средства управления порядком применения продукций активно использовались в начальный период конструирования СП, когда под каждую процедуру разрешения конфликта программировался свой интерпретатор. Позднее эти средства подверглись острой критике многими авторами, поскольку их введение означало отход от идеологии СП к традиционным средствам программирования. Это послужило толчком к развитию настраиваемых средств управления.
Первой попыткой в этом направлении было использование в системе HEARSAY-IIразбиения правил на подсистемы таким образом, чтобы в каждый момент времени рассматривалось лишь их приемлемое число [90]. Другим средством задания порядка являются метапродукции, использованные в комплексе системMYCIN-TEIRESIAS[84]. Однако последовательность управляющей информации невозможно описать одними метапродукциями (необходимо введение метаметапродукций и т.д.). По существу, идея введения метапродукций состоит в попытке задать всю возможную информацию в системе однородным образом.
Еще одним средством управления порядком применения правил является использование языков управления. Опишем неформально управляющие формулы и их использование при выводе.
Пусть Рr={< qi ri >}, i = 1 ... n,п 0 —множество продукций,d —текущее состояние базы данных. На языке управления порядком задаетсяуправляющая формула,описывающая множество продукций, для которых на текущем шаге выводаtпроверяются условия применимости. Такие множества будем называть множествамиактивированныхпродукцийar , ar Рr.
Каждая продукция рr=<q,r> в задаваемом множестве может быть в одном из трех состояний:
рr+ — условие продукциирr, активированной на шаге выводаt, должно быть истинно после проверки, т.е. найдется подстановка такая, чтоqd;
рr-— условие продукциирr, активированной на шаге выводаt, должно быть ложно после проверки, т.е. не существует подстановкитакой, чтоqd;
—продукция должна быть активирована, а значение ее условий (истинное или ложное) не влияет на переход к следующему шагу вывода.
Если, например, Аr=, то переход кAr+1произойдет в том случае, если условиярr2истинны, арr3ложны. Истинность условийpriне влияет на переход кAr+1.Требование ложности условийрr1является одним из средств задания отрицательного контекста, если он необходим при выводе.
Язык управления представляет собой множество правильно построенных формул {} над состояниями продукций и бинарными операциями между ними, среди которых выделены следующие проверки условий: последовательная (•), одновременная (,) и альтернативная (;). Такие формулы называютсяуправляющими,а множество продукций с заданной на нем управляющей формулой — системой структурированных продукций.
Опишем неформально процесс вывода в Рrс управляющей формулойна некотором шагеt. Для каждого шага выводаtпоформируется множествоАr,которое состоит из
где
—множество продукций, помеченных состоянием +, т.е. продукций, условия которых должны быть истинны на текущем шаге вывода r;
—множество продукций, помеченных состоянием -, т.е. продукций, условия которых должны быть ложны на шаге вывода r;
—множество продукций, для которых не требуется однозначного ответа на вопрос, истинны ли их условия применимости на текущем шаге вывода, однако по мнению эксперта их разумно включить в число правил, у которых следует проверить условия применимости, и если они истинны, то применить правила.
После проверки условий Arраспадается на два непересекающихся подмножества:
где имножества всех активированных продукций с истинными и ложными условиями применимости соответственно.
Если выполнено условие , то применяются все продукции из множестваи происходит переход к следующему шагу вывода. Вывод заканчивается успешно, если очередноеArпусто. Если указанное условие не выполнено илиArсодержит специальный выделенный символ, то вывода "зависает".
Как видно из неформального описания, введение средств управления позволяет сокращать число активируемых правил. Однако это возлагает большую ответственность на эксперта, поскольку выбранная им дисциплина применения правил может оказаться неудачной.
Рассмотрим пример использования языка управления для решения задачи определения языка, порождаемого следующей формальной грамматикой:
Приведенная контекстно-свободная грамматика порождает язык:
Введем над этой грамматикой управляющую формулу, которая описывается выражением
где ()* задает итеративное применение правил p2, p3 p4.
Данное выражение может быть изображено сетью переходов на рис.1.6
Рис. 1.6. Сеть переходов для языка управления
В результате использования управляющего языка множество слов будет представлять собой язык {anbncn|n1}, который не является контекстно - свободным.
Как видно даже из этого небольшого примера язык управления применением правил позволяет значительно упрощать основные продукции.