Московский государственный институт электроники и математики

Кафедра электронно-вычислительной аппаратуры

Отчет по дисциплине «Базы данных»

лабораторная работа №5

"Создание экспертной систем с помощью программы

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;