ТОР 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,”длинная шерсть”),!. /* конец программы */
Не нашли, что искали? Воспользуйтесь поиском:
|