Реферат: Искуственный интеллект
дая кнопка связана с определенной процедурой посредством обработчика
событий окна TATRIBUTEDITOR.HANDLEEVENT. Все эти процедуры инкапсули-
рованы в объект TATRIBUTEDITOR. Словом, эти кнопки генерируют различ-
ные действия как с информацией, считанной из строк ввода процедурой
TINPUTLINE.GETDATA, так и поведения редактора объектов в теле редакто-
ра БЗ, составляющей которого он является. Так, например, кнопка ВВЕС-
ТИ включает полученные из строк ввода окна объект и вопрос о нем в ба-
зу фактов, кнопка ЗАПИСЬ сохраняет объекты или вопросы на диске в фай-
ле создаваемой или редактируемой БЗ, кнопка ДАЛЕЕ позволяет перейти к
следующему шагу редактирования - редактору значений, а кнопка НАЗАД -
к предыдущему (окно установок редактора). Все эти действия описывают-
ся методами объекта TATRIBUTEDITOR (его предок - объект TDIALOG) со-
ответственно INBASE, RECBASE, NEXT, PREVIOUS.
Как уже упоминалось выше, по команде ДАЛЕЕ вызывается процедура
NEXT, которая запускает процедуру VALUEEDITING. VALUEEDITING - проце-
дура, управляющая процессом ввода или редактирования значений. Редак-
тор значений - это ряд последовательно сменяющихся диалоговых окон,
аналогичных редактору объектов; отличие составляют:
- наличие статического текста, указывающего, для какого объекта
идет редактирование значений,
- имеется одна строка ввода вместо двух,
- имеется дополнительная кнопка ДРУГОЙ, позволяющая по окончании
редактирования одного объекта перейти к редактированию другого (то
есть, сменить окно).
Следует отметить, что редактор значений выдает такое количество
окон, сколько имеется объектов в базе знаний.
По команде ДАЛЕЕ окна редактора значений редактор БЗ переходит к
следующему этапу редактирования - редактору правил. Последний постро-
ен по принципу электронной таблицы и представляет собой матрицу, верх-
няя строка которой - имена объектов (FACT^.ATRIBUT), под каждым из ко-
торых в столбец выведены разрешенные значения. Перемещение по таблице
осуществляется клавишами управления курсором или "мышью", выбор значе-
ния для предпосылки - клавишей <ENTER>, выбор значения для заключения
- комбинацией клавиш <CTRL+ENTER>. Подробнее: выбор какого-либо значе-
ния клавишей <ENTER> равносилен записи в правило следующего пункта:
...ЕСЛИ <ОБЪЕКТ - заголовок столбца выбранного значения>=<выбранное
ЗНАЧЕНИЕ>... ,
выбор другого значения из другого столбца добавляет в правило сле-
дующую строку:
...И <ОБЪЕКТ 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>.
Все эти операции реализуются аналогично:
1) отключаются все подсистемы "Консультанта" (распределение памя-
ти, обработчик системных ошибок, поддержка стандартного вида экрана и
т. д.);
2) администратор кучи сохраняет ее в оперативной памяти;
3) устанавливаются стандартные векторы прерываний DOS;
4) активизируется командный процессор DOS;
5) командному процессору передается необходимая команда для запус-
ка той или иной оболочки.
По окончании действий пользователя в оболочке:
1) устанавливаются векторы прерываний;
2) восстанавливается куча;
3) включаются все подсистемы системы;
4) восстанавливается предыдущий вид экрана системы.
Нужно отметить, что из оболочки, в которую выйдет пользователь,
можно будет загрузить любую другую программу. Если какая-либо из обо-
лочек в компьютере отсутствует, на экран выдастся сообщение "Невозмож-
но выполнить эту операцию!"
3.4. Программы, не входящие в комплект поставки
3.4.1. Создание и использование библиотек (модулей)
Система "Консультант" использует следующие модули:
1. Стандартные модули Турбо-Паскаля:
- SYSTEM.TPU (основной модуль Турбо-Паскаля);
- CRT.TPU (модуль, содержащий процедуры работы с текстовым экра-
ном);
- DOS.TPU (модуль, позволяющий работать с операциями среднего
уровня - уровня операционной системы);
- PRINTER.TPU (операции печати);
2. Стандартные модули Turbo-Vision%
- APP.TPU (базовый модуль для любой программы);
- OBJECTS.TPU (модуль, содержащий все невидимые объекты, использу-
ющиеся в программе);
- VIEWS.TPU (базовый модуль для создания видимых компонентов прог-
раммы);
- DIALOGS.TPU (модуль, включающий диалоговые окна и их компонен-
ты);
- MENUS.TPU (модуль, используемый при создании строк меню и стату-
са);
- MEMORY.TPU (модуль управления памятью);
- DRIVERS.TPU (модуль, служащий для обработки событий);
3. Демонстрационные модули Turbo-Vision, не входящие в состав
Turbo-Vision, но идущие в комплекте Турбо-Паскаль 6.0:
- CALC.TPU (реализация калькулятора);
- CALENDAR.TPU (создание календаря);
- PUZZLE.TPU (реализация игры-головоломки);
- MSGBOX.TPU (испрользование информационных окон);
- GAUGES.TPU (управление кучей);
4. Созданный при разработке системы модуль MAIN.TPU, содержащий
все объекты, используемые системой (см. выше), указатели на эти объек-
ты, регистрационные записи этих объектов, основные глобальные процеду-
ры СУБЗ, машины вывода и редактора знаний, а также константы команд
для обработчиков событий объектов.
Все используемые процедуры перечисленных модулей, кроме CRT, DOS,
DRIVERS и MAIN, включаются в файл EXPERT.OVR. CRT, DOS, DRIVERS,
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10