- •Глава 1
- •Искусственный интеллект
- •Фактуальное и операционное знание
- •Признаки иис
- •Системы с интеллектуальным интерфейсом
- •Экспертные системы
- •Самообучающиеся системы
- •Адаптивные информационные системы
- •Языки программирования для ии и языки представления знаний
- •Глава 2
- •Данные и знания
- •Модели представления знаний
- •Глава 3
- •Системы продукций
- •Стратегии поиска в пространстве состояний
- •Рекурсивный поиск
- •Глава 4
- •Введение в экспертные системы. Определение и структура
- •Классификация экспертных систем
- •Коллектив разработчиков
- •Технология проектирования и разработки
- •Глава 5
- •Поле знаний
- •Стратегии получения знаний
- •Теоретические аспекты извлечения знаний
- •Теоретические аспекты структурирования знаний
- •Технологии инженерии знаний
- •Глава 6
- •Задача классификации
- •Деревья решений
- •Искусственные нейронные сети
- •Глава 7
- •Способы аналитической обработки данных
- •Некоторые бизнес-приложения Data Mining
- •Типы закономерностей
- •Процесс нахождения нового знания
- •Глава 1 2
- •Глава 2 15
- •Глава 3 23
- •Глава 4 45
- •Глава 5 54
- •Глава 6 62
- •Глава 7 88
Глава 3
Системы продукций и стратегии поиска в пространстве состояний
Системы продукций
Компоненты системы продукций
Система продукций (или продукционная система) состоит из трех основных элементов:
рабочей памяти;
множества продукционных правил;
системы управления.
Рабочая память — это центральная структура данных, используемая системой продукций. В зависимости от конкретной задачи она может быть простой, как обычная матрица чисел, или сложной, как реляционная индексированная файловая структура. Рабочая память содержит описание текущего состояния мира в процессе рассуждений.
Продукционное правило представляет собой пару «условие—действие». Если условие выполняется, т.е. описание текущего состояния рабочей памяти удовлетворяет этому правилу, то правило может быть применено. Применение этого правила изменяет содержимое рабочей памяти.
Система управления выбирает, какое именно применимое правило следует использовать. Кроме того, система управления прекращает вычисления, когда содержимое рабочей памяти удовлетворяет целевому условию (условию остановки).
Правила продукций последовательно применяются к описанию состояний рабочей памяти в соответствии со стратегией управления до тех пор, пока не будет получено описание целевого состояния. Для того чтобы иметь возможность получить последовательность, ведущую к решению задачи, необходимо сохранять информацию о примененных правилах.
Основной алгоритм системы продукций
Обозначим текущее состояние рабочей памяти системы продукций через CurrentState.
Следующий алгоритм описывает взаимодействие трех компонентов продукционной системы.
function MainAlgorithm; begin
CurrentState := Start ’исходное состояние рабочей памяти until CurrentState = goal do
’пока не достигнуто целевое состояние
begin
а) выбрать некоторое правило P в множестве правил, которые применимы в состоянии CurrentState;
б) CurrentState := P(CurrentState)
’результат применения правила P к CurrentState;
end;
end.
Пример 1. Рассмотрим простой пример работы системы продукций, которая преобразовывает строку, состоящую из символов a,b,c в соответствии со следующими правилами:
ab ^ ba
ac ^ ca
bc ^ cb
Работа такой системы продукций для начального состояния рабочей памяти acabc приведена в табл. 2.
Таблица 2
Шаг |
Состояние рабочей памяти |
Множество применимых правил |
Примененное правило |
0 |
acabc |
1,2,3 |
1 |
1 |
acbac |
2 |
2 |
2 |
cabac |
1,2 |
1 |
3 |
cbaac |
2 |
2 |
4 |
cbaca |
2 |
2 |
5 |
cbcaa |
3 |
3 |
6 |
ccbac |
0 |
stop |
Алгоритм MainAlgorithm является недетерминированным, так как в нем не указывается, каким образом следует выбирать применимое правило.
Так, в примере 1 множество применимых правил на некоторых шагах состоит более чем из одного правила. Множество всех применимых в данном состоянии правил называется конфликтным множеством.
Стратегии управления для систем продукций — это правила вывода и запоминания уже опробованных последовательностей правил и состояний рабочей памяти, порожденных их применением.
В примере 1 применялась стратегия управления, состоящая в выборе из конфликтного множества правила с наименьшим порядковым номером (другими словами, использовалось первое же применимое правило).
Проблема представления
Для решения задач с помощью системы продукций необходимо определить все три вышеперечисленные компоненты (рабочую память, набор правил, стратегию управления). Преобразование исходной формулировки задачи в эти три компонента некоторой системы продукций называется проблемой представления. При этом целевое условие исходной задачи служит основой для целевого условия системы продукций.
Приведем пример представления задачи. Рассмотрим задачу о коммивояжере. Торговец должен побывать в каждом из пяти городов, обозначенных на карте. Каждая пара городов соединена дорогой с указанием ее длины. Задача состоит в том, чтобы, начиная, например, с города A, найти минимальный путь, проходящий через все остальные города только один раз и приводящий обратно в A.
Чтобы поставить эту задачу, определим следующее.
Рабочая память будет содержать список городов, посещенных к данному моменту. Таким образом, исходное состояние рабочей памяти является списком [А]. Не допускается появление списков, содержащих название любого города более одного раза, кроме случая, когда после внесения в список названий всех городов А упоминается в нем вторично.
Правила продукций соответствуют решениям:
идти в город A;
идти в город B;
идти в город C;
идти в город D;
идти в город E.
Правило не применимо к описанию состояния рабочей памяти, если оно не преобразует ее в какое-либо допустимое состояние. Следовательно, правило, соответствующее тому, чтобы «идти в город А», не применимо к любому списку, в который еще не внесены все города.
Любое состояние рабочей памяти, начинающееся и заканчивающееся названием города А и содержащее названия всех других городов, удовлетворяет целевому условию. Заметим, что можно использовать схему расстояний на рисунке для вычисления общей протяженности любого маршрута. Путь, предлагаемый в качестве решения, должен иметь минимальную длину.
При этом можно построить дерево поиска, которое при решении этой задачи может породить стратегия управления с поиском на графе.
Обратные и двусторонние системы продукций
Некоторые системы продукций работают непосредственно от исходного состояния к целевому. Такую систему продукций можно назвать прямой системой продукций. Можно иногда решать задачу и в обратном направлении, применяя обратные ходы и продвигаясь от целевого к исходному состоянию.
Каждый обратный ход породил бы подцелевое состояние, из которого непосредственно первоочередное целевое состояние можно достичь за один ход вперед.
Если в задаче можно выделить четкие, на интуитивном уровне, состояния и цели и если мы приняли решение пользоваться описаниями этих состояний как описаниями состояний рабочей памяти системы продукций, мы называем эту систему прямой системой продукций. Правила применяются к описаниям состояний для порождения новых состояний, и эти правила называются П-правилами. Наоборот, если используются описания целей задачи как описания состояний рабочей памяти, будем называть эту систему обратной системой продукций. Тогда правила применяются к описаниям целей для порождения описания подцелей, и эти правила называются О-правилами.
Часто удачной является попытка решить задачу путем двустороннего поиска (в прямом и обратном направлениях одновременно). Этого также можно достичь с помощью систем продукций.
Для этого следует включить в рабочую память описания как состояний, так и целей. К части описания состояний применяются П-правила, а к части описания целей — О-правила. При поиске такого типа целевое условие для управляющей системы, которое позволяет сделать вывод о том, что задача решена, должно быть определено как разновидность условия соответствия между частью описания состояний и частью описания цели в рабочей памяти. Управляющая система должна также на каждой стадии принимать решения об использовании применимого П- либо О-правила.
