Экспертные системы с представлением знаний на основе логики предикатов

Автор работы: Пользователь скрыл имя, 16 Мая 2013 в 18:28, курсовая работа

Краткое описание

Экспертная система - программа, которая использует знания специалистов (экспертов) о некоторой конкретной узкоспециализированной предметной области и в пределах этой области способна принимать решения на уровне эксперта-профессионала.
В основе функционирования ЭС лежит использование знаний, а манипулирование ими осуществляется на базе эвристических правил, сформулированных экспертами. ЭС выдают советы, проводят анализ, выполняют классификацию, дают консультации и ставят диагноз. Они ориентированы на решение задач, обычно требующих проведения экспертизы человеком-специалистом.

Содержание

2 Введение………………………………………….… ….…….... .…..3
3 Теоретические сведения…………………… . . . .……......….….....5
3.1 Классификация экспертных систем…………… …..……..…..…5
3.2 Область применения экспертных систем…………..………. . …5
3.3 Типовая структура экспертных систем….……….…..…..…….. 8
3.4 Функционирование ЭС…………………………….…....….….…12
3.5 Основные понятия и состав знаний…………….. .………..……13
3.5.1 Состав знаний……………………………………..…….………14
3.5.2 Модели представления знаний……………………….……….16
4 Логическая модель………………………………….….….…….….17
4.1 Язык логического программирования PROLOG……….. .…….21
4.1.1 Структура программы на Prolog……………….……...………22
4.1.2 Запросы к Prolog программе……………………… ….….……23
4.1.3 Базы данных и знаний на прологе…………… ………..……..26
5. Пример ЭС, базирующейся на логике предикатов……….…….26
6. Заключение…………………………………………………….…...29
7. Список литературы……………………………………….…….….30
8. Приложение 1………………………………………………..……..31

Прикрепленные файлы: 1 файл

курсовой.docx

— 419.91 Кб (Скачать документ)

 clear.

do_consulting.

goes(Mygoal) :-

 clear, clearwindow, nl,nl,

write("\tЭКСПЕРТНАЯ СИСТЕМА  ПО ВЫБОРУ ПОРОДЫ СОБАКИ"),nl,nl,

write(" Эта система поможет  вам выбрать породу собаки."),

write(" Система будет  задавать Вам"),nl,

write(" вопросы относительно  характеристик Вашего"),

write(" будущего друга.  Вам необходимо"),nl,

write(" всего лишь ответить \"Да\" или \"Нет\""),nl,

menu(10,30,$13,$13,

["Выбор породы собаки", "Справка"],"",1,Choise),

 trangoal(Choise,Mygoal),

info(Mygoal),!.

trangoal(1, "порода").

trangoal(2, "?").

info("?") :-

clearwindow,

 write("Справка из базы знаний."),nl,

listopt,

nl,write("\tНажмите любую  клавишу ... "),

readchar(_),

clearwindow,

exit.

info(X) :-

X >< "?".

listopt :-

write("Породы собак : "),nl,nl,

topic(Dog),

write(" ",Dog),nl,

fail.

listopt.

inpo(HISTORY,RNO,BNO,TEXT) :-

write(" ",TEXT," ? "),

menu(10,50,$13,$13,[" Да ", " Нет "],

"Ответ",1,RESPONSE),

do_answer(HISTORY,RNO,TEXT,BNO,RESPONSE).

 eval_reply('д') :-

write(" Я надеюсь, что  Вы будете довольны !").

eval_reply('н') :-

write(" Извините, я не  могу Вам помочь !").

 go(_,Mygoal) :-

not(rule(_,Mygoal,_,_)),!,

 nl,write(" Вам необходима собака породы ",

Mygoal,"."),nl,

write("Вас удовлетворяет  эта порода (д/н) ?"),

 nl,readchar(R),

eval_reply(R).

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

go(HISTORY, Mygoal) :-

rule(RNO,Mygoal,NY,COND),

check(RNO,HISTORY,COND),

go([RNO|HISTORY],NY).

check(RNO,HISTORY,[BNO|REST]) :-

yes(BNO),!,

check(RNO,HISTORY,REST).

check(_,_,[BNO|_]) :- no(BNO),!,fail.

check(RNO,HISTORY,[BNO|REST]) :-

cond(BNO,NCOND),

fronttoken(NCOND,_,COND),

frontchar(COND,_,COND1),

cond(BNO1,COND1),

notest(BNO1),!,

check(RNO,HISTORY,REST).

check(_,_,[BNO|_]) :-

cond(BNO,NCOND),

fronttoken(NCOND,_,COND),

frontchar(COND,_,COND),

cond(BNO1,COND),

yes(BNO1),

!,fail.

check(RNO,HISTORY,[BNO|REST]) :-

cond(BNO,TEXT),

inpo(HISTORY,RNO,BNO,TEXT),

check(RNO,HISTORY,REST).

check(_,_,[]).

notest(BNO) :- no(BNO),!.

notest(BNO) :- not(yes(BNO)),!.

do_answer(_,_,_,_,0) :- exit.

do_answer(_,_,_,BNO,1) :-

assert(yes(BNO)),

shiftwindow(1),

write("да"),nl.

do_answer(_,_,_,BNO,2) :-

assert(no(BNO)),

write("нет"),nl,

fail.

erase :- retract(_),fail.

erase.

clear :- retract(yes(_)),retract(no(_)),fail,!.

 clear. #P

 Множество фактов БЗ  хранится в файле базы данных DOGS.DBA.

#M

topic("порода")

topic("короткошерстная порода")

topic("длинношерстная прорда")

rule(1,"порода","короткошерстная  порода",[1])

rule(2,"порода","длинношерстная  прорда",[2])

rule(3,"короткошерстная  порода","АНГЛИЙСКИЙ БУЛЬДОГ",[3,5,7])

rule(4,"короткошерстная  порода","ГОНЧАЯ",[3,6,7])

rule(5,"короткошерстная  порода","ДАТСКИЙ ДОГ",[5,6,7,8])

rule(6,"короткошерстная  порода","АМЕРИКАНСКИЙ ФОКСТЕРЬЕР",[4,6,7])

rule(7,"длинношерстная прорда","КОККЕР-СПАНИЭЛЬ",[3,5,6,7])

rule(8,"длинношерстная прорда","ИРЛАНДСКИЙ  СЕТТЕР",[4,6])

rule(9,"длинношерстная прорда","КОЛЛИ",[4,7])

rule(10,"длинношерстная прорда","СЕНБЕРНАР",[6,7,8])

cond(1,"короткошерстная")

cond(2,"длинношерстная")

cond(3,"рост менее 50 см")

cond(4,"рост менее 70 см")

cond(5,"короткий хвост")

cond(6,"длинные уши")

cond(7,"добродушный характер")

cond(8,"вес более 50 кг") #P

 


Информация о работе Экспертные системы с представлением знаний на основе логики предикатов