Московский государственный институт электроники и математики
Кафедра электронно-вычислительной аппаратуры
Отчет по дисциплине «Базы данных»
"Создание экспертной систем с помощью программы
VP-EXPERT"
Выполнили: студенты группы с-54
Принял: преподаватель
Профессор
Москва 2006
Оглавление
1. Программа VP-EXPERT.. 3
2. Интерфейс VP-EXPERT.. 4
3. Операторы для создания базы знаний и консультационного меню.. 5
Запуск режима консультации: 7
Примеры работы в режиме консультации: 7
4. Пример программы.. 9
1. Программа VP-EXPERT
VP-EXPERT – интеллектуальная программа, способная делать логические выводы на основании знаний в конкретной предметной области и обеспечивающая решение специфических задач. VP-EXPERT и другие экспертные системы призваны заменить специалиста в конкретной предметной области, то есть решать задачи в отсутствии эксперта. VP-EXPERT обладает такими функциями как:
1)Механизм предоставления знания в конкретной области и управление ими;
2)Механизм, который на основании имеющихся в базе знаний, способен делать логические выводы;
3)Интерфейс для правильной передачи ответов пользователю и т. д.
Для решения различных задач, получения выводов необходимо иметь определенные знания (базу знаний) в этой области. Знаниями принято называть хранимую в ЭВМ информацию формулируемую в соответствии с определенным структурным правилами, которую ЭВМ может использовать при решении проблем по таким алгоритмам как логические выводы. В VP-EXPERT реализована модель представления знаний основанная на использовании правил (продукционная модель).
Экспертная система VP-EXPERT состоит из множества несвязанных между собой правил и множества фактов, накапливающихся по мере фунционирования экспертной системы. База знаний состоит из конечного набора правил (П):
П={P1,……..Pm }
A={a1,……….am} – набор факторов
Таких, что условия применимости любого из правил Pi состоит в одновременном наличии фактов ai1……..ain, следовательно любая продукция Pi из П имеет вид:
Pi: a1Ùa2Ù…..Ùais ® am
am- новый факт, выведенный из фактов условий.
Область применения:
Медицинская диагностика, оказание помощи пользователям в различных предметных областях, проверка и анализ П/О, анализ риска в политике и т. д.
2. Интерфейс VP-EXPERT

Help – вызывает системный помощник (help)
Induce – создает рабочую базу знаний из таблицы ввода, содержащейся в тексте, базе данных или в файле рабочего листа
Edit – вызывает редактор (Editor) и загружает текущую базу знаний
Consult – загружает текущую базу знаний в память и воспроизводит на экране консультационное меню (Consult menu)
Tree – воспроизводит на экране меню выбора для просмотра результатов прохождения консультации
Filename – помогает вам заменить текущую активную базу знаний
Path – назначает путь к директории, используемой для доступа к файлам базы знаний
Quit – выход из программы
Для получения более подробных сведений о каждом пункте меню необходимо воспользоваться системным помощником.
Ниже будет приведен пример программы содержащей базу знаний и инструкции консультационного меню.
3. Операторы для создания базы знаний и консультационного меню
EXECUTE - этот оператор начинает режим консультации немедленно после команды Consult.
BKCOLOR = <номер цвета> - настраивает фон экрана на цвет, соответствующий номеру (0-7)
0 – черный 5 – бордовый 10 – салатовый
1 – синий 6- коричневый 11- светлый циан
2 – зеленый 7- белый 12 – светло-красный
3 – циан 8 – серый 13 – розовый
4 – красный 9 – голубой 14 - желтый
15 – ярко – белый
COLOR = <номер цвета> - настраивает цвет текста согласно его номеру (0-15)
ACTIONS - <предложение1>
<предложение2>
и т. д.
Ключевое слово ACTIONS определяет начало блока ACTIONS, который упорядочивает список операции для VP-EXPERT Consultation (режим консультации) в режиме листинга одного или большего числа предложений, которые будут выполняться по порядку, в течении консультации.
Когда все предложения будут выполнены, консультация будет закончена. В добавление к выполнению предложений блок ACTIONS, может присваивать значения переменным.
FIND <переменная> - предложение FIND, выполняясь, направляет механизм вывода на поиск значения указанной переменной. Если предложение FIND встречается многократно в блоке ACTIONS или в правиле, то VP-EXPERT пытается найти значение для каждой из переменных в той последовательности, в которой они появляются. Механизм вывода передвигается к следующему предложению FIND только после нахождения значения для переменной, указанной в предыдущем предложении FIND или после того, как значение переменной не может быть найдено.
DISPLAY “<текст>~” – выводит на экран данный текстовый блок информации для пользователя (до 1000 символов). Текст должен быть внутри двойных кавычек, а если требуется вывести значение переменной, то в тексте пишется имя этой переменной в фигурных скобках {}
Имя переменной внутри фигурных скобок со значком # выводится на экран со своим фактором доверия (смотри ниже)
Display “Твой инструмент - это {#instrum}~”
На экран будет выведено Твой инструмент - это электро-гитара CNF 90.
(при этом необходимо писать все транслитом)
RULE <название правила> - ключевое слово RULE, и следующий за ним пробел и метка правила длиной до 20 символов, идентифицирует начало базы знаний. Правило состоит из имени правила (Ключевое слово RULE плюс пробел плюс метка правила); посылка (ключевое слово IF и следующие за ним одно или нескольких условий разделенные операторами AND или OR); заключение (ключевое слово THEN и следующие за ним одно или более заключений) и точка с запятой, означающая конец правила.
RULE 1
IF <переменная1>=<значение1>
THEN <переменная2>=<значени2>;
Если значение переменной состоит из нескольких слов, то слова должны быть соединены значком (_). Например малый_барабан. Иногда перед точкой с запятой вводится фактор доверия – CNF – это числа используемые для подсчета истинного значения порога доверия. Например, в нижеследующем примере фактор доверия указывает, что заключение получается с 70% доверием.
RULE 6
IF type = duhovye AND
fetish = da
THEN instrum = garmoshka CNF 70;
Если фактор доверия не указан, то ему присваивается значение 100%.
ASK <переменная1>: “<текст>” - когда для выведения умозаключения машина не может найти правила, чтобы присвоить значение переменной, она ищет оператор ASK, в которм упоменается эта переменная. Если он найден, оператор ASK выводит на экран текст находящегося в нем сообщения. Затем машина ожидает ответа пользователя. Значение поступившее от пользователя, прнисваивается данной переменной.
Иногда после оператора ASK следует оператор
CHOICES <переменная1>:<значение1>,<значение2> - этот оператор выводит на экран меню выбора из <значение1> и <значение2>. Если оператора CHOICES не введено, то значение переменной нужно вводить вручную.
Запуск режима консультации: программа пишется в любом редакторе DOS, т. к. VP-EXPERT не воспринимает русскую кодировку Windows. Затем файлу присваивается расширение (kbs). Запускаем VP-EXPERT, выбираем Edit и находим в списке ваш файл. Консультация начинается с нажатия кнопки Consult.
Примеры работы в режиме консультации:


4. Пример программы
runtime;
execute;
bkcolor=1;
actions
color=7
display "Pomosh v podborke myz. instrumentov"
color=10
FIND instrum
FIND nullinstrum
!display "Vash instrument:{instrum}~";
display "Vash instrument:{#instrum},{#nullinstrum}~";
RULE 0
IF zvuk = drin-drin
THEN type = strunnie;
RULE 1
IF zvuk = bym-bym-bym
THEN type = udarnye;
RULE 2
IF zvuk = tyyyyy-tyyyyy
THEN type = duhovye;
RULE 3
IF zvuk = tan-tan
THEN type = klavishnye;
RULE 4
IF type = strunnie AND
fetish = da
THEN instrum = balalaika CNF 75;
RULE 5
IF type = klavishnye AND
fetish = da
THEN instrum = bajan CNF 70;
RULE 6
IF type = duhovye AND
fetish = da
THEN instrum = garmoshka CNF 70;
RULE 7
IF type = udarnye AND
fetish = da
THEN klass = er;
RULE 8
IF type = strunnie AND
fetish = net
THEN klass = a;
RULE 9
IF type = klavishnye AND
fetish = net
THEN klass = b;
RULE 10
IF type = duhovye AND
fetish = net
THEN klass = c;
RULE 11
IF type = udarnye AND
fetish = net
THEN klass = d;
RULE 12
IF klass = a AND
unique = da
THEN instrum = gavayskaja_gitara CNF 60;
RULE 13
IF klass = c AND
unique = da
THEN instrum = gorn CNF 30;
RULE 14
IF klass = b AND
unique = da
THEN instrum = sintezator_podorozhe CNF 90;
RULE 15
IF klass = d AND
unique = da
THEN instrum = buben CNF 50;
RULE 16
IF klass = a AND
unique = net
THEN nutype = gtype;
RULE 17
IF klass = c AND
unique = net
THEN nutype = duhtype;
RULE 18
IF klass = b AND
unique = net
THEN nutype = klavtype;
RULE 19
IF klass = d AND
unique = net
THEN nutype = barabtype;
RULE 20
IF klass = er
THEN instrum = poprobuite_drugoe
nullinstrum = russkih-narodnih_net;
RULE 21
IF nutype = gtype AND
electro = da
THEN instrum = electro-gitara CNF 90;
RULE 22
IF nutype = gtype AND
diap = high
THEN instrum = obichnaja_gitara CNF 70;
RULE 23
IF nutype = gtype AND
diap = low
THEN instrum = bas-gitara CNF 70;
RULE 24
IF nutype = duhtype AND
electro = da
THEN instrum = electro-organ CNF 60;
RULE 25
IF nutype = duhtype AND
diap = high
THEN instrum = saxofon CNF 60;
RULE 26
IF nutype = duhtype AND
diap = low
THEN instrum = tryba CNF 70;
RULE 27
IF nutype = klavtype AND
electro = da
THEN instrum = sintezator CNF 80;
RULE 28
IF nutype = klavtype AND
electro = net
THEN instrum = fortepiano CNF 60;
RULE 29
IF nutype = barabtype AND
electro = da
THEN instrum = ne_naideno
nullinstrum = tolko_sintezator;
RULE 30
IF nutype = barabtype AND
diap = high
THEN instrum = malyi_baraban CNF 70;
RULE 31
IF nutype = barabtype AND
diap = low
THEN instrum = bolshoi_baraban CNF 70;
ask zvuk:"kakoi tip zvuka vam bolshe nravitsja?";
choices zvuk:drin-drin, bym-bym-bym, tyyyyy-tyyyyy, tan-tan;
ask fetish:"vi hotite russkyi narodnyi instrument?";
choices fetish:da, net;
ask unique:"vash instrument dolzhen byt neobychnim?";
choices unique:da, net;
ask electro:"etot instrument dolzhen byt electricheskim?";
choices electro:da, net;
ask diap:"kakoi vysoti dolzhen byt zvyk?";
choices diap:high, low;





