Автор работы: Пользователь скрыл имя, 20 Июня 2013 в 21:59, курсовая работа
Сегодня практикуется использование экспертных систем. Экспертная система не говорит что лучше, она предоставляет те варианты, критерии которых устраивают пользователя в большей мере. Главным достоинством экспертных систем является возможность накопления знаний и сохранение их длительное время. В отличие от человека к любой информации экспертные системы подходят объективно, что улучшает качество проводимой экспертизы.
ВВЕДЕНИЕ…………………………………………………………………………...3
1. ЭКСПЕРТНЫЕ СИСТЕМЫ………………………………………………………4
1.1 Назначение экспертных систем…………………………………………………4
1.2 Особенности экспертных систем………………………………………………..5
1.3 Классификация экспертных систем……………………………………………..7
2. СРЕДЫ РАЗРАБОТКИ……………………………………………………………8
2.1 Язык логического программирования Пролог…………………………………8
2.2 Общие сведения о BorlandC++ Builder………………………………………….9
3. РАЗРАБОТКА ЭКСПЕРТНОЙ СИСТЕМЫ «Выбор спортивного инвентаря»………………………………………………………………………12
3.1 Выбор метода реализации экспертной системы……………………………...12
3.2 Построение экспертной системы: описание логической части программы...13
3.3 Интерфейс экспертной системы: Windows – приложение…………………...14
ЗАКЛЮЧЕНИЕ……………………………………………………………………..17
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ……………………………………18
ПРИЛОЖЕНИЕ……………………………………………………………………..19
Компоненты разделяются на видимые и невидимые. Визуальные компоненты появляются во время выполнения точно так же, как и во время проектирования. Примерами являются кнопки и редактируемые поля. Не визуальные компоненты появляются во время проектирования как пиктограммы на форме. Они никогда не видны во время выполнения, но обладают определенной функциональностью.
3. РАЗРАБОТКА ЭКСПЕРТНОЙ СИСТЕМЫ «Выбор спортивного инвентаря»
Разработка экспертной системы
разбита на три этапа: выбор метода
реализации экспертной системы, непосредственно
кодирование программы и
На сегодняшний день существует две основные возможности для реализации экспертных систем. Это связано с наличием двух весьма различных подходов к решению задачи.
· Первый подход основывается на использовании для построения экспертной системы некоторого процедурного языка, со всеми его недостатками и достоинствами для решения данной задачи.
· Второй подход - использование языков программирования математической логики, языков в которых имеются имеющие огромное значение для построения экспертных систем возможности.
Для экспертной системы лучшим решением является использование некоторого логического языка. Если сравнить код, реализующий одну и ту же экспертную систему (механизм вывода), то у процедурного языка он будет гораздо более объемным и более сложным. А наличие таких механизмов в языке как сопоставление образцов (унификации), древовидное представление структур, автоматический возврат делают его просто незаменимым языком для программирования экспертных систем. Общепринятое представление экспертной системы в виде базы знаний и механизма вывода не полностью пригодно для экспертных систем, написанных на Прологе. Многие функции механизма вывода обеспечиваются самим Прологом. Базы знаний, образованные средствами Пролога, являются выполняемыми. Однако Пролог не обеспечивает некоторых важных свойств экспертных систем, обычно встроенных в механизм вывода. Примеры таких свойств порождение объяснений и рассуждения в условиях неопределенности. Исходя из этого, средой для реализации основной части экспертной системы был выбран язык Пролог, в качестве одного из лучших представителей языков логического программирования. Для построения оболочки используется BorlandC++Builder 6и стандартный компонент LSEngine.
Программа представляет собой интерактивную оболочку, которая может задавать пользователю вопросы. Когда программа задает вопрос, пользователь может ответить «Да» или «Нет».
Возможность задания вопроса «Почему» реализуется в программе с помощью списка, в котором записывается весь путь, по которому прошла программа для вывода цели к текущему моменту времени. По запросу пользователя из списка извлекается его голова и выдается на экран, это и есть то нужное правило.
Кроме ответа на вопрос «Почему» программа имеет возможность отвечать на вопрос «Как», после вывода сделанного экспертной системой пользователь может проследить весь процесс вывода.
Далее, на рис.3.1. представлена база знаний в виде дерева, поясняющего ход размышлений экспертной системы при ответах пользователя.
3.3 Интерфейс экспертной системы:Windows - приложение
Оболочка экспертной
системы разрабатывалась с
Рис. 3.2. Главная форма экспертной системы.
Первое что необходимо сделать - это загрузить базу знаний. После этого код файла, который мы загрузили, появится в правой части (рис. 3.3.).
Рис.3.3. Загрузили базу знаний.
Рисунок 3.4. иллюстрирует опрос пользователя в поисках верного решения.
Рис.3.4. Опрос базы.
На рисунке 3.5. отображен результат ответа на вопрос «Почему?», что позволяет пользователю системы узнать ход дальнейших рассуждений системы.
Рис. 3.5. Иллюстрация работы кнопки «Почему».
Рисунок 3.6. иллюстрирует конечный результат опроса - выбор спортивного инвентаря.
Рис.3.6. Конечный результат опроса.
Рисунок 3.7. показывает возможность просмотра хода принятия решений экспертной системой.
Рис.3.7. Ход принятия решений.
ЗАКЛЮЧЕНИЕ
В ходе выполнения данного курсового проекта были достигнуты все поставленные цели и задачи.
Результатом выполнения данной курсовой работы стало создание экспертной системы «Выбор спортивного инвентаря», позволяющей выбирать наиболее подходящий для Вас инвентарь.
Данная система опрашивает пользователя, учитывая его личные предпочтения. Пользователь заранее должен определиться, в каком виде спорта он будет заниматься.
Предполагается, что данная экспертная система будет актуальна для начинающих спортсменов, но в этом случае базу знаний придётся значительно расширить, так как в данном курсовом проекте используется лишь ряд инвентаря.
В процессе выполнения данной курсовой работы были изучены среды разработки AMZI! Prolog и BorlandC++ Builder, а так же общие принципы их взаимодействия. Так же был изучен язык рекурсивно-логического программирования Prolog, и углублены знания языка объектно-ориентированного программирования C++. Были освоены принципы построения баз знаний.
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
1. И. Братко. Программирование на языке Пролог для искусст-
венного интеллекта.- М.: Мир, 2000.
2. Г. Долин. Что такое ЭС.- Компьютер Пресс, 2002/2.
3. Д. Р. Малпасс. Реляционный язык Пролог и его применение.
4. Д. Н. Марселлус.
Программирование экспертных
5. К. Нейлор. Как построить свою экспертную систему.- М.: Энергоатомиздат, 2001.
6. Н. Д. Нильсон.
Искусственный интеллект.
7. В. О. Сафонов.
Экспертные системы-
8. К. Таунсенд, Д. Фохт. Проектирование и программная реализация экспертных систем на персональных ЭВМ.- М.: Финансы и статистика, 2000.
9. В. Н. Убейко. Экспертные системы.- М.: МАИ, 2002.
10. Д. Уотермен. Руководство по экспертным системам.- М.: Мир, 2000.
ПРИЛОЖЕНИЕ
:- op(790, fx, 'если').
:- op(780, xfx, 'то').
:- op(775, xfy, 'или').
:- op(770, xfy, 'и').
:- op(765, fx, 'не').
gethow :- !, clause('главнаяцель'(X),
'решить' :-abolish('ответ'/2),'
'известно'('не' A) :- 'ответ'(A,_).
'известно'(A) :- 'ответ'(A,_).
'предложение'(A,B) :- 'если' B 'то' A.
'предложение'(A,'истина') :- 'ответ'(A,'истина').
'предложение'('не' A,'истина') :- 'ответ'(A,'ложь').
'предложение'(A,B) :- clause(A,B).
'решить'(Goal) :- 'решить'(Goal,[]).
'решить'('истина',_).
'решить'(A 'и' B,Rules) :- !,'решить'(A,Rules),'решить'(
'решить'(A 'или' B,Rules) :- !,('решить'(A,Rules);'решить'(
'решить'(A,Rules) :-'предложение'(A,B),'решить'(
'решить'(A,Rules) :-'можноспросить'(A),not
'известно'(A),'спросить'(A,
'можно спросить'('не' A) :- !,'вопрос'(A).
'можно спросить'(A) :- 'вопрос'(A).
'спросить'('не' A,Answer) :- !, opros(A,Ans),string_term(Ans,
'спросить'(A,Answer) :- opros(A,Ans),string_term(Ans,
'ответить'(y,'не' A,Rules) :- !,assert('ответ'(A,'истина')),
'ответить'(y,A,Rules) :- !,assert('ответ'(A,'истина')).
'ответить'(n,'не' A,Rules) :- !,assert('ответ'(A,'ложь')).
'ответить'(n,A,Rules) :- !,assert('ответ'(A,'ложь')),
'ответить'(why,A,[Rule|Rules]) :- !,'вывестиправило'(Rule),'
'ответить'(why,A,[]) :- !,donerule,'спросить'(A,
'ответить'(hl,A,[]) :- !,halt.
'ответить'(_,A,Rules) :-write($ответьтеy,nили
why$),nl,'спросить'(A,Answer),
'вывести правило'('правило'(A,
'доказать'('истина','истина').
'доказать'(A 'и' B,(ProofA,ProofB)):-'доказать'
'доказать'(A 'или' B,(ProofA,ProofB)):-('
'доказать'(A,(A:-Proof):-'
'как'(Goal) :- 'доказать'(Goal,Proof),'
'интерпретировать'((Proof1,
'интерпретировать'(Proof) :-'факт'(Proof,Fact),showfact(
'интерпретировать'(Proof) :-'правило'(Proof,Head,Body,
'вывести правило1'('правило'(
'факт'((Fact:-true),Fact).
'правило'((Goal:-Proof),Goal,
'извлечьтело'((Proof1,Proof2),
'извлечьтело'((Goal:-Proof),
ФайлDB.pro
'главная цель'(X) :- 'ссылка'-X.
'назначение экспертной
системы'($Экспертная система
'вопрос'('Нужен спортивный инвентарь?').
'вопрос'('Для тренажерного зала?').
'вопрос'('Нужна одежда?').
'вопрос'('Полный комплект?').
'вопрос'('Для велоспорта?').
'вопрос'('Спортивная обувь?').
'вопрос'('Нужна штанга?').
'вопрос'('Нужен мяч?').
'вопрос'('Блины нужны?').
'вопрос'('Нужны гири?').
'вопрос'('Для футбола?').
'вопрос'('Нужны лыжи?').
'если' 'Нужен спортивный инвентарь?' 'то' 'ссылка1'-'А1'.
'если' 'не' 'Нужен спортивный инвентарь?' 'то' 'ссылка1'-'А2'.
'если' 'ссылка1'-'А1' 'и' 'Для тренажерного зала?' 'то' 'ссылка2'-'А3'.
'если' 'ссылка1'-'А1' 'и' 'не' 'Для тренажерного зала?' 'то' 'ссылка2'-'А4'.
'если' 'ссылка1'-'А2' 'и' 'Нужна одежда?' 'то' 'ссылка2'-'А5'.
'если' 'ссылка1'-'А2' 'и' 'не' 'Нужна одежда?' 'то' 'ссылка2'-'А6'.
'если' 'ссылка2'-'А3' 'и' 'Полный комплект?' 'то' 'ссылка3'-'А7'.
'если' 'ссылка2'-'А3' 'и' 'не' 'Полный комплект?' 'то' 'ссылка3'-'А8'.
'если' 'ссылка2'-'А4' 'и' 'Для велоспорта?' 'то' 'ссылка3'-'А9'.
'если' 'ссылка2'-'А4' 'и' 'не' 'Для велоспорта?' 'то' 'ссылка3'-'А10'.
'если' 'ссылка2'-'А5' 'то' 'ссылка'-'Спортивный костюм Adidas'.
'если' 'ссылка2'-'А6' 'и' 'Спортивная обувь?' 'то' 'ссылка3'-'А11'.
'если' 'ссылка2'-'А6' 'и' 'не' 'Спортивная обувь?' 'то' 'ссылка3'-'А12'.
'если' 'ссылка3'-'А7' 'то' 'ссылка'-'Комплект для тренажерного зала'.
'если' 'ссылка3'-'А8' 'и' 'Нужна штанга?' 'то' 'ссылка4'-'А13'.
Информация о работе Разработка экспертной системы «Выбор спортивного инвентаря»