Разработка экспертной системы

Автор работы: Пользователь скрыл имя, 05 Мая 2014 в 19:21, курсовая работа

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

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

Содержание

Введение 3
1. Общие сведения о PROLOG 9
2. Разработка экспертной системы 12
2.1 Формирование базы знаний 15
2.2 Структура программы ЭС 17
2.2.1 Раздел описания предикатов внутренней базы данных 17
2.2.2 Раздел описания предикатов 18
2.2.3 Раздел описания предложений 19
2.2.4 Раздел описания внутренней цели 19
Заключение 23
Библиография

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

kursach_oesok.doc

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

 

Второй подцелью является печать следующей строки символов на экране:

"ЭС разработана студенткой 542 класса"

Эта подцель образована при помощи предиката write, одного из многих «встроенных» предикатов TURBO PROLOG. Подобные предикаты не требуют специального описания в программе, их можно использовать сразу.

Встроенный предикат write в данной программе встречается в виде:

write("ЭС разработана студенткой 542 класса"),

Двойные кавычки при этом применяются для ограничения символьной строки; подобным образом должны выделяться все символьные строки.

Третья подцель задается еще одним встроенным предикатом: nl. Предикат nl переводит курсор в начало следующей строки.

Четвертой подцелью является вывод на экран строки:

" Кучеренко Надеждой "

Пятая подцель, еще один предикат nl.

Шестая подцель предназначена для вывода на экран строки

"--------------------------------------------"

Эта строка служит для визуального разделения информации о создателе экспертной системы и началом процедуры определения класса животных.

Седьмая подцель - предикат nl.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЗАКЛЮЧЕНИЕ

 

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

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

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

 

 

 

 

 

 

 

 

 

 

 

БИБЛИОГРАФИЯ

 

1. Нейлор К. Как построить свою ээкспертную систему: Пер. с англ.-М.: Энергоатомиздат 1991. – 286с.

2. Элти Дж., Кумбс М. Экспертные системы: концепции и примеры / Пер. с англ. и предисл. Б.И.Шитикова. – М.: Финансы и статистика, 1987. – 191 с.: ил.

3. Хейес-Рот Ф., Уотерман Д., Ленат Д. Построение экспертных систем. Пер. с англ. – М.: Мир, 1987.-447с.

4. Попов Э.В. Экспертные системы: Решение неформализованных задач в диалоге с ЭВМ. – М.: Наука. Гл. ред. физ.-мат. лит., 1987. – 288 с. – (Пробл. искусственного интеллекта).

5. Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интеллектуальных систем – СПб.: Питер, 2001. – 384 с.: ил.

 

 

 

 

 

 

 

 

 

 

 

 

 

ПРИЛОЖЕНИЕ

 

Исходный код программы:

database

yes(string)

no(string)

maybe(string)

 

predicates

repeat

run

temperament(string)

positive(string)

negative(string)

xpositive(string)

xnegative(string)

ask(string,char)

remember(string,char)

delete_all

clauses

repeat.

repeat:-repeat.

 

% программа задает вопросы пользователю

temperament("сангвиник "):-

positive("Вы живо откликаетесь на то, что привлекает ваше внимание?"),

positive("Вы хорошо контролируете свои эмоции?"),

positive("У Вас плавная и уверенная походка?"),

positive("Вы много жестикулируете?"),

positive("Для Вас наиболее характерным является состояние бодрости?"),

positive("Легко ли ВЫ приспосабливаетесь к новой обстановке?"),

positive("Ваша речь громкая и отчетливая?").

 

temperament("холерик "):-

positive("Вы упорны, даже упрямы?"),

positive("Ритм вашей деятельности неравномерный, скачкообразный?"),

positive("Вы любите рисковать?"),

positive("У Вас бывают вспышки раздражительности?").

 

temperament("меланхолик "):-

positive("Вы застенчивый человек?"),

positive("Одиночество не тяготит вас?"),

positive("Вам свойственна некоторая мнительность и подозрительность?"),

positive("Вам приятно, когда окружающие сопереживают вам?"),

positive("У Вас завышенные требования к себе и окружающему миру?"). 

 

temperament("флегматик "):-

positive("В своих словах и делах вы отличаетесь последовательностью?"),

positive("С другими людьми у вас ровные, хорошие отношения?"),

positive("Вы аккуратны, педантичны в мелочах?"),

positive("Вы грамотно распределяете свои силы?").

temperament("смешанный тип темперамента").

 

% работа с динамической базой данных

positive(X):-xpositive(X),!; xnegative(X),!,fail; ask(X,'y').

negative(X):-xnegative(X),!; xpositive(X),!,fail; ask(X,'n').

ask(X,R):-write(X,"  ?  : "),readchar(Reply),write(R eply,"\n"),

remember(X,Reply),R=Reply.

 

% проверка присутствия фактов в динамической базе данных

xpositive(X):-yes(X);maybe(X).

xnegative(X):-no(X);maybe(X).

% запоминаем факт в динамической базе данных

remember(X,'y'):-asserta(yes(X)).

remember(X,'n'):-assertz(no(X)).

remember(X,'q'):-asserta(maybe(X)).

 

% очищаем память от фактов  динамической базы данных

delete_all:-retract(yes(_)),delete_all.

delete_all:-retract(no(_)),delete_all.

delete_all:-retract(maybe(_)),delete_all.

delete_all.

run:-delete_all,

repeat,

write("На вопросы отвечать (y-да, n-нет, q-не знаю)./n”),

temperament(X),

write("Тип темперамента: ",X,"\n"),

write("Завершить работу программы (y/n): "),readchar (Z),

write(Z),nl,

Z='y'.

goal

makewindow(1,10,12," Экспертная система : Тип темперамента ",0,0,25,80),

write("ЭС разработана студенткой 542 класса"),nl,

write("Кучеренко Надеждой"),nl,

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

run.

 

 

 

 





Информация о работе Разработка экспертной системы