- •Глава 1. Основные концепции искусственного интеллекта 1
- •Глава 2. Механизмы вывода в интеллектуальной системе 38
- •Глава 3. Место и роль интеллектуальных систем в автоматизированном проектировании 65
- •Глава 1. Основные концепции искусственного интеллекта
- •1.1. Основные понятия и структура исследований в области искусственного интеллекта
- •1.2. Способы представления знаний
- •1.2.1. Определение понятия знание
- •1.2.2. Продукционные модели
- •1.2.3. Семантические сети
- •1.2.4. Фреймовые модели
- •1.2.5. Исчисление предикатов
- •1.2.6. Применение теории нечетких множеств при формализации знаний
- •Глава 2. Механизмы вывода в интеллектуальной системе
- •2.1. Стратегия управления и механизм вывода в сии
- •2.2. Общие методы поиска решений в пространстве состояний
- •2.3. Дедуктивные методы поиска решений
- •Глава 3. Место и роль интеллектуальных систем в автоматизированном проектировании
- •3.1. Процесс проектирования как поиск решений
- •3.2. Структура и принципы функционирования интеллектуальной сапр
- •3.3. Интеллектуальные системы в сапр
- •3.4. Инструментальная экспертная система протей для задач проектирования и диагностики
- •3.5. Экспертная оболочка экспрэс для построения экспертных консультирующих систем в сапр
- •3.6. Экспертные системы в управлении производством на основе имитационного моделирования
1.2.2. Продукционные модели
В
качестве простейшей продукционной
модели приведем правила вычислений в
предметной области — «треугольник».
Как известно, для любого треугольника
могут быть определены следующие
параметры: а, Ь, с — стороны треугольника;
,
,
-
углы треугольника; Р - периметр
треугольника; S
- площадь треугольника (см. рис. 1.4).
Рис. 1.4. Пример с треугольником
Между этими параметрами существуют известные из планиметрии соотношения, которые можно представить в виде системы правил продукционной модели, представленной в виде таблицы 1.2.
Эти правила есть не что иное, как база знаний о треугольнике, представленная в виде продукционной модели. Чтобы применить ее к решению какой-либо конкретной задачи из этой предметной области нам понадобится еще база данных (база фактов, рабочая память), которая отражает текущее состояние процесса решения этой задачи. Кроме того, потребуется еще некоторая управляющая структура (интерпретатор в терминологии программирования), решающий, какое из правил продукции надлежит применять следующим.
Таблица 1.2.
правило |
условие |
действие |
||
1. |
(а, b, с) |
Р=а+b+с |
||
2. |
( |
|
||
3. |
( |
|
||
4. |
( |
|
||
5. |
(с,
|
а =
(с sin |
||
6. |
(а,
|
b
=
(a
sin |
||
7. |
(Ъ,
|
с =
(b
sin |
||
8. |
(с, |
b
= 2S/(c sin |
||
9. |
(а,
|
с =
2S/(a
sin |
||
10. |
(a,b, |
S
= |
||
11. |
(b,c, |
S
= |
||
12. |
(а,
с,
|
S
= |
||
База фактов состоит из пар вида <атрибут><значение атрибута>. Представим ее в виде таблицы 1.З., где будем отмечать последовательность (шаги) применения правил и их результаты.
Таблица 1.3.
Шаг решения |
Атрибуты |
|||||||
|
а |
b |
с |
|
|
|
Р |
S |
0 |
|
b* |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
2 |
|
|
С*(7) |
|
|
|
|
|
3 |
а*(5) |
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
Р*(1) |
|
5 |
|
|
|
|
|
|
|
S*(10) |
Как
следует из таблицы 1.З., если вначале,
т.е. на нулевом шаге решения, были заданы
параметры b*,
*,
*,
то после применения на 5 шагах указанных
в скобках правил, мы получим значения
всех параметров треугольника.
Приведенный пример иллюстрирует возможности представления знаний в виде продукций. Однако, если число правил продукций велико, то выполнение их становится серьезной проблемой. Для анализа продукционных моделей и получения искомого решения применяется метод, известный как метод резолюции, о чем будет сказано позже. Для реализации метода резолюций может быть использован язык программирования ПРОЛОГ.
В наиболее общем виде продукционная модель может быть представлена в следующей форме:
(i); S; C; A —> B; Q.
В этой структуре собственно продукцией или ядром продукции является выражение вида А —> В, где А и В - некоторые высказывания, причем из истинности высказывания А следует истинность высказывания В. В общем случае высказывания А и В состоят из более простых высказываний, причем обычно в высказывании А они объединены условием «и», а в высказывании В - условием «или». Поэтому ядро продукции в наиболее общем случае имеет вид:
где
-
условие «и»,
- условие «или».
Возможны
и иные интерпретации ядра продукции.
Так, в высказывание А
могут
входить не просто посылки
,
а посылки, снабженные некоторыми оценками
истинности утверждений, образующих эти
посылки. Аналогично, в высказывание В
также
могут присутствовать эти оценки. Поэтому
в развернутой форме ядро продукции
будет иметь следующий вид:
Такая
схема продукции описывает уже не обычный
вывод, а правдоподобный. Если оценки
-
вероятности, то эта схема определяет
шаг вероятностного вывода, если
-
некоторые числовые веса, то шаг
приближенного вывода, а если
имеют
словесные оценки, то шаг нечеткого
(размытого) вывода.
Остановимся
на этом подробнее. Полагаем для простоты,
что ядро продукции имеет вид А
В.В
этом
случае поставим в соответствии каждому
из высказываний А
и В множества
двух значений V={
правдоподобно (п), неправдоподобно (н)}.
Степень правдоподобности высказываний
АпВ
зададим
функцией принадлежности 0<
<1.
Тогда
(А),
(В)
- степени
принадлежности высказываний А
и
В
к
правдоподобным, а
(А),
(В)
-
к неправдоподобным. Таким образом,
отношениям А
и В ставятся
в соответствие функции принадлежности
(А)
= (
(А),
(А))
и
(В)
= (
(В),
(В)),
а
импликации А
В
ставится
в соответствие нечеткое отношение,
определяемое матрицей
1
где
- степень
принадлежности высказывания В
к
правдоподобным, если высказывание А
правдоподобно;
- степень
принадлежности высказывания В
к
правдоподобным, если высказывание А
неправдоподобно;
- степень
принадлежности высказывания В
к
неправдоподобным, если высказывание А
правдоподобно;
- степень
принадлежности высказывания В
к
неправдоподобным, если высказывание А
неправдоподобно.
Очевидно,
что логические модели являются частным
случаем нечетких моделей. Вектор
(А)
= (1, 0) соответствует
логической модели высказывания А,
а
логической модели импликации А
В
соответствует
матрица
Элемент С в продукционной модели играет роль условия применимости продукции. Для того, чтобы ядро продукции могло сработать, необходимо, чтобы условия С были выполнены. Как правило, эти условия могут быть записаны в виде некоторого предикатного выражения. С их помощью можно организовать процедуру выполнения частных продукций раньше общих.
Элемент S определяет сферу применения продукции. Он облегчает поиск нужной продукции и позволяет точнее привязывать ядра продукций к тем условиям, при наличии которых они должны срабатывать, а не тратить время на проверку условий С у тех продукций, которые к данным областям знаний не относятся.
Элемент (i) есть собственное имя продукции, ее индивидуальный номер. Он нужен для организации ссылок в системе продукций и играет роль метки в языках программирования.
Наконец, элемент Q определяет постусловие. Если реализовано ядро продукции, то может оказаться необходимым что-либо сделать: выполнить изменения в базе знаний или базе данных, в самой продукционной системе, перейти к другой продукции и т.п.
Рассмотрим следующий пример. Пусть составляется база знаний в проектной организации, занимающейся разработкой автомобилей. Тогда условие S может, например, означать «проектирование двигателя», условие С - «отработка двигателя», условие Q - «направить двигатель в цех для устранения неполадки». Само ядро продукции может иметь вид:
(двигатель
не запускается)
(двигатель
прогрет)
(двигатель проворачивается стартером)
(неправильная регулировка системы
холостого хода)
(заедание клапана разбалансировки
карбюратора).
В продукционных системах можно выделить три основные компоненты:
Неструктурированная или структурированная база данных (БД).
Некоторое число продукционных правил или просто продукций. Каждая продукция состоит из двух частей:
условий (антецедент); в этой части определяется некоторые условия, которые должны выполняться в БД для того, чтобы были выполнены соответствующие действия;
действий (консеквент); эта часть содержит описание действий, которые должны быть совершены над БД в случае выполнения соответствующих условий. В простейших продукционных системах они только определяют, какие элементы следует добавить (или иногда удалить) в БД.
3. Интерпретатор, который последовательно определяет, какие продукции могут быть активированы в зависимости от условий, в них содержащихся; выбирает одно из применимых в данной ситуации правил продукций; выполняет действие из выбранной процедуры.
Продукционные модели в основном находят применение в качестве решателей или механизмов выводов.
В БД системы хранятся известные факты о некоторой предметной области. Продукции содержат специфические для данной области знания о том, какие дополнительные факты могут быть допущены, если специфические данные найдены в БД.
Действия продукций могут состоять из активных процедур, которые автоматически производят необходимые операции над содержимым БД (либо подобно «демонам» проверять самих себя на предмет того, выполняются ли их условия активации). В этом случае форма представления знаний является процедуральной, хотя и в весьма ограниченном виде. В последующих итерациях факты, добавленные в БД, могут подключать (активировать) другие продукции и т.д.
В классических продукционных системах БД представляют собой переменную часть системы, в то время как правила и интерпретатор чаще всего меняются. Будучи реализованы процедурально, классические продукционные модели обладают весьма привлекательным свойством модульности. Поэтому правила могут быть добавлены или удалены без возникновения неожиданных побочных эффектов. Причина этого заключается также в том, что в классических системах вызов процедур осуществляется только в зависимости от состояния данных; процедуры, как правило, не активируются другими процедурами. Поэтому продукционные системы могут быть с большим успехом использованы для областей знаний, о которых располагаем только некоторым набором независимых правил (эвристик), а не четкой теорией, вполне завершенной и последовательной, и где, поэтому нет алгоритмов, прямо приводящих к цели.
Продукционные системы в последнее время все более широко используются для реализации так называемых экспертных систем, т.е. систем, вооруженных знаниями человека-эксперта о данной предметной области.
Как правило, классические продукционные системы не содержат сведений о применении, т.е. знаний о том, например, какие продукции могут быть использованы для достижения цели. Это ведет к значительному снижению эффективности их работы, хотя в каждой итерации только одна продукция может быть активирована, должны быть проверены условия всех продукций. Для большого числа правил это может потребовать значительного расхода ресурсов. Более того, последовательность выполнения продукций зависит на каждой итерации от состояния всех переменных системы. В этом случае появляется проблема комбинаторного «взрыва».
Для решения этих проблем предлагались подходы, связанные с методами структурного совершенствования БД и условий в продукциях, что
позволило бы повысить эффективность функционирования. Предпринимаются также попытки повлиять на ход управления.
В каждом цикле все правила, условия которых удовлетворены содержимым БД, считаются определенными. Если существует несколько таких правил, то вопрос о том, какое из правил выбрать, решается с помощью какой-либо приемлемой стратегии «разрешения конфликтов» (например, выбирается правило с наивысшим приоритетом из заранее определенного перечня приоритетов). Все действия, связанные с выбранным правилом, выполняются и вызывают соответствующие изменения в БД.
Другая возможность заключается в осуществлении точного контроля последовательности выполнения продукций. В простейшем случае продукции могли бы формировать специальные сигналы в БД, которые подключали бы соответствующие продукции в других циклах. В некоторых системах сами продукции могут активировать или дезактивировать другие продукции и даже влиять на работу интерпретатора.
Продукционные
системы, в которых сначала анализируется
антецедентная часть, т.е. условия, имеют
так называемую условно-выводимую
архитектуру. Альтернативным типом
архитектуры, которая достаточно часто
используется в экспертных системах,
являются целе -выводимые (действие -
выводимые или консеквент - выводимые)
продукционные системы. Например, правило
вида
А&В&С
_Д
может
быть интерпретировано, как «Логическая
конъюнкция А,
В и С влечет
Д»
или
«Чтобы доказать Д,
необходимо
установить А,
В, С».
В последнем случае цель должна быть достигнута дедуктивным выводом. Для этого исследуются консеквентные правил для нахождения такого правила, которое позволило бы достичь цели. Когда такое правило найдено, проверяются на истинность все его условия. Если условия истинны, продукция активируется. В противном случае продолжается поиск подходящей продукции.
Рассмотрим упрощенный пример продукционной системы с консеквент - выводимой архитектурой. Буквами здесь обозначены элементы БД и они считаются истинными, если содержатся в ней.
БД: A, F.
Правило
1: А&В&С
D
Правило
2: D&F
G
Правило
3: А&J
G
Правило
4: В
С
Правило
5: F
В
Правило
6: L
J
Правило
7: G
Н
Предположим, что цель состоит в том, чтобы выяснить истинность Н. В первую очередь проверяется, находится ли Н в БД? Так как в данном случае это не так, то система пытается вывести истинность Н, использую правила, имеющие Н в правой части. Таким является правило 7. Теперь система пытается вывести истинность G, так как его истинность влечет за собой истинность Н.
Для этого снова проверяется БД, чтобы выяснить есть ли в ней G. Так как в БД нет G, то, организуется поиск правила, содержащего G в правой части. Таких правил несколько (два или три). В качестве стратегии «разрешения конфликта» будем считать, что правила упорядочены по приоритету, причем правилу с наименьшим номером соответствует больший приоритет. В данном случае выбирается правило 2, поэтому целью теперь становится вывести истинность D и F. Для этого достаточно показать, что А - истинно (так как находится в БД), В - истинно (согласно правилу 5), С - истинно (согласно правилу 4). Так как истинность D и F доказана, то из правила 2 следует истинность G, а из истинности G следует истинность Н (правило 7). Таким образом, цель достигнута. Элементы, истинность которых доказана, добавляются в БД. В данном случае это элементы Н, G, D, С, В.
