Автор работы: Пользователь скрыл имя, 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
clear.
do_consulting.
goes(Mygoal) :-
clear, clearwindow, nl,nl,
write("\tЭКСПЕРТНАЯ СИСТЕМА
ПО ВЫБОРУ ПОРОДЫ СОБАКИ"),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,
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(_))
clear. #P
Множество фактов БЗ хранится в файле базы данных DOGS.DBA.
#M
topic("порода")
topic("короткошерстная порода"
topic("длинношерстная прорда")
rule(1,"порода","
rule(2,"порода","
rule(3,"короткошерстная
порода","АНГЛИЙСКИЙ БУЛЬДОГ",[
rule(4,"короткошерстная порода","ГОНЧАЯ",[3,6,7])
rule(5,"короткошерстная
порода","ДАТСКИЙ ДОГ",[5,6,7,
rule(6,"короткошерстная
порода","АМЕРИКАНСКИЙ
rule(7,"длинношерстная прорда"
rule(8,"длинношерстная прорда"
rule(9,"длинношерстная прорда"
rule(10,"длинношерстная
cond(1,"короткошерстная")
cond(2,"длинношерстная")
cond(3,"рост менее 50 см")
cond(4,"рост менее 70 см")
cond(5,"короткий хвост")
cond(6,"длинные уши")
cond(7,"добродушный характер")
cond(8,"вес более 50 кг") #P
Информация о работе Экспертные системы с представлением знаний на основе логики предикатов