Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Лабораторная работа - Экспертная система - файл 1.doc


Лабораторная работа - Экспертная система
скачать (36.5 kb.)

Доступные файлы (1):

1.doc37kb.29.11.2011 21:33скачать


1.doc

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

В экспертной системе используются следующие характеристики – названия цветов:

1) красный;

2) синий;

3) зеленый;

4) желтый;

5) белый;

6) черный;

Каждая характеристика для конкретного флага либо верна,

либо не верна. Для флага каждой страны справедливы следующие характеристики:

Страна Характеристики

Россия 1,2,5

Украина 2,4

Болгария 1,3,5

Германия 1,4,6,

Танзания 2,3,6

Текст программы

/* Это продукционная система, базирующаяся на правилах */
database

xpositive(symbol,symbol)

xnegative(symbol,symbol)

predicates

do_expert_job

do_consulting

ask(symbol,symbol)

flag_is(symbol)

positive(symbol,symbol)

negative(symbol,symbol)

remember(symbol,symbol,char)

clear_facts

goal

do_expert_job.

clauses

/* Система пользовательского интерфейса */

do_expert_job :-

makewindow(1,7,7,"AN EXPERT SYSTEM",1,16,22,58),

nl,write("* * * * * * * * * * * * * * * * * * * *"),

nl,write(" WELCOME TO FLAG EXPERT SYSTEM "),

nl,write(" "),

nl,write("Please answer the question about "),

nl,write(" flag color "),

nl,write("'y' or 'n'. "),

nl,write("* * * * * * * * * * * * * * * * * * * *"),

nl,nl,

do_consulting,

write("Press space bar."),nl,

readchar(_),

removewindow,

exit.

do_consulting :-

flag_is(X),!,nl,

write("it is a flag of country - ",X,"."),nl,

clear_facts.

do_consulting :-

nl,write("Sorry I can't help you ! "),

clear_facts.

ask(X,Y) :-

write(" Question :- ",X," it ",Y," ?"),

readchar(Reply),

remember(X,Y,Reply).

/* МЕХАНИЗМ ВЫВОДА */

positive(X,Y) :-

xpositive(X,Y),!.

positive(X,Y) :-

not(negative(X,Y)),!,

ask(X,Y).

negative(X,Y) :-

xnegative(X,Y),!.

remember(X,Y,'y') :-

asserta(xpositive(X,Y)).

remember(X,Y,'n') :-

asserta(xnegative(X,Y)),

fail.

clear_facts :-

retract(xpositive(_,_)),

fail.

clear_facts :-

retract(xnegative(_,_)),

fail.

/* ПРОДУКЦИОННЫЕ ПРАВИЛА */
flag_is("Russia") :-

positive(has,"red"),

positive(has,"blue"),

positive(has,"white"),

!.

flag_is("Ukraine") :-

positive (has,"blue"),

positive (has,"yellow"),

!.

flag_is("Bulgaria") :-

positive (has,"red"),

positive (has,"green"),

positive (has,"white"),

!.

flag_is("German") :-

positive (has,"red"),

positive (has,"yellow"),

positive (has,"black"),

!.

flag_is("Tanzania") :-

positive (has,"blue"),

positive (has,"green"),

positive (has,"black"),

!.

/* КОНЕЦ ПРОГРАММЫ */


Скачать файл (36.5 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации