Смекни!
smekni.com

Искуственный интеллект (стр. 6 из 13)

...ЕСЛИ <ОБЪЕКТ - заголовок столбца выбранного значения>=<выбранное

ЗНАЧЕНИЕ>... ,

выбор другого значения из другого столбца добавляет в правило сле-

дующую строку:

...И <ОБЪЕКТ 2>=<выбранное ЗНАЧЕНИЕ 2>... ,

то выбор какого-либо значения из какого-либо другого столбца ком-

бинацией <CTRL+ENTER> добавит в правило строку:

...ТО <ОБЪЕКТ 3>=<выбранное ЗНАЧЕНИЕ 3>... .

Необходимо отметить, что особенности синтаксиса баз знаний, разра-

батываемых в системе "Консультант", позволяют в данном правиле для од-

ного объекта выделить только одно значение, а в самом правиле - толь-

ко одно заключение (предпосылок может быть сколь угодно много).

Редактор правил реадизуется процедурой RULEEDITING, которая загру-

жает из файла ресурсов EXPERT.AIR объект TRULEEDITOR, в который инкап-

сулированы все процедурыуправления событиями внутри него. Помимо мат-

рицы (таблицы) редактор правил имеет также командные кнопки, такие же

как и в предыдущих редакторах. При нажатии кнопки ВНЕСТИ инкапсулиро-

ванная процедура INRULE вызывает процедуру RULESFORMER, обрабатываю-

щую помеченные в таблице значения и переводящая их во внутренний фор-

мат базы правил.

По окончании заполнения или редактирования базы правил с помощью

команды ДАЛЕЕ на экран выводится диспетчер редактора. Его вызывает

процедура CALLDISPECTHER, которая извлекает окно диспетчера из файла

ресурсов и выводит его на рабочую поверхность. Диспетчер редактора -

диалоговое окно с четырьмя командными кнопками, которые связаны с про-

цедурами, аналогично предыдущим инкапсулированными в объект

TDICPETCHER.

- Кнопка УПАКОВКА вызывает на исполнение процедуру PACKADER, поз-

воляющую удалить из базы фактов незадействованные при редактировании

правил значения и объекты.

- Кнопка ОПТИМИЗАЦИЯ связана с процедурой OPTIMIZE, позволяющей

без нарушения логики знаний исправить базу правил таким образом, что-

бы сократить ее размеры до минимальных и, следовательно, в дальнейшем

при ее использовании уменьшить время сеанса консультации (например,

удаление одинаковых правил, сокращение размеров логических цепей и т.

д.).

- Кнопка ПРОВЕРКА запускает процедуру LOOKFOR, которая проверяет

смысл введенных правил (например, устраняет зацикливание правил (см.

далее), указывает на неоднозначность (см.далее) и т. д.).

- Кнопка СОХРАНИТЬ вызывает процедуру SAVEBASE, которая выполняет

две функции: сохранение созданной или отредактированной БЗ на диске и

выход из режима редактирования в основной режим (СУБЗ).

Следует заметить, что если пользователь желает в дальнейшем про-

должить проектирование недоработанной БЗ, ему не следует применять

операции УПАКОВКА и ОПТИМИЗАЦИЯ по отношению к незаконченной базы,

поскольку часть фактов, значений и правил, возможно необходимых ему в

дальнейшем, процедуры могут счесть ненужными. Эти факты, значения и

правила будут безвозвратно потеряны.

3.3.3. Реализация машины вывода

Входящая в систему "Консультант" машина вывода имеет ряд особен-

ностей, отличающей ее от машин других ЭС:

- обработка правил, хранящихся в матричной форме (правила в дру-

гих ЭС имеют обычно текстовое представление);

- использование стратегии комбинированного вывода (см. ниже);

- возможность в ходе консультации возврата к предыдущему шагу.

Машина вывода физически предсавляет собой комплекс процедур, выра-

батывающих маршрут оптимального движения к поставленной пользователем

цели в зависимости от ответов на задаваемые ей вопросы.

На экране машина вывода - это ряд последовательно выводящихся

окон, в каждом из которых содержится вопрос пользователю и список воз-

можных ответов на него. Стандартное окно машины вывода процедурой

INITOUTPUTWINDOW извлекается из файла ресурсов системы, вопрос об

объекте и список возможных его значений, считанные из файла этой ба-

зы, вставляются в окно этой же процедурой. Запустить машину вывода

можно тремя способами:

1. Выбрать в списке баз окна банка знаний нужную базу, в сфере ко-

торой требуется получить консультацию, и нажать <ENTER>.

2. Выбрать нужную базу полосой-указателем и, войдя в верхнее меню

системы нажатием клавиши <F9>, выбрав пункт БАЗА и в нем операцию ОТК-

РЫТЬ, нажать <ENTER>.

3. Дважды щелкнуть левой клавишей "мыши" на имени нужной базы.

После этих действий автоматически запустится процедура OPENBASE,

которая, проведя необходимые настройки (поиск файла выбранной базы,

извлечение из него баз фактов и правил и т. д.), запускает в свою оче-

редь процедуру OUTPUTMACHINE, являющуюся ядром всей машины вывода. Ал-

горитм функционирования машины вывода таков:

1) Формирует базу целей.

2) Выводит на экран окно с просьбой пользователю выбрать цель и

списком возможных целей.

3) Получив от пользователя цель и ее номер, ищет ее в базе целей.

4) Исходя из этого номера, переформировывает базу правил в вид,

удобный для поиска ответа (так называемую рабочую базу правил).

5) Если в рабочей базе правил остался один элемент, выдает на его

основании свое решение, иначе выводит на экран окно с вопросом и спис-

ком разрешенных значений для объекта с номером, полученным от первого

объекта РБП, получает от пользователя номер значения и возвращается к

шагу N4.

6) Вызывает диспетчер вывода.

Машина вывода применяет разработанную стратегию комбинированного

(смешанного вывода). При получении номера цели от пользователя, из уп-

равляющей программы вызывается процедура формирования РБП, которая ис-

пользует обратный вывод (так называемый "поиск в ширину"). Его смысл

заключается в следующем: берется конечная цель (заключение), ищется

для него предпосылка, затем для полученной таким образом предпосылки

ищется заключение в другом правиле и так до тех пор, пока не обнару-

жится "висячая" предпосылка, не имеющая заключения. По ней и будет за-

дан вопрос пользователю. Однако машина вывода "Консультанта" в этом

месте действует по иному. Выявив все необходимые для достижения цели

"висячие" предпосылки, она формирует новую одноцелевую РБП, все прави-

ла которой построены по следующему принципу: "висячие" предпосылки ис-

ходной базы правил образуют предпосылки РБП, а целевые заключения ис-

ходной - заключения новой РБП. Так сформирована новая база правил с

одной целью и одинаковым количеством предпосылок в каждом правиле. Да-

лее применяется метод прямого вывода ("поиска в глубину"). С каждым

ответом на вопрос, машина сужает область поиска, отбрасывая заведомо

ненужные правила до тех пор, пока не останется одно правило, состоя-

щее из одного элемента (заключения).

Преимущества этой стратегии вывода в следующем:

1) Количество вопросов сокращается до минимума, поскольку метод

исключает возможность появления лишних.

2) Сокращается время поиска вопросов для достижения цели; они фор-

мируются естественным путем при формировании РБП.

3) Исключается возможность неоднозначных решений.

Машина вывода реализуется следующими процедурами:

- OUTPUTMACHINE - основная управляющая процедура;

- INITOUTPUTWINDOW - выводит окно консультации с вопросом и спис-

ком возможных ответов;

- MAKETARGET - формирует базу целей;

- WORKRULEBASEFORMER - формирует РБП из исходной базы правил об-

ратным методом;

- WORKRULEBASEREFORMER - переформировывает РБП в зависимости от

номера ответа пользователя (прямым методом);

- CONCLUDE - выводит окончательное решение на экран.

Следует отметить, что OUTPUTMACHINE использует все остальные про-

цедуры машины вывода в своем теле.

По окончании сеанса консультации процедура OUTPUTMACHINE вызывает

из файла ресурсов диспетчер вывода - специальную сервисную программу,

выполняющую некоторые полезные операции. Диспетчер вывода - диалого-

вое окно с пятью кнопками:

- кнопка МАРШРУТ выводит на экран полный путь, проделанный маши-

ной вывода в поисках цели;

- кнопка ПРОТОКОЛ создает на диске текстовый файл с расширением

"REP" и именем XXXXXXXX (где первые две цифры - число, вторые две -

месяц, третие две - год создания протокола, а последние две - порядко-

вый номер протокола за эти сутки), в который помещает протокол прове-

дения консультации;

- кнопка СПИСОК выдает диалоговое окно выбора сохраненных ранее

протоколов предыдущих консультаций и позволяет просмотреть любой из

них;

- кнопка ПЕЧАТЬ позволяет распечатать полученный протокол с помо-

щью принтера;

- кнопка ВЫХОД возвращает пользователя в основной режим (режим

СУБЗ).

Диспетчер вывода реализуется процедурой CALLMANAGER, вызывающей

из файла ресурсов объект TMANAGER, то есть окно с командными кнопками

и инкапсулированными связанными процедурами.

3.3.4. Реализация связи с другими программами

"Консультант" представляет собой интегрированную систему, однако

пользователю может понадобиться временно выйти в другую программу или

оболочку.

Этой цели служит операция меню СИСТЕМА - ОБОЛОЧКИ. Данная опера-

ция разворачивает подменю с тремя операциями:

- операция MS-DOS вызывает процедуру CALLDOS, позволяющую времен-

но выйти в операционную систему MS-DOS, выполнить там необходимые

действия и вернуться в систему, набрав в командной строке DOS команду

EXIT;

- операция NORTON COMMANDER выполняет те же действия по отношению

к оболочке Norton Commander. Реализуется процедурой CALLNC, возврат в

систему - последовательное нажатие клавиш <F10> и <ENTER>;

- операция WINDOWS 3.X также позволяет выполнить аналогичную про-

цедуру с графической оболочкой Windows 3.x. Реализуется процедурой

CALLWIN, возврат в систему нажатием комбинации клавиш <ALT+F4> и за-

тем клавиши <ENTER>.

Все эти операции реализуются аналогично: