- •Министерство образования и науки Российской Федерации
- •3. Ход работы
- •3.2 Совершенствуем экспертную систему
- •3.3 Блок объяснений
- •Задание
- •Лабораторная работа №2 Разработка экспертной системы средствами Visual Prolog.
- •2. Краткие теоретические сведения
- •2.1 Разработка экпертных систем
- •Структура экспертных систем
- •Экспертная система на правилах
- •Листинг
- •/* Систесма пользовательского интерфейса */
- •/* Механизм вывода */
- •/* Продукционные правила */
- •/* Конец программы */ Экспертные системы, базирующиеся на фактах
- •Листинг
- •Выбор типа эс
- •Контрольные вопросы
- •Требования к отчету
- •Библиографический список
3. Ход работы
3.1. Создаем свою экспертную систему (простейший вариант)
Прежде всего, надо создать те таблицы, которые описаны в тексте § 2. Создали? Если да, то идем дальше. Создаем запрос «Варианты», который позволяет выбрать те дуги, по которым пользователь может двигаться из текущего состояния.
Рис. 2 Запрос «Варианты»
Теперь нужно предложить пользователю выбрать одну из этих дуг и пометить конец выбранной дуги в таблице «Текущее». Все это мы реализуем с помощью формы с полем со списком. Эта форма будет иметь единственное поле, в котором и будет выпадать список дуг, доступных в данном состоянии. Эту форму назовем «Варианты».
Рис. 3 Форма «Варианты»
Чтобы построить указанную форму, нажимаем на копку «Конструктор форм». Чтобы указать источник записей данной формы, заходим в свойства формы и в пункте «Источник записей» выбираем «Текущее».
Рис. 4 Начинаем создавать форму
После задания данного параметра, на панели инструментов находим инструмент «Поле со списком»:
Рис. 5 Конструктор форм, панель элементов
и инструмент «Поле со списком»
Расширим область данных, потянув ее мышью за границы. Выберем инструмент «Поле со списком» и нарисуем им поле. После этого система предлагает диалог, от которого мы откажемся, нажав кнопку «Отмена».
Рис. 6 Создание поля со списком
Щелчком мыши внутри поля выделим его. Нарисовав поле со списком, вызываем его свойства.
Рис. 7 Вызов свойств поля со списком
С помощью команды «Свойства» меню «Вид» присвоим свойствам следующие значения: Данные — Состояние, Источник строк — Варианты, Число столбцов — 2, Ширина столбцов — 1,9 см.
Рис. 8 Свойства поля со списком (фрагменты)
Вид данных нужно выбрать из списка (P.S. «Состояние» должно быть в списке, если правильно указан источник данных при создании формы).
Теперь нужно заготовить макрос, который будет эту форму открывать и закрывать. Он должен выполняться при выборе значения в поле подстановок (иначе это значение не будет заноситься в таблицу «Текущее»). Выглядит он так:
Рис. 9 Макрос 1 открывает и закрывает форму ВАРИАНТЫ
При создании макросов необходимо указывать имя формы и режим в соответствии с примечаниями.
Построенный макрос нужно привязать к обновлению поля со списком формы «Варианты». Для этого нужно снопа выделить в режиме конструктора поле со списком, открыть его свойства и приписать событию «После обновления» значение «Макрос1».
Рис. 10 Подготовка режима «Обновление поля»
Теперь после обновления поля будет выполняться Макрос1.
Все, простейший вариант экспертной системы готов. Можно перейти в режим формы и поэкспериментировать с ним. P.S. В таблицу «Текущее» необходимо занести номер вершины дерева, с которого начинается работа ЭС (отдельная строка).
3.2 Совершенствуем экспертную систему
В простейшем варианте молчаливо предполагалось, что поиск происходит «с нуля», когда пользователь ничего не знает о классификации объекта.
Создадим форму «Начало» с источником записей «Текущее». В ней расположим поле со списком «Состояние» с такими свойствами:
Рис. 11 Форма «Начало» содержит поле со списком «Состояние»
Создадим Макрос 2, который закрывает форму «Начало» и открывает форму «Варианты».
Рис. 12 Создание макроса Макрос2
Добавим в свойства поля формы «Начало» запуск Макроса 2 после обновления.
Рис. 13 Макрос 2 будет выполняться после выбора начального состояния
Итак, работа нашей экспертной системы начинается с открытия формы «Начало». После того как пользователь укажет, что ему известно о классификации исследуемого объекта, запускается форма «Варианты». Но и это еще не все.