- •«Технология программирования»
- •Лабораторная работа №1 Знакомство с оболочкой vp-Expert
- •Лабораторная работа № 2
- •Лабораторная работа №3 Разработка эс для выбора персонального компьютера с помощью оболочки vp-Expert
- •Лабораторная работа № 4 Создание экспертной системы, предназначенной для контроля знаний
- •Лабораторная работа №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 )
