на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Разработка оболочки экспертной системы
p align="left"> Таблица 2.3 - Структура таблицы переменных условия

ТПУ.условие

ТПУ.значение

ТПУ.вопрос

Ф11

ЗФ11

***********

ЗФ33

Ф12

ЗФ12

***********

Ф13

ЗФ13

***********

ЗФ21

Ф32

ЗФ32

***********

……………..

***********

Фn1

ЗФn1

***********

Фn2

ЗФn2

***********

Фn3

ЗФn3

***********

Аналогично формируем ТПВ. В поле ТПВ рекомендация помещаем для каждого значения вывода соответствующую текстовую интерпретацию, для чего запрашиваем ее у эксперта. В качестве значений вывода можно использовать ссылки на любые объекты, поясняющие текущий вывод.

Последним действием формирования БЗ будет процедура сохранения МПУ, МПВ, СПУ, СПВ, ТПУ и ТПВ в виде файла. В данном проекте база знаний сохраняется в один файл с расширением *.bzn.

Таблица 2.4 - Структура таблицы переменных вывода

ТПВ.вывод

ТПВ.значение

ТПВ.рекомендация

В1

ЗВ 1

***********

ЗВ 3

***********

В2

ЗВ 2

***********

3.2.2 Алгоритм вывода

Работа процедуры вывода начинается с загрузки содержимого файлов МПУ, МПВ, СПУ, СПВ, ТПУ и ТПВ в переменные соответствующего типа. Для СПВ и СПУ добавляем второй столбец, куда будет запоминаться получаемые в процессе вывода переменные вывода и условия. Для СПВ добавляем еще один, третий столбец, куда будет записываться номер по порядку полученных выводов. Кроме этого вводим следующие дополнительные переменные:

нап - номер анализируемого правила;

нпу - номер переменной условия в СПУ

ну - номер рассматриваемого условия в анализируемом правиле;

пу - индекс первого условия текущего правила;

кпу - число условий в анализируемом правиле;

кпв - число полученных выводов;

ЗУ(м) - массив значений условий из правила ;

ЗУТ - значение проверки текущего условия в правиле;

ЗУП(м) - массив значений условий введенных пользователем;

ОПВ() - очередь переменных вывода, где будут запоминаться переменные вывода «сработанных» правил для организации цепочки рассуждения. Вывод заключается в поиске в базе знаний правил, которые зависят от текущей «рабочей» переменной вывода. Если находим совпадение «рабочей» переменной и переменной вывода, то активизируется процедура проверки правила. Если правило сработало, т.е. введенные пользователем ответы и хранящиеся в БЗ значения совпали, полученная переменная вывода запоминается в очереди переменных вывода для того, чтобы стать следующей «рабочей» переменной вывода. После того, как поиск правил с текущей «рабочей» переменной вывода завершается, она удаляется из очереди. Вывод завершается после того, как очередь переменных вывода опустеет.

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

1. В ОПВ() помещается начальная переменная вывода и количество переменных вывода в очереди устанавливаем как кпв=1.

2. Пока не пуста ОПВ() выполняем п. 3,4.

3. От п=1 до M*N /организуем просмотр всех правил на совпадение с «рабочей» переменной вывода/

{если МПУ(п,1) = ОПВ(1) то нап=округление до большего целого (п/м); ну=1;пу= (нап-1)*м; /определяем номер правила, в котором присутствует«рабочая» переменная вывода/

кпу=0

от у=1 до м /проверяем текущее правило/

пока МПУ(пу+у,1)<> «»; ЗУ(у)= МПУ(пу+у,2); кпу=кпу+1;

нпу=МПУ(пу+у,3) /считываем номер текущей переменной условия из СПУ /

если СПУ (нпу,2) = «», то вывести пользователю вопрос ТПУ.вопрос (нпу) с вариантами ответов из ТПУ.значение(нпу);

записать в СПУ(нпу,2) выбранный пользователем ответ;

ЗУП(у) = СПУ(нпу,2);

Проверяем правило:

ЗП= Истина; от у=1 до кпу; если ЗУ(у) = ЗУП(у), то ЗУТ=Истина; ЗП=ЗП and ЗУТ;

если ЗП=Истина, то СПВ([МПВ(нап,3),2] = МПВ(нап,2); СПВ([МПВ(нап,3),3] = кпв; кпв=кпв+1; ОПВ(кпв)= МПВ(нап,1);}

Если достигнут конец МПУ, удаляем из ОПВ() ОПВ(1) и устанавливаем ОПВ(1) следующую по порядку в очереди переменную.

Выводим на экран последнюю выведенную СПВ. Если пользователь запрашивает объяснения полученного вывода, выводим все сработанные СПУ в обратном порядке.

3.3 Структура разработанной экспертной системы

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; // очередь переменных вывода

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 - Начало работы экспертной системы

Пользователю будет представлен вопрос и несколько вариантов ответа на него. Необходимо выбрать нужный вариант ответа на вопрос и нажать кнопку «Принять» либо выбрать команду меню «Действия - Следующий вопрос». Если необходимо начать опрос заново, необходимо нажать кнопку «Начать работу» либо выбрать команду меню «Действия - Начать заново».

После ответа на все представленные вопросы, экспертная система выдает конечный результат в виде рекомендации (рисунок 3.13).

Рисунок 3.13 - Рекомендация экспертной системы

Если пользователю необходимы разъяснения данного результата, необходимо нажать кнопку «Почему». При этом появятся все сработанные рекомендации и выводы (рисунок 3.14).

Рисунок 3.14 - Пояснение рекомендаций

Заключение

Разработанная в ходе выполнения курсового проекта оболочка для экспертной системы является актуальной на сегодняшний день, так как предоставляет большие возможности в различных предметных областях. Созданная в данной оболочке экспертная система может помочь при принятии решений в сложных ситуа-циях, например при диагностике заболеваний, проектировании микросхем, управлении сложными объектами (энергосистемами, атомными электростанциями и т. п.), идентификации неисправностей в электронных схемах, при решении задач оптимального размещения финансовых средств и т.д.

В ходе данного работы были разработаны два независимых модуля (модуль «Эксперт» и модуль «Клиент»), которые используют одну базу знаний. В интерфейсе программы для эксперта были предусмотрены следующие возможности:

- добавление новых правил;

- удаление правил;

- редактирование существующих правил;

- сохранение базы знаний;

- открытие ранее сохраненных баз знаний;

- просмотр руководства по использованию данной экспертной системы.

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

- открытие существующей базы знаний;

- выбор одного из предложенных ответов на вопрос;

- вывод рекомендаций;

- вывод пояснений к рекомендациям.

Таким образом, разработанная оболочка экспертной системы выполняет все задачи, поставленные в начале работы.

Список используемой литературы

1. А.Я. Архангельский. Программирование в Delphi 7.

2. Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интеллектуальных систем - СПб.: Питер, 2001. - 384 с.: ил.

3. Попов Э.В. Экспертные системы: Решение неформализованных задач в диалоге с ЭВМ. - М.: Наука. Гл. ред. физ.-мат. лит., 1987. - 288 с. - (Пробл. искусственного интеллекта).

4. Элти Дж., Кумбс М. Экспертные системы: концепции и примеры / Пер. с англ. и предисл. Б.И.Шитикова. - М.: Финансы и статистика, 1987. - 191 с.: ил.

5. Хейес-Рот Ф., Уотерман Д., Ленат Д. Построение экспертных систем. Пер. с англ. - М.: Мир, 1987.-447с.

6. Зартенова Л.Г. Методические указания по курсу «Экспертные системы и искусственный интеллект» - КарГТУ, кафедра САПР.

Страницы: 1, 2, 3



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.