Смекни!
smekni.com

Разработка программы в помощь медикам в постановке диагноза (стр. 2 из 2)

Целью данной курсовой работы является закрепление теоретических знаний и практических навыков в области логического программирования, а также приобретение практического опыта при проектировании сложных интерактивных систем и программ.

В процессе выполнения курсовой работы, мной были приобретены не только навыки в области программирования на языке Пролог и изучения принципа логического программирования, но и навыки программной реализации экспертных систем.

Исходя из приведенной экспертной системы для определения диагноза, можно сделать вывод, что Пролог предоставляет богатые возможности для реализации экспертных систем и написания «дружественного интерфейса» для общения пользователя с программой. Пролог пригоден для разработки систем экспертных консультаций, поскольку в нем имеются и язык представления знаний, и общецелевая стратегия решения задач, основанная на принципе резолюции.


Список использованной литературы

1. Емельянов В.А., Емельянов Б.В. Курсовое проектирование. Рекурсивно-логическое программирование: разработка экспертных систем и систем принятия решений. Учебно-метод. пособие, Чуваш. Ун-т. Чебоксары, 2006.

2. Ц. Ин, Д. Соломон. Использование Турбо-Пролога: Пер. с англ.-М.:Мир, 1993.

3. И. Братко. Программирование на языке пролог для искусственного интеллекта. М.: Мир, 1990.


Приложения

Приложение 1. Реализация экспертной системы

domains

database

xpositive(symbol,symbol)

xnegative(symbol,symbol)

predicates

Zastavka.

do_expert.

do_consulting

ask(symbol,symbol)

elem_is(symbol)

positive(symbol,symbol)

negative(symbol,symbol)

remember(symbol,symbol,symbol)

clear_facts

goal

Zastavka,

do_expert.

clauses

Zastavka:-

makewindow(1,10,31,"",0,0,25,80),

nl,nl,nl,

write("Expertnaya systema "),nl,nl,

write(Kursovaya rabota: Pomosh' medikam v postanovke diagnoza"),nl,

nl,nl,nl,nl,nl,nl,nl,

write("vipolnil: "),nl,

write("proveril:"),nl,nl,nl,nl,nl,nl,nl,nl,

write("61-06"),nl,

write("AFCHGU"),nl,

write(""),nl,nl,

readchar(_),removewindow(1,1).

do_expert:-

makewindow(1,7,7," *** Expert's System *** ",1,3,22,71),

nl,write(" ----------------------------------------------"),

nl,write(" Postanovka diagnoza "),

nl,write(" "),

nl,write(" Please answer the qustions 'yes' or 'no'. "),

nl,write(" ----------------------------------------------"),

nl,nl,

do_consulting,nl,

readchar(_),

removewindow,

exit.

do_consulting:-

elem_is(X),!,nl,

write("Vash diagnoz: ",X,"."),nl,

clear_facts.

do_consulting:-

nl,write("Ssory,vash diagnoz ne ustanovlen !"),

clear_facts.

ask(X,Y):-

write(" Doctor> U vas est' ",Y," ? "),

readln(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,yes):-

asserta(xpositive(X,Y)).

remember(X,Y,no):-

asserta(xnegative(X,Y)),

fail.

clear_facts:-

retract(xpositive(_,_)),

fail.

clear_facts:-

retract(xnegative(_,_)),

fail.

elem_is("Gripp (Antigrippin)"):-

positive(elem,"golovnaya bol"),

positive(elem,"kashel"),

positive(elem,"nasmork"),

positive(elem,"slabost"),

positive(elem,"visokaya temperatura"),!.

elem_is("ORVI (Fervex)"):-

positive(elem,"kashel"),

positive(elem,"nasmork"),

positive(elem,"slabost"),

positive(elem,"bol v gorle"),!.

elem_is("Migren (Migrenol)"):-

positive(elem,"golovnaya bol"),

positive(elem,"slabost"),

positive(elem,"toshnota"),!.

elem_is("Gipovitaminoz (Duovit)"):-

positive(elem,"golovnaya bol"),

positive(elem,"slabost"),

positive(elem,"plohoi son"),!.

elem_is("Gastrit (Gastrofarm)"):-

positive(elem,"slabost"),

positive(elem,"toshnota"),

positive(elem,"izghoga"),!.

elem_is("Bessonica (Novo-Passit)"):-

positive(elem,"slabost"),

positive(elem,"plohoi son"),

positive(elem,"razdrazhimost'"),!.

elem_is("Laringit (Antibiotiki)"):-

positive(elem,"kashel"),

positive(elem,"bol v gorle"),

positive(elem,"ohriplost'"),!.

elem_is("Faringit (Antibiotiki)"):-

positive(elem,"slabost"),

positive(elem,"kashel"),

positive(elem,"bol v gorle"),!.

elem_is("Faringit (Antibiotiki)"):-

positive(elem,"visokaya temperatura"),

positive(elem,"kashel"),

positive(elem,"bol v gorle"),!.

elem_is("Jazva zheludka (Antibiotiki)"):-

positive(elem,"slabost"),

positive(elem,"toshnota"),

positive(elem,"izghoga"),

positive(elem,"pohudanie"),!.


Приложение 2. Результат работы экспертной системы