Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MGGU_tehnologiya_programmirovaniya_v_vp_expert.doc
Скачиваний:
15
Добавлен:
01.04.2025
Размер:
5 Мб
Скачать
☆

Лабораторная работа № 2

Оболочка VP-Expert

Цель работы:

Расширение или модификация БЗ.

Теоретическая часть:

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

1. Комментарии.

!<Текст>

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

2. Display.

Display "Текст" – выводит текстовое сообщение пользователю длиной до 1000 символов, включая пробелы и запятые. Для того, чтобы задержать информацию на экране, вводиться знак тильда "~".

Выводимая информация сохраняется на экране до нажатия любой клавиши. Знак "~" заключаются в фигурные скобки. Для вывода значений факторов уверенности переменных к их именам добавляется знак "#".

3. Блок Actions <оператор 1>

<оператор 2>

……………

<оператор n>;

Этот блок представляет собой небольшую программу, которая определяет порядок перечисления заданий, решаемых в процессе консультации. Actions указывает на начало блока.

4. Choices: <variable 1>, <variable 2>;

Choices используется в комбинации с блоком Аsk.

Пользователю дается возможность выбрать один или несколько вариантов. Если переменная, отмеченная в Choices, также определена в выражении.

5. Plural: <variable 1>, <variable 2>;

Пользователь может выбрать больше одного варианта.

6. Sort: <variable>;

Оператор Sort сортирует значения, содержащиеся в стеке множества переменных, в соответствии с их факторами переменности. Значения, обладающие большим фактором уверенности, находятся на вершине стека.

7. Pop: <variable 1>, <variable 2>;

Оператор Pop служит для преобразования переменных с множественного представления в обычное. Множественная переменная представляется в виде стека. Каждый применяемый оператор Pop извлекается из стека variable 1 и ставит в соответствие с ней variable 2, значения, находящиеся на вершине стека.

Sort и Pop работают в сочетании друг с другом.

8. Find <variable>;

При выполнении оператора Find инициируется работа машины логического вывода, который осуществляет поиск указанной в Find переменной на основе правил, имеющихся в базе знаний.

9. Color = <integer>

Оператор Color предназначен для установки цвета режима мигания. 0-15 – цвет, 16-30 – мигание.

10. Execute

Execute указывает в базе знаний на необходимость начать консультацию. При выполнении команды Go – начинает ее.

11. Runtime

Runtime вводят в базу знаний после окончания ее отладки, запрещая выводить отладочное окно.

12. В VP-Expert существует фактор уверенности, он записывается после переменной в правиле.

CNF xxx, где ххх – значение фактора уверенности – от 0 до 100, 0 – ложь, 100 – истина. Каждой используемой переменной могут быть поставлены в соответствие факторы уверенности из этого диапазона. Значение – субъективная величина, определяемая экспертами.

Для вывода результата на экран используется оператор Display:

Display "{#Type1} is what you need!~"

Задание:

1. Осуществить модификацию базы знаний по выбору телефона с помощью зарезервированных слов и выражений.

2. Получить пять режимов консультации файла трассировки.

3. Получить текстовое и графическое дерево решений, записать ходы трассировки.

Порядок выполнения работы

1. Чтобы создать базу знаний с альтернативами, нужно вначале дополнить предыдущую базу данных новыми данными (рис.1). Для этого нужно создать новый файл *.tbl с помощью команды Induce → Create. Затем вносятся данные, на основе которых будет создана новая база знаний.

2. Далее выполняем команду Induce → Text, после чего программа генерирует файл базы знаний с расширением *.kbs. Далее вводим новые правила на основе данных таблице. Группируем телефоны одинакового типа и цены: например, если существует несколько телефонов типа Smart и цены High, то правило будет выглядеть так:

If Price = High And

Company = Philips Or Company = Motorola Or Company = Siemens Or Company=Nokia;

Then Type = Smart;

Таким образом, после редактирования из исходных 27 правил останется только 13. Затем создаем последнее правило для типа No, из него следует, что если покупатель выбирает телефон любого типа кроме No, то высвечивается сообщение с именованием типа телефона и фактором уверенности; если же покупатель выбирает тип No, то ему выдается сообщение с просьбой повторить попытку, выбрав другого производителя.

3. Трассировка – демонстрация и выбор решения. Трассировка позволяет видеть процесс поиска решения. VP-Expert позволяет делать две трассировки: текстовую и графическую. При выборе пункта Tree нужно иметь сформированный файл, организованный в режиме Consult.

Для того, чтобы осуществить трассировку, надо зайти в меню консультации и выполнить команду Consult → Go и выбрать какие-нибудь варианты для примера

Установка режима Set основного меню позволяет проследить порядок применения базы знаний и изменения значений, определяемых ими переменных. В режиме консультации выбрать Set → Trace, затем вернуться и выбрать пункт Go в режиме консультации, выбрать ход работы, надо сделать несколько этапов Set → Trace → Go, выйти в основное меню. Затем выполнить команду Tree → Text, появится дерево решений

1. Проделываем все тоже самое, что и лаб.работе №1.

2. Используя команды редактора вводим таблицу данных (с сохранением Alt+F6, без сохранения Alt+F8) (Рис.10)

Рис.10

3. Создаем файл с расширение .kbs (Рис.11)

Рис.11

4. В Edit вносим изменения: добавляем цвета с помощью Color, примечания с помощью Display, и прописываем факторы уверенности.

ACTIONS

Color=15

Display "Dobro pojalovat v Salon Svyazi!~"

COLOR=1

FIND type1;

RULE 0

IF price=Hight AND

company=Nokia OR Company=Samsung

THEN type=Smart CNF 10;

RULE 1

IF price=Hight AND

company=Nokia

THEN type=Common CNF 90

ELSE type=Smart CNF 10;

RULE 2

IF price=Hight AND

company=Samsung

THEN type=Convertible CNF 70

ELSE type=Common CNF 20;

RULE 3

IF price=Medium AND

company=Nokia

THEN type=Common CNF 100;

RULE 4

IF price=Medium AND

company=Siemens

THEN type=Convertible CNF 60

ELSE type=Common CNF 40;

RULE 5

IF price=Low AND

Company=LG

THEN type=Convertible CNF 55

ELSE type=Common CNF 45;

RULE 6

IF price=Low AND

company=Nokia

THEN type=No;

RULE 7

IF type=No

THEN type1=No

COLOR=4

Display "Net podxodyawey modeli! Popytaytes snova, zadav drugie parametry~"

ELSE type1=Yes

SORT type

POP type,type1

COLOR=12

Display "{#Type1} eto to chto vam nujno!~";

ASK price: "Kakoy summoy Vy raspologaete?";

CHOICES price: Hight,Medium,Low;

ASK company: "Telefon kakoy firmy Vas interesuet?";

CHOICES company: Nokia,Samsung,Siemens,LG;

PLURAL:Type;

_

5. Заходим в Consult и тестируем свою БД. Если все параметры заданны, верно, выдается результат о подходящей модели телефона. (Рис.12-14)

Рис.12

Рис.13

Рис.14

Текстовая трассировка для этого примера, выглядит следующим образом:

type1

! Testing 7

! ! type

! ! ! Testing 0

! ! ! ! price

! ! ! ! ! (= Medium CNF 100 )

! ! ! Testing 1

! ! ! (= Smart CNF 10 )

! ! ! Testing 2

! ! ! (= Common CNF 20 )

! ! ! Testing 3

! ! ! ! company

! ! ! ! ! (= Samsung CNF 100 )

! ! ! Testing 4

! ! ! (= Common CNF 40 )

! ! ! Testing 5

! ! ! (= Common CNF 45 )

! ! ! Testing 6

! (= Yes CNF 100 )

6. Если же были введены неверные параметры, система предлагает задать другие, для нового поиска (Рис.15)

Рис.15

Текстовая трассировка для примера, когда нет подходящего компьютера, выглядит следующим образом:

type1

! Testing 7

! ! type

! ! ! Testing 0

! ! ! ! price

! ! ! ! ! (= Low CNF 100 )

! ! ! Testing 1

! ! ! (= Smart CNF 10 )

! ! ! Testing 2

! ! ! (= Common CNF 20 )

! ! ! Testing 3

! ! ! Testing 4

! ! ! (= Common CNF 40 )

! ! ! Testing 5

! ! ! ! Company

! ! ! ! ! (= Nokia CNF 100 )

! ! ! (= Common CNF 45 )

! ! ! Testing 6

! ! ! (= No CNF 100 )

! (= No CNF 100 )