3.2 Алгоритм работы экспертной системы
3.2.1 Алгоритм формирования базы знаний
В данном курсовом проекте для формирования базы был применен алгоритм с прямой цепочкой рассуждений
Пусть iое правило имеет следующую структуру
Если Фi1 = ЗФi1
и Фi2 = ЗФi2
и Фi3 = ЗФi3
то Вi = ЗВ i.
Здесь i – номер правила, Фi1,2,3 - это факты iго правила, ЗФi1,2,3 – значение факта Фij,
Вi - название вывода iго правила, ЗВi – содержание или значение вывода Вi..
В данном курсовом проекте число условий в одном правиле не ограничено. Пусть есть N правил подобной структуры. Число правил задает эксперт при создании базы знаний.
Чтобы в алгоритме вывода можно было оперировать фактами, значениями фактов, учитывать их связь в определенном правиле и делать выводы, соответствующие данному набору фактов, база данных экспертной системы представляется в виде определенных структур: массив переменных условия (МПУ), массив переменных вывода (МПВ), списки переменных условия (СПУ) и вывода (СПВ), очередь переменных вывода (ОПВ).
Вначале формируем массив переменных условия МПУ и массив переменных вывода МПВ путем переписывания туда содержимого из соответствующих полей формы. Далее, после ввода всех правил строим СПВ и СПУ.
В таблицах 2.1, 2.2 приведена структура МПУ, МПВ, СПУ, СПВ.
Таблица 2.1 – Структура массивов условий и выводов
МПУ(n*3, 3) | МПВ(n,3) |
Ф11 ЗФ11 1 Ф12 ЗФ12 2 Ф13 ЗФ13 3 Ф21 ЗФ21 3 ???????? ???????? Ф31 ЗФ31 0 Ф32 ЗФ32 4 Ф33 ЗФ33 1 …………….. Фn1 ЗФn1 * Фn2 ЗФn2 * Фn3 ЗФn3 * | В1 ЗВ1 1 В2 ЗВ2 2 В3 ЗВ3 1 ………. Вn ЗВn * |
Таблица 2.1 – Структура списков условий и выводов
СПУ(ку) | СПВ(кв) |
Ф11 Ф12 Ф13 Ф32 …………….. Фn1 Фn2 Фn3 | В1 В2 ………. Вn |
Вначале на основе анализа МПВ формируем список переменных вывода СПВ. Анализ заключается в следующем алгоритме:
1. Первую переменную вывода В1 помещаем без обработки как СПВ (1) и устанавливаем текущее количество выводов кв=1 и в третий столбец МПВ записываем: МПВ(1,3)=1, т.е. по содержимому этого столбца обеспечиваем связь МПВ и СПВ.
2. От i =2 до N: (для всех МПВ( i, 1) проверяем была ли эта переменная уже записана в состав СПВ):
От р=1 до кв: если МПВ(i, 1) = СПВ (р), то МПВ( i, 3) =р; иначе кв=кв+1; СПВ(кв)= МПВ( i, 1); МПВ(i, 3)=кв.
Далее аналогично анализируем МПУ для формирования списка переменных условия СПУ.
1. ку=1; СПУ(1)=МПУ(1);
2. От i =1 до N*М: (для всех МПУ( i, 1):
От р=1 до кв: если МПУ(i, 1) = СПВ (р), то МПУ(i, 3)=0; i= i + 1 и перейти к п.2. (т.е. проверяем была ли эта переменная уже записана в состав СПВ как переменная вывода и в этом случае в третий столбец МПУ записываем 0 и эту переменную в перечень переменных условия не включаем).
От у=1 до ку: если МПУ(i, 1) = СПУ (у), то МПУ(i, 3) =у; иначе ку=ку+1; СПУ(ку)= МПУ( i, 1); МПУ(у, 3)=ку.
Теперь формируем ТПУ (таблица переменных условия) и ТПВ (таблица переменных вывода). Структура таблиц приведена в таблицах 2.3, 2.4.
Для i=1,ку
ТПУ.условие (i)=СПУ(i), j=1
для кк=1, n*3
если МПУ(1,3)=i, то ТПУ.значение (i, j )=МПУ(кк,2); j= j +1.
Для определения ТПУ.вопрос формируем форму и в ней запрашиваем у эксперта о том, какой вопрос следует задавать пользователю для выяснения переменной условия ТПУ.условие(i).
Таблица 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 | *********** |
... И ТЕСТИРОВАНИЕ ПРОГРАММНОГО СРЕДСТВА 19 РУКОВОДСТВО ПО ЭУСПЛУАТАЦИИ ПРОГРАММНОГО СРЕДСТВА 20 8.1. РУКОВОДСТВО СИСТЕМНОГО ПРОГРАММИСТА 20 ЗАКЛЮЧЕНИЕ 22 ЛИТЕРАТУРА 23 ВВЕДЕНИЕ Тема проекта – «Разработка подсистемы вывода в диагностической экспертной системе». Данная дипломная работа была выполнена на кафедре систем информатики в лаборатории искусственного интеллекта, Института Систем Информатики ...
... правила и укажет соответствие между ответами пользователя, правилами и ответом экспертной системы. 8. Правила типа "если-то" для представления знаний. В качестве кандидата на использование в экспертной системе можно рассматривать, в принципе, любой непротиворечивый формализм, в рамках которого можно описывать знания о некоторой проблемной области. Однако самым популярным формальным языком ...
... в экспертной системе с необходимостью должны быть сложными либо в смысле сложности каждого правила, либо в смысле их обилия. Экспертные системы, как правило, работают с предметными областями реального мира, а не с тем, что специалисты в области искусственного интеллекта называют игрушечными предметными областями. В предметной области реального мира тот, кто решает задачу, применяет фактическую ...
... и реализации прототипа и выработка рекомендаций по доводке системы до промышленного варианта. Средняя продолжительность 1 - 2 недели. Глава 3. Анализ теории экспертных систем и выводы 3.1.Выбор подходящей проблемы для разработки экспертной системы. Этот этап включает деятельность, предшествующую решению начать разрабатывать конкретную ЭС. Он включает: - определение проблемной области и ...
0 комментариев