
- •«Технология программирования»
- •Лабораторная работа №1 Знакомство с оболочкой vp-Expert
- •Лабораторная работа № 2
- •Лабораторная работа №3 Разработка эс для выбора персонального компьютера с помощью оболочки vp-Expert
- •Лабораторная работа № 4 Создание экспертной системы, предназначенной для контроля знаний
- •Лабораторная работа №5 Создание экспертной системы, предназначенной для контроля знаний пдд
Лабораторная работа №3 Разработка эс для выбора персонального компьютера с помощью оболочки vp-Expert
Цель:
Разработка ЭС для выбора ПК с помощью VP-Expert.
Задание:
Разработать экспертную систему «Выбор ПК». На основе данных о стоимости и мощности процессора выбрать подходящий ПК.
В БЗ должно содержаться не менее 30 правил, из которых 4 правила определяют класс ПК, исходя из его стоимости, также 3-5 правил определяют тип ПК, в зависимости от его мощности. В том случае, если для задаваемой входной информации и полученной БЗ нельзя определить результат, то ПК кодировать как NO.
Заполнить блок ASK вопросами, которые будут задаваться пользователю.
С помощью режима Consult протестировать созданную программу (текстово/графически).
Снабдить фактическую БЗ
Модифицировать программу, введя в нее ключевые слова и выражения: !Runtime, !Execute, Color.
Назначением ЭС консультационного типа будет оказание помощи пользователю в выборе типа ПК в соответствии с требованиями к мощности процессора (в условных единицах) и имеющимися в распоряжении средствами.
Порядок выполнения работы:
Составим таблицу исходных данных с помощью режима Induce–>Create (рис.1):
Будет автоматически сгенерирована БЗ. Проведем ее модернизацию с целью улучшения эксплуатационных характеристик. Введем альтернативы при помощи ключевого слова ELSE и все правила снабдим факторами уверенности.
Т.к. мы выступаем в роли эксперта, то имеем право убрать всю базу правил RULE из автоматически сгенерированной БЗ и создать новую. Определим класс ПК из стоимости, тип ПК из мощности процессора, по типу и классу выбираем ПК. Оператор DISPLAY позволяет выводить необходимую информацию на экран. Для управления выводом используется ~ (тильда).
Используя меню Consult–>Go, запустим сеанс консультации.
Результат производимой модификации ЭС – список возможных типов ПК с соответствующими им факторами уверенности CNF, или сообщение об их отсутствии.
Порядок выполнения работы
1. Проделываем те же шаги, что и в предыдущих работах.
2. Используя команды редактора, вводим таблицу данных (с сохранением Alt+F6, без сохранения Alt+F8) (Рис.16)
Рис.16
3. Создаем файл с расширением .kbs(рис.17)
Рис.17
4. В Edit, прописываем новые правила, с учетом фактора уверенности, добавляем цвета, примечания и т.д.
ACTIONS
Display "Dobro pozhalovat' v magazin compyuterov!!!~"
FIND Comp1;
RULE 0
If summa>=200
and summa<=400
then class=low;
RULE 1
If summa>400
and summa<=950
then class=middle;
RULE 2
If summa>950
and summa<=1500
then class=high;
RULE 3
If summa>1500
and summa<=2200
then class=extra;
RULE 4
If summa>2200
then class=no;
RULE 5
If summa<200
then class=no;
RULE 6
If vol<250
then type=no;
RULE 7
If vol>=250
and vol<=500
then type=micro;
RULE 8
If vol>500
and vol<=900
then type=mini;
RULE 9
If vol>900
and vol<=1700
then type=mega;
RULE 10
If vol>1700
and vol<=2500
then type=super;
RULE 11
If vol>2500
then type=no;
RULE 12
If class=low
and type=micro
then comp=IBM CNF 25
else comp=Celeron CNF 30
or comp=Pentium2 CNF 40;
RULE 13
If class=low
and type=mini
then comp=no;
RULE 14
If class=low
and type=mega
then comp=no;
RULE 15
If class=low
and type=super
then comp=no;
RULE 16
If class=middle
and type=mini
then comp=IBM2 CNF 45
else comp=Celeron2 CNF 50
or comp=DUO CNF 58;
RULE 17
If class=middle
and type=micro
then comp=no;
RULE 18
If class=middle
and type=mega
then comp=no;
RULE 19
If class=middle
and type=super
then comp=no;
RULE 20
If class=high
and type=mega
then comp=Atlon CNF 60
else comp=Duran CNF 65
or comp=Pentium4 CNF 70;
RULE 21
If class=high
and type=micro
then comp=no;
RULE 22
If class=high
and type=mini
then comp=no;
RULE 23
If class=high
and type=super
then comp=no;
RULE 24
If class=extra
and type=super
then comp=Atlon64 CNF 75
else comp=Intel CNF 85
or comp=Cabina CNF 95;
RULE 25
If class=extra
and type=micro
then comp=no;
RULE 26
If class=extra
and type=mini
then comp=no;
RULE 27
If class=extra
and type=mega
then comp=no;
RULE 28
If class=no
and type=micro
then comp=no;
RULE 29
If class=no
and type=mini
then comp=no;
RULE 30
If class=no
and type=mega
then comp=no;
RULE 31
If class=no
and type=super
then comp=no;
RULE 32
If class=low
and type=no
then comp=no;
RULE 33
If class=middle
and type=no
then comp=no;
RULE 34
If class=high
and type=no
then comp=no;
RULE 35
If class=extra
and type=no
then comp=no;
!esli net podhodjashego varianta
RULE 36
IF Comp=No
THEN Comp1=No
Display "Po vashemy zaprosy net podxodyawego kimpyutera! Zadayte drugie parametry~"
!est' varient
ELSE Comp1=YES
SORT Comp
POP Comp,Comp1
Display "{#Comp1} Eto to chto vam nujno!!!~";
!Voprosy
ASK Summa: "Zadayte summy v diapazone ot 100 do 2000 dollarov ";
!CHOICES Summ:
ASK Vol: "Zadaite parametr mownosti kompyutera v diapazone ot 150 do 3000 ";
PLURAL:Comp;
5. В Consult проверяем свою БД, на работоспособность. Вводим параметры, которые предлагает нам система. Если параметры введены в дозволенных диапазонах, то система выдает результат, о подходящем нам компьютере.(Рис.18-19)
Рис.18
Рис.19
Текстовая трассировка, выглядит след. образом:
Comp1
! Testing 36
! ! Comp
! ! ! Testing 12
! ! ! ! class
! ! ! ! ! Testing 0
! ! ! ! ! ! summa
! ! ! ! ! ! ! (= 150 CNF 100)
! ! ! ! ! Testing 1
! ! ! ! ! Testing 2
! ! ! ! ! Testing 3
! ! ! ! ! Testing 4
! ! ! ! ! Testing 5
! ! ! ! ! (= no CNF 100 )
! ! ! (= Celeron CNF 30 )
! ! ! (= Pentium2 CNF 40 )
! ! ! Testing 13
! ! ! Testing 14
! ! ! Testing 15
! ! ! Testing 16
! ! ! (= Celeron2 CNF 50 )
! ! ! (= DUO CNF 58 )
! ! ! Testing 17
! ! ! Testing 18
! ! ! Testing 19
! ! ! Testing 20
! ! ! (= Duran CNF 65 )
! ! ! (= Pentium4 CNF 70 )
! ! ! Testing 21
! ! ! Testing 22
! ! ! Testing 23
! ! ! Testing 24
! ! ! (= Intel CNF 85 )
! ! ! (= Cabina CNF 95 )
! ! ! Testing 25
! ! ! Testing 26
! ! ! Testing 27
! ! ! Testing 28
! ! ! ! type
! ! ! ! ! Testing 6
! ! ! ! ! ! vol
! ! ! ! ! ! ! (= 300 CNF 100)
! ! ! ! ! Testing 7
! ! ! ! ! ! vo
! ! ! ! ! Testing 8
! ! ! ! ! Testing 9
! ! ! ! ! Testing 10
! ! ! ! ! Testing 11
! ! ! Testing 29
! ! ! Testing 30
! ! ! Testing 31
! ! ! Testing 32
! ! ! Testing 33
! ! ! Testing 34
! ! ! Testing 35
! (= YES CNF 100 )
6. Если же параметры были введены за рамками диапазона, система предлагает нам задать другие параметры.(Рис.20-21)
Рис.20
- Рис.21
Следовательно, текстовая трассировка, будет выглядеть так:
Comp1
! Testing 36
! ! comp
! ! ! Testing 12
! ! ! ! class
! ! ! ! ! Testing 0
! ! ! ! ! ! summa
! ! ! ! ! ! ! (= 1500 CNF 100)
! ! ! ! ! Testing 1
! ! ! ! ! (= middle CNF 100 )
! ! ! Testing 13
! ! ! Testing 14
! ! ! Testing 15
! ! ! Testing 16
! ! ! ! type
! ! ! ! ! Testing 6
! ! ! ! ! ! vol
! ! ! ! ! ! ! (= 2500 CNF 100)
! ! ! ! ! Testing 7
! ! ! ! ! Testing 8
! ! ! ! ! Testing 9
! ! ! ! ! (= mega CNF 100 )
! ! ! Testing 17
! ! ! Testing 18
! ! ! (= no CNF 100 )
! ! ! Testing 19
! ! ! Testing 20
! ! ! Testing 21
! ! ! Testing 22
! ! ! Testing 23
! ! ! Testing 24
! ! ! Testing 25
! ! ! Testing 26
! ! ! Testing 27
! ! ! Testing 28
! ! ! Testing 29
! ! ! Testing 30
! ! ! Testing 31
! ! ! Testing 32
! ! ! Testing 33
! ! ! Testing 34
! ! ! Testing 35
! (= no CNF 100 )