Модуль «Unit4» предназначен для вывода справки об авторе.
В программе используются процедуры и функции, которые написаны для удобства работы и понимания программы.
procedure dobav_uslClick(Sender: TObject) - Добавление условия в правило;
procedure FormCreate(Sender: TObject) – Начальные установки при открытии формы;
procedure udal_uslClick(Sender: TObject) - Удаление условия в правиле;
procedure newClick(Sender: TObject) - Формирование новой базы зныний;
procedure Button4Click(Sender: TObject) - Добавление нового правила;
procedure Button3Click(Sender: TObject) - Перемещение по правилам назад;
procedure Button2Click(Sender: TObject) - Перемещение по правилам вперед;
procedure Button6Click(Sender: TObject) - Удаление правила;
procedure SpiskiShow(Sender: TObject) - Просмотр списков переменных условия и вывода;
procedure tpv1Show(Sender: TObject) - Просмотр таблицы переменных условия;
procedure tpu1Show(Sender: TObject) - Просмотр таблицы переменных вывода;
procedure pravShow(Sender: TObject) - Переход к просмотру правил;
procedure pvEnter(Sender: TObject) - Редактирование переменных вывода;
procedure zn_pvEnter(Sender: TObject) - Редактирование значений переменных вывода;
procedure saveClick(Sender: TObject) - Сохранение базы знаний;
procedure SaveToFile(Name:string) - Сохранения базы знаний в файл;
procedure exit1Click(Sender: TObject) - Выход из программы;
procedure openClick(Sender: TObject) - Открытие базы знаний;
procedure sg1GetEditText(Sender: TObject; ACol, ARow: Integer;
var Value: String) - Проверка на наличие изменений в правиле;
procedure sg1SetEditText(Sender: TObject; ACol, ARow: Integer;
const Value: String) - Проверка на наличие изменений в правиле;
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean) - Закрытие формы;
procedure N13Click(Sender: TObject) - Вывод информации об авторе;
procedure N14Click(Sender: TObject) - Вывод справки;
procedure sg1KeyPress(Sender: TObject; var Key: Char) - Проверка на наличие изменений в правиле.
Ниже приведены глобальные переменные, используемые в программе.
strok: string; // строка для отслеживания введенных изменений
path:string; // строка для имени файла базы знаний
tF: TextFile; // текстовый файл для загрузки базы знаний
tek_pr:integer;//Номер текущего правила
Kol_pr:integer;//Кол-во правил
mp:array of prav;//Массив правил
tpu: array of uslov; // таблица переменных условия
tpv: array of vyvod; // таблица переменных вывода
pr1,pravilo:prav; // текущее правило
dob_pr1,save_pr,izm,otkryt,saved,obn_pr,dob_pr:boolean;
SPU:array of spu1; SPV:array of spu1; // списки переменных условия и вывода
nomer_pu,nomer_pv, nomer_zn_pv:integer; // индексы переменных условия и вывода.
3.3.2 Проект «Klient»
Проект «Klient» служит для работы экспертной системы в режиме консультации. В этом режиме общение с ЭС осуществляет конечный пользователь, которого интересует результат и (или) способ его получения. В этом модуле пользователь отвечает на вопросы, предлагаемые ему экспертной системой. После получения ответов на все вопросы, экспертная система выдает соответствующий результат и рекомендацию.
При этом есть возможность посмотреть, почему был получен данный вывод. В программе используются процедуры и функции, которые написаны для удобства работы и понимания программы.
procedure N2Click(Sender: TObject) - Загрузить существующую базу знаний;
procedure Button1Click(Sender: TObject) - Начало работы системы;
procedure Button2Click(Sender: TObject) - Принятие ответа пользователя;
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject) - Вывод пояснения к выводу системы;
procedure N5Click(Sender: TObject) - Начала опроса сначала;
procedure N3Click(Sender: TObject) - Выход из системы.
Ниже приведены глобальные переменные, используемые в программе.
path:string; // имя файла для открытия базы
tF: TextFile; // текстовый файл для открытия базы
mp:array of prav;//массив правил
tpu: array of uslov; // таблица переменных условий
tpv: array of vyvod; // таблица переменных вывода
SPU:array of spu1; // список переменных условий
SPV:array of spv1; // список переменных вывода
nomer_pu,nomer_pv, nomer_zn_pv:integer; //индексы переменных условия и вывода
n_a_p, // номер анализируемого правила
n_p_u, // номер переменной условия в СПУ
n_u, //номер рассматриваемого условия в анализируемом правиле;
n_p_v, // номер переменной вывода в СПВ
p_u, // индекс первого условия текущего правила
kpu, // число условий в анализируемом правиле;
kpv:integer; // число полученных выводов
z_u:array of string; // массив значений условий из правила
z_p:boolean; // значение проверки текущего условия в правиле z_u_p:array of string; //массив значений условий введенных пользователем;
Opv:array of string; // очередь переменных вывода
3.4 Методическое обеспечение
Данная программа имеет два модуля «Expert» и «Klient», которые используют в работе одну и ту же базу знаний.
Интерфейс модуля «Expert» предназначен для эксперта в определенной области знаний. С помощью данного модуля эксперт может создавать базы знаний, вносить изменения, добавлять правила.
Интерфейс модуля «Klient» предназначен для конечного пользователя. Пользователь отвечает на вопросы, предлагаемые ему экспертной системой. После получения ответов на все вопросы, экспертная система выдает соответствующий результат и рекомендацию, т.е. экспертная система будет работать в режиме консультации.
3.4.1 Руководство для эксперта
Для запуска программы необходимо открыть исполняемый файл «Expert.exe». При этом появится окно для создания новой базы знаний (Рисунок 3.1).
Рисунок 3.1 – Окно для создания новой базы знаний
Если необходимо отредактировать уже существующую базу знаний необходимо выбрать команду меню «Файл - Открыть базу» и выбрать в окне выбора файла (рисунок 3.2) нужную базу - файл с расширением *.bzn. При открытии существующей базы можно приступать к редактированию правил (рисунок 3.3).
Рисунок 3.2 – Открытие существующей базы знаний
Рисунок 3.3 – Окно для ввода и редактирования правил
Чтобы добавить новое правило необходимо нажать кнопку «Добавить правило» или выбрать команду меню «Правка - Добавить правило». Для удаления правила можно нажать кнопку «Удалить правило» или выбрать команду меню «Правка - Удалить правило».
Для добавления переменных условия в правило необходимо нажать кнопку «Добавить условие» или выбрать команду меню «Правка - Добавить условие». Для удаления переменной условия можно нажать кнопку «Удалить условие» или выбрать команду меню «Правка - Удалить условие».
Если какие-то переменные условия не сохранены, эксперту сразу будет предложено ввести вопрос для данной переменной условия (рисунок 3.4).
Рисунок 3.4 – Окно для ввода вопроса к переменной условия
Если переменной вывода нет в ТПВ, то эксперту будет предложено ввести рекомендацию для определенного значения переменной вывода (рисунок 3.5).
Рисунок 3.5 – Окно для ввода рекомендации к переменной вывода
Окно данной программы представлено из нескольких вкладок: «Правила», «ТПУ», «ТПВ», «Списки» (рисунок 3.1).
Первая вкладка предназначена непосредственно для ввода и редактирования правил.
Вкладка «ТПУ» предназначена для просмотра таблицы переменных условия (рисунок 3.6). Если к какой-то переменной условия еще не было введено вопроса, то в таблице переменных условия эта переменная не отмечается «галочкой». Чтобы ввести вопрос, необходимо ввести его в поле «Вопрос к ПУ».
Рисунок 3.6 – Вкладка «ТПУ»
Вкладка «ТПВ» предназначена для просмотра таблицы переменных вывода (рисунок 3.7). Если к какой-то переменной вывода еще не введена рекомендация, то необходимо ввести ее в поле «Рекомендация».
Рисунок 3.7 – Вкладка «ТПВ»
Вкладка «Списки» предназначена для просмотра списков переменных условия и вывода (рисунок 3.8).
Рисунок 3.8 – Вкладка «Списки»
Если эксперт создаст правило, которое уже было, то будет выведено соответствующее сообщение об ошибке. Также сообщения об ошибке выводятся при недозаполнении правил.
Чтобы сохранить базу необходимо выбрать команду меню «Файл - сохранить» или «Сохранить как…». Для создания ново базы необходимо выбрать команду меню «Файл - Новая база».
В меню также имеется вкладка «Справка», где можно посмотреть информацию об авторе (рисунок 3.9) и руководство эксперта (рисунок 3.10).
Рисунок 3.9 – Информация об авторе
Рисунок 3.10 – Руководство эксперта
3.4.2 Руководство пользователя
Для запуска программы необходимо открыть исполняемый файл «Klient.exe». При этом появится окно, приведенное на рисунке 3.11. Для начала работы экспертной системы в режиме консультации необходимо загрузить необходимую вам базу знаний. Для этого нужно выбрать команду меню «Файл - Загрузить базу».
Рисунок 3.11 – Окно программы «Клиент»
Для начала работы необходимо нажать кнопку «Начать работу» (рисунок 3.12).
Рисунок 3.12 – Начало работы экспертной системы