Смекни!
smekni.com

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

3.1.2. Физическая (файловая) структура системы "Консультант"

Файловую структуру системы можно условно разделить на следующие

части:

- собственно ЭС (файлы, входящие в комплект поставки);

- вспомогательные программы (не входящие в комплект ЭС);

- исходные файлы программ (тексты программ на языке Паскаль);

- файлы пользователя (возникающие в ходе работы).

В состав ЭС входят следующие файлы:

1) START.BAT - запускающий файл системы. Вначале вызывает файл

SERVE.EXE, производящий начальные установки системы, затем запускает

EXPERT.EXE;

2) SERVE.EXE - производит установку запускающих ключей в файл

SERVE.KEY;

3) SERVE.KEY - установочный файл системы;

4) EXPERT.EXE - главный файл системы "Консультант". Содержит про-

цедуры вызова видимых компонентов системы из файла ресурсов EXPERT.

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

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

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

EXPERT.OVR;

5) EXPERT.AIR - файл ресурсов системы. Содержит все видимые компо-

ненты системы в собственном внутреннем представлении. Компоненты рас-

паковываются и извлекаются из файла по командам основной программы

(файла EXPERT.EXE);

6) EXPERT.OVR - оверлейный файл системы. Содержит библиотеки

объектов, команд, регистрационных записей объектов, процедур и функ-

ций, переменных и констант в упакованном виде. Служит для экономии

оперативной памяти;

7) EXPERT.BLC - содержит список имен баз знаний (банк знаний).

Вспомогательные файлы выполняют свои функции в процессе создания

ЭС. После они обычно уничтожаются. При создании "Консультанта" были

созданы следующие вспомогательные файлы:

1) MAIN.TPU - библиотечный модуль. Содержит основные компоненты

системы; при компиляции упаковывается в expert.ovr вместе с другими

стандартными (такими, как SYSTEM.TPU, APP.TPU, COLORSEL.TPU, OBJECTS.

TPU и другими) и демонстрационными (например, CALENDAR.TPU, CALC.TPU,

GAUGES.TPU и другими) модулями;

2) M_VISUAL.EXE - файл, создающий видимые объекты системы (окна,

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

указатели в файл EXPERT.AIR;

3) M_LIST.EXE - создает пустой список имен БЗ и помещает его в

файл EXPERT.BLC.

Следующие файлы - тексты программ и модулей на языке Паскаль:

1) EXPERT.PAS - текст основной управляющей программы системы. При

компиляции из него образуется два файла: EXPERT.EXE и EXPERT.OVR;

2) SERVE.PAS - текст установочной программы. Компилируется в файл

SERVE.EXE;

3) MAIN.PAS - текст модуля, описывающего созданные для нужд систе-

мы библиотеки. Компилируется в файл MAIN.TPU;

4) M_VISUAL.PAS - текст программы создания ресурсов. При компиля-

ции образует файл M_VISUAL.EXE;

5) M_LIST.PAS - текст программы, создающей файл EXPERT.BLC и поме-

щающей в нее список банка знаний. При компиляции создает файл M_

LIST.EXE.

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

два вида файлов:

1) *.PRO - файлы, содержащие базы знаний в виде ресурсов. Первый

ресурс в файле - база фактов (данных), записывается под ключом 'Дан-

ные '+ <имя базы>. Второй ресурс - база правил, записывается в тот же

файл под ключом 'Правила '+ <имя базы>. Имена файлов присваиваются

системой автоматически по принципу 'base'+ <номер базы в банке> +'.

pro' и привязываются к реальным именам БЗ в списке баз файла expert.

blc;

2) *.REP - файлы, содержащие протоколы проведения консультаций.

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

создать протокол и затем сохранить его на диске, записав его в файл,

которому автоматически присвоит имя <число> + <месяц> + <год> + поряд-

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

3.2. Информация, обрабатываемая в системе

3.2.1. Математическая модель информации в ЭС

База знаний представляет собой два множества: множество фактов {

f} и множество правил {r }, где n - общее количество фактов, m - об-

щее количество правил. Множество {f} можно представить в виде:

{f }={a ,q ,{v }}

где a - объект i-го факта, q - вопрос i-го факта, {v } - множество

значений i-го факта, l - количество значений в i-м факте. Множество

правил формируется таким образом:

так как v ={s,m,c }, где m,c Е{0,1} и для j-го правила имеем

следующую цепь преобразований:

если m =1, то s =l и если c =1, то c =1.

Таким образом, имеем сформированное множество правил.

3.2.2. Программная модель информации в "Консультанте"

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

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

ки Turbo-Vision:

TCOLLECTION───┬───TDATABASE

└───TRULEBASE

В коллекцию базы данных записываются факты, представляющие собой

также объекты-потомки от коллекции Turbo-Vision:

TCOLLECTION────────TFACT

Объект-потомок отличается от родителя наличием двух полей:

ATRIBUT - объект и QUESTION - вопрос. В коллекцию факта записываются

указатели на значения объекта. В объекте TFACT также перекрываются

два метода: конструктор LOAD и процедура STORE, позволяющие теперь

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

В свою очередь, значение - это потомок от базового объекта всей

иерархии стандартных объектов Turbo-Vision:

TOBJECT───────TVALUE

Этот потомок отличается от своего родителя тремя новыми полями:

SLOT - собственно значение (в виде строки), MARK - служебное поле,

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

данное значение является заключением.

Такова структура базы фактов. В базу правил же записываются прави-

ла, каждое из которых представляет собой коллекцию, в свою очередь

каждый элемент которой - элемент правила. Элемент правила порожден от

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 из