Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Структура разработанной экспертной системы3.3.1 Проект «Expert» Проект «Expert» служит для создания базы знаний и для редактирования уже существующей. Модуль «Unit1» проекта служит показательной формой при загрузке экспертной системы в режиме приобретения знаний. В этом режиме эксперт, используя компонент приобретения знаний, наполняет систему знаниями, которые позволяют ЭС в режиме решения самостоятельно (без эксперта) решать задачи из проблемной области. Эксперт описывает проблемную область в виде совокупности данных и правил. В этом модуле эксперт непосредственно создает саму базу знаний, формирует правила. При этом имеется возможность редактирования правил, удаления правил, сохранения базы знаний, загрузки ранее сохраненной базы знаний. Модуль «Unit1» и модуль «Unit 2» необходимы для введения экспертом вопросов к переменным условия и рекомендаций к переменным вывода соответственно. Модуль «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; // очередь переменных вывода
|