Главная | Случайная
Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Текст программы работы №1 (LABO1.PRO).




 

/* Пример экспертной системы */

/* базирующейся на правилах */

/* Эксперт по породам собак */

domains

 

database

dpositive(symbol, symbol)

dnegative(symbol, symbol)

 

predicates

do_expert_job

do_consulting

ask(symbol, symbol)

dog_is(symbol)

it_is(symbol)

positive(symbol, symbol)

negative(symbol, symbol)

remember(symbol, symbol, symbol)

clear_facts

goal

do_expert_job.

Clauses

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

do_expert_job:-

makewindow(1,7,7, “Экспертная система”,1,16,22,58),

nl,write(“***************************************************”),

nl,nl,

write(“ Добро пожаловать в ЖИВОТНУЮ экспертную систему! ;)”),

nl,nl,write(“ Эта система легко определит название животного по “),

nl,write(“ его признакам. “),

nl,write(“ Отвечайте на вопросы : ‘Y’(Да) или ‘N’(Нет). “),

nl,write(“**************************************************”),

nl,nl,

do_consulting,

nl,nl,

clear_facts,

write(“Нажмите пробел.”),nl,

readchar(_),

removewindow,

exit.

do_consulting:-dog_is(X),!,nl,

write(“Похоже, что это - “, X, “.”).

do_consulting:-nl, write(“Извините, но я ничем не могу вам помочь.”),

nl,

write(“И вообще, где вы видели такое животное ?..”).

ask(X,Y):- write(“ Вопрос: “,X,” “,Y,” ? “),

readln(Reply),

remember(X,Y,Reply).

 

/* Механизм вывода */

positive(X,Y):-dpositive(X,Y),!.

positive(X,Y):-not(negative(X,Y)),!, ask(X,Y).

negative(X,Y):-dnegative(X,Y),!.

remember(X,Y,y):-asserta(dpositive(X,Y)).

remember(X,Y,n):-asserta(dnegative(X,Y)), fail.

clear_facts:-retract(dpositive(_,_)), fail.

clear_facts:-retract(dnegative(_,_)), fail.

 

/* Продукционные правила */

dog_is(“Английский бульдог”):-

it_is(“короткая шерсть”),

positive(has,”pocт меньше 55 см”),

positive(has,”низкопосаженный хвост”),

positive(has,”хороший характер”),!.

dog_is(“Гончая”):-

it_is(“короткая шерсть”),

positive(has,”pocт меньше 55 см”),

positive(has,”длинные уши”),

positive(has,”хороший характер”),!.

dog_is (“Дог”):-

it_is(“короткая шерсть”),

positive(has,”низкопосаженный хвост”),

positive(has,”хороший характер”),

positive(has,”вес больше 5 кг”),!.

dog_is(“Американская гончая”):-

it_is(“короткая шерсть”),

positive(has,”рост меньше 75 см”),

positive(has,”длинные уши”),

positive(has, “хороший характер”),!.

dog_is(“Koккep-спаниель”):-

it_is(“длинная шерсть”),

positive(has,”рост меньше 55 см”),

positive(has,”низкопосаженный хвост”),

positive (has,”длинные уши”),

positive (has,”хороший характер”),!.

dog_is(“Ирландский сеттер”):-

it_is(“длинная шерсть”),

positive(has,”рост меньше 75 см”),

positive(has,”низкопосаженный хвост”),

positive(has,”длинные уши”),!.

dog_is (“Kолли”):-

it_is(“длинная шерсть”),

positive(has,”рост меньше 75 см”),

positive(has,”низкопосаженный хвост”),

positive(has,”хороший характер”),!.

dog_is(“Сенбернар”):-

it_is(“длинная шерсть”),

positive(has,”низкопосаженный хвост”),

positive(has,”хороший характер”),

positive(has,”вес больше 5 кг”),!.

it_is(“короткая шерсть”):-

positive(has,”короткая шерсть”),!.

it_is(“длинная шерсть”):-

positive (has,”длинная шерсть”),!.

/* конец программы */

 

vikidalka.ru - 2015-2018 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных