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

Лабораторная работа №3 Разработка эс для выбора персонального компьютера с помощью оболочки vp-Expert

Цель:

Разработка ЭС для выбора ПК с помощью VP-Expert.

Задание:

Разработать экспертную систему «Выбор ПК». На основе данных о стоимости и мощности процессора выбрать подходящий ПК.

  1. В БЗ должно содержаться не менее 30 правил, из которых 4 правила определяют класс ПК, исходя из его стоимости, также 3-5 правил определяют тип ПК, в зависимости от его мощности. В том случае, если для задаваемой входной информации и полученной БЗ нельзя определить результат, то ПК кодировать как NO.

  2. Заполнить блок ASK вопросами, которые будут задаваться пользователю.

  3. С помощью режима Consult протестировать созданную программу (текстово/графически).

  4. Снабдить фактическую БЗ

  5. Модифицировать программу, введя в нее ключевые слова и выражения: !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 )