![]() |
|
|
Реферат: Искуственный интеллектTOBJECT и имеет следующие поля и методы: - поле SLOT - номер помеченного в поле MARK значения; - поле CON - поле-метка для определения предпосылки или заключе- ния; - метод LOAD - конструктор для загрузки данного объекта из потока; - метод STORE - процедура для сохранения объекта в потоке. Следует отметить, что каждый из этих объектов имеет методы LOAD и STORE, поскольку предполагается, что БЗ будет сохранена в файле ресур- сов, который представляет собой индексированный поток (поток с произ- вольным доступом к объектам по ключам). 3.3. Программная реализация составных частей системы 3.3.1. Реализация интерфейса системы и СУБЗ Интерфейс системы создается следующим образом. Объявляется объект TEXPERT - потомок от стандартного объекта из библиотеки Turbo-Vision TAPPLICATION, в котором уже содержатся такие необходимые компоненты любой программы (приложения), как вывод строк меню и статуса, рабочей поверхности, поддержка мыши и команды "Выход". Потомок перекрывает та- кие методы TAPPLICATION, как INITSTATUSLINE для создания собственной строки статуса, INITMENUBAR - для создания собственной строки "выпада- ющих" меню, RUN - для вывода на рабочую поверхность окна банка знаний и установки новой палитры, INIT - для подключения к системе ресурсов (то есть инициализации файлов EXPERT.AIR и EXPERT.BLC) и регистрации объектов в этих ресурсах, HANDLEEVENT - для обработки нестандартных команд. Главное (верхнее) меню системы имеет следующую структуру (см.рис. 1). СИСТЕМА БАЗА ┌─────────────┐ ┌──────────────┐ │ ПАУЗА │ │ ОТКРЫТЬ │ │ MS-DOS │ │ НОВАЯ │ │ О ПРОГРАММЕ │ │ ПЕРЕИМЕНОВАТЬ│ │ ВЫХОД │ │ РЕДАКТИРОВАТЬ│ └─────────────┘ │ УДАЛИТЬ │ └──────────────┘ ОКНА СЕРВИС ┌────────────┐ ┌─────────────┐ │ РАСПАХНУТЬ │ │ ПАРОЛЬ │ │ ДВИЖЕНИЕ │ │ КАЛЕНДАРЬ │ │ ЗАКРЫТЬ │ │ КАЛЬКУЛЯТОР │ │ СЛЕДУЮЩЕЕ │ │ ИГРА │ │ ПРЕДЫДУЩЕЕ │ └─────────────┘ └────────────┘ Рисунок 1. Структура меню "Консультанта" Меню СИСТЕМА содержит наиболее общие опции работы в системе, БАЗА - операции управления базами знаний, ОКНА - операции над окнами, нахо- дящимися на рабочей поверхности, СЕРВИС - некоторые инструментальные средства, упрощающие работу пользователя в системе. Каждая операция меню программно связана с командой, которая затем обрабатывается в ме- тоде HANDLEEVENT. Так, например, операция НОВАЯ связана с командой CMNEW. Процедура - обработчик событий HANDLEEVENT содержит строку: ... CMNEW:NEWBASE ... , которая означает, что при поступлении этой команды (событие - вы- бор операции подсвеченной полосой или двойной щелчок "мышью") обработ- чик запускает процедуру с именем NEWBASE, которая вызывает из файла ресурсов окно создания базы (объект TNEWWINDOW), считывает из строки ввода введенное имя базы, записывает его в файл EXPERT.BLC, создает на диске новый файл с расширением "PRO", связывает его имя с именем базы и затем уничтожает окно TNEWWINDOW на экране. Ниже приводится список всех операций, и, минуя команды, процеду- ры, с которыми связаны эти операции через обработчик событий: - ПАУЗА, процедура PAUSE (осуществляет гашение экрана на время от- лучения пользователя); - MS-DOS, процедура DOSCALL (осуществляет временный выход в DOS и возврат в систему по команде EXIT); - О ПРОГРАММЕ, процедура ABOUT (вызывает из файла ресурсов окно с краткими сведениями о данной программе); - ВЫХОД, стандартная команда Turbo-Vision; - ОТКРЫТЬ, процедура OPENBASE (ищет на диске файл, связанный с именем выбранной для открытия (работы) базы, извлекает из файла базу знаний и вызывает основную процедуру машины вывода OUTPUTMACHINE из файла EXPERT.OVR); - НОВАЯ, см. выше; - ПЕРЕИМЕНОВАТЬ, процедура RENAMEBASE (удаляет имя активной базы из списка баз файла EXPERT.BLC, извлекает из файла ресурсов окно пере- именования, считывает из строки ввода окна новое имя, записывает его в EXPERT.BLC и связывает это имя с базой); - РЕДАКТИРОВАТЬ, процедура EDITING (для активной базы считывает из из файла ресурсов диалоговое окно установок редактора, запрещает все команды пользователя до получения установок из данного окна или команды на его отмену); - УДАЛИТЬ, процедура ERASEBASE (после второго подверждения пользо- вателя о его окончательном решении удаляет имя активной базы из спис- ка имен баз файла EXPERT.BLC, затем уничтожает связанный с этим име- нем файл БЗ на диске); - операции меню ОКНА, стандартные процедуры работы с окнами библи- отеки Turbo-Vision; - ПАРОЛЬ, процедура PAROLE (устанавливает на выбранную базу па- роль для защиты ее от других пользователей; - КАЛЕНДАРЬ, процедура EXPCALEND (вызывает из файла ресурсов окно календаря); - КАЛЬКУЛЯТОР, процедура EXPCALC (извлекает из файла ресурсов ок- но калькулятора); - ИГРА, процедура EXPGAME (выводит окно игры-головоломки на эк- ран, предварительно считав его из файла ресурсов системы EXPERT.AIR). Все данные процедуры инкапсулированы в объект TEXPERT, то есть объявлены как его методы. В строке статуса содержатся наиболее часто используемые команды (операции) и их "горячие" клавиши. Описание этих команд приводится вы- ше, исключение составляет команда МЕНЮ, активизирующая строку верхне- го меню - это стандартная команда Turbo-Vision. Рабочая поверхность представляет собой окно со списком имен БЗ, в котором одна в данный момент времени активна. На экран окно выводится процедурой DRAWBANKLIST, которая вызывается непосредственно из проце- дуры TEXPERT.RUN и, в свою очередь, вызывает из файла ресурсов окно банка знаний, вставляет в него список имен БЗ из файла EXPERT.BLC. Таблица 5. Новые или перекрытые методы объекта TEXPERT ┌─────────────────────────┬──────────────────────────────────────────┐ │ Метод │ Назначение метода │ ├─────────────────────────┼──────────────────────────────────────────┤ │INIT │Вывод оболочки системы на экран, иницииро-│ │ │вание файлов EXPERT.AIR и EXPERT.BLC, ре- │ │ │гистрирование объектов этих файлов,наст- │ │ │ройка оверлейного файла,установка палитры.│ │ │ │ │INITSTATUSLINE │Вывод на экран новой строки статуса. │ │ │ │ │INITMENUBAR │Вывод на экран новой строки верхнего меню.│ │ │ │ │HANDLEEVENT │Обработка нестандартных команд (событий). │ │ │ │ │RUN │Извлечение из файла EXPERT.BLC списка │ │ │имен баз знаний, запуск программы на ис- │ │ │полнение. │ │ │ │ │DRAWBANKLIST │Вывод на экран окна банка знаний. │ │ │ │ │IDLE │Обновление индикатора кучи. │ │ │ │ │PAUSE │Гашение экрана. │ │ │ │ │CALLDOS │Временный выход в MS-DOS. │ │ │ │ │CALLWIN │Временный выход в Windows 3.х. │ │ │ │ │CALLNC │Временный выход в Norton Commander. │ │ │ │ │ABOUT │Информация о программе. │ │ │ │ │OPENBASE │Открытие выбранной базы знаний для кон- │ │ │сультации. │ │ │ │ │NEWBASE │Создание новой базы. │ │ │ │ │RENAMEBASE │Переименование базы. │ │ │ │ │EDITING │Редактирование базы. │ │ │ │ │ERASEBASE │Удаление базы. │ │ │ │ │PAROLE │Установка пароля на выбранную базу. │ │ │ │ │EXPCALEND │Вывод календаря. │ │ │ │ │EXPCALC │Вывод калькулятора. │ │ │ │ │EXPGAME │Вывод игры. │ │ │ │ │DONE │Удаление программы из оперативной памяти, │ │ │выход в MS-DOS. │ └─────────────────────────┴──────────────────────────────────────────┘ 3.3.2. Реализация редактора знаний Как уже упоминалось, при выборе в меню БАЗА операции РЕДАКТИРО- ВАТЬ запускается управляющая процедура EDITING. Данная процедура, как и прочие, инкапсулированая в объект TEXPERT, по имени активной (выб- ранной) базы находит связанный с ней файл, извлекает из него объекты DATABASE и RULEBASE, затем из файла ресурсов вызывает и выводит на эк- ран диалоговое окно установок редактора. Это окно имеет: - статический текст, показывающий, какая база будет редактировать- ся; - группы переключаемых опций (в терминах Turbo-Vision - кластеры) двух видов (в библиотеке Turbo-Vision это объекты TRADIOBUTTONS и TCHECKBOXES); - командные кнопки. Группы опций выполняют следующие установки: - группа ВИД БАЗЫ позволяет установить конфигурацию БЗ и порядок вывода из нее информации; - группа ИНТЕРФЕЙС конфигурирует факты и правила таким образом, чтобы машина вывода могла их вывести в том или ином виде; - группа ВИД РЕДАКТОРА устанавливает один из двух приведенных ти- пов редакторов знаний; - группа РЕСУРСЫ позволяет сделать установки типа объектов, кото- рые будут обрабатываться БЗ. Это могут быть либо строки либо текст; - группа СОСТАВЛЯЮЩИЕ вызывает любой из редакторов, входящих в состав редактора БЗ и представляющих собой редакторы отдельных элемен- тов БЗ (объектов, вопросов об объектах, возможных значений объектов, правил); - группа РЕКВИЗИТЫ БАЗЫ позволяет включить в состав проектируемой база знаний дополнительные компоненты. Ниже групп в окне раполагаются четыре командные кнопки: 1. Кнопка ПУСК вызывает из оверлейного файла EXPERT.OVR процедуру SELECTOR (см. ниже). 2. Кнопка СБРОС приводит переключаемые опции в группах в первона- чальное положение. 3. Кнопка ОТМЕНА позволяет удалить окно с рабочей поверхности и выйти из режима редактирования. 4. Кнопка ПОМОЩЬ выдает контекстную справку о том, как пользовать- ся окном. Как уже упоминалось выше, по команде ПУСК вызывается процедура SELECTOR. Эта процедура обрабатывает полученную из диалогового окна установок редактора информацию и позволяет вызвать ту или иную проце- дуру в зависимости от этой информации.Например, при начальных установ- ках по умолчанию вызывается редактор объектов и вопросов ATRIBUTEDITOR (слово OBJECT внутри ЭС "Консультант" заменено на ATRIBUT, поскольку OBJECT - зарезервированное слово языка Турбо-Пас- каль 6.0). Рассмотрим на уровне процедур процесс создания новой базы. В окне установок редактора выберем установки по умолчанию. Первым после нажа- тия кнопки ПУСК (или клавиши <ENTER> на клавиатуре) на экран посредст- вом процедуры ATRIBUTEDITING (именно эту процедуру запустит SELECTOR по умолчанию) выведется окно редактора объектов, вызванное из файла EXPERT.AIR. Редактор объектов представляет собой диалоговое окно с двумя строками ввода и восьмью управляющими командными кнопками. Каж- дая кнопка связана с определенной процедурой посредством обработчика событий окна 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 извлекается из файла ресурсов системы, вопрос об |
|
|||||||||||||||||||||||||||||
![]() |
|
Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |