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

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

ыслу с термином, используемым в информационно-поисковых системах (ИПС) и системах управления базами данных (СУБД) для обозначения всех данных (в первую очередь долгосрочных), хранимых в системе.

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

Решатель, используя исходные данные из рабочей памяти и знания из БЗ, формирует такую последовательность правил, которые, будучи примененными к исходным данным, приводят к решению задачи.

Компонент приобретения знаний автоматизирует процесс наполнения ЭС знаниями, осуществляемый пользователем-экспертом.

Объяснительный компонент объясняет, как система получила решение задачи (или почему она не получила решение) и какие знания она при этом использовала, что облегчает эксперту тестирование системы и повышает доверие пользователя к полученному результату.

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

 

Рисунок 1 - Структура статической ЭС

 

3. Описание экспертной системы

 

Экспертная система написана на языке CLIPS. В файле expert.cls содержатся классы и функции предназначенные для работы системы.

Класс cSport содержит результаты работы экспертной системы. Класс cSport является пользовательским, конкретным классом, т.е. возможно создание экземпляров этого класса. Экземпляры класса cSport могут быть использованы в качестве объектов данных, которые можно сопоставлять с условиями в правилах и использовать в действиях, определенных правилами.

Функция getsport является экземпляром класса cSport. В ней осуществляется подсчет результатов и выбор решения. Входными параметрами является ответы на вопросы экспертной системы.

4. Алгоритм работы экспертной системы

 

Когда вызывается функция getsport с соответствующими параметрами, в ней создаётся объект класса cSport, далее в зависимости от того, какие значения имеют параметры функции, в слот score класса cSport записывается количество баллов.

 

5. Реализация пользовательского интерфейса

 

Для реализации пользовательского интерфейса были использованы следующие технологии: HTML, CSS, JavaScript, PHP5.

Разработка производилась под операционной системой Ubuntu 9.10, с установленными на ней Apache2, PHP5.

Для связывания экспертной системы на языке CLIPS использовалось расширение для PHP phlips версии 0.5.1.

Выбор именно этих средств обусловлен, простотой и скоростью разработки.

Непосредственно интерфейс реализован на языке HTML, для визуального оформления применены CSS стили и JavaScript библиотека JQuery v1.3.2 с расширением JQuery Corner. Для навигации также используется JQuery.

Серверная часть, отвечающая за работу с CLIPS и бизнес-логику написана на PHP.

За работу с CLIPS отвечают несколько функций:_clear() - очистка экспертной системы_load ( string file ) - загрузка файла _function_call ( string function_name [, string arguments] ) - вызов функции

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

 

Результаты работы экспертной системы представлены на скриншотах. Вопросы задаваемые пользователю (рисунки 2, 3, 4). По вопросам можно перемещается вперёд и назад, для этого используются кнопки Далее и Назад. В конце тестирования появится копка Результат. После нажатия которой выведутся результаты тестирования (рисунки 5, 6).

 

Рисунок 2 - Тестирование пользователя

 

Рисунок 3 - Тестирование пользователя

Рисунок 4 - Тестирование пользователя, последний вопрос

экспертный система данная база

Рисунок 5 - Результат тестирования

Рисунок 6 - Результат тестирования

Заключение

 

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

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

Список используемых источников

 

1. Частиков А.П. Разработка экспертных систем. Среда CLIPS / А.П. Частиков, Т.А. Гаврилова, Д.Л. Белов. - СПб.: БХВ-Петербург, 2003. - 608 с

2. Джарратано Д. Экспертные системы: принципы разработки и программирование / Д. Джарратано, Г. Райли. - М.: Вильямс, 2006. - 1152 с.

. Одинцов Б.Е. Проектирование экономических экспертных систем / Б.Е. Одинцов. - М.: ЮНИТИ, 1996.-166 с.

Приложение

 

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

 

Файл expert.clp

(defclass cSport

(is-a USER)

(role concrete)

(pattern-match reactive)

(slot score (create-accessor read-write) (storage local) (default 1))

)

(deffunction getsport (?type ?sex ?season ?skates ?swim ?sport ?shoot ?dance ?ball ?type_gim ?type_swim)

(make-instance getsport of cSport)

(if (and (eq ?type 1) (and (eq ?season 2) (eq ?ball 1)))

(send [getsport] put-score (+ (send [getsport] get-score) 1))

)

(if (and (and (eq ?type 1) (eq ?sex 1)) (and (eq ?season 1) (eq ?skates 1)))

(send [getsport] put-score (+ (send [getsport] get-score) 2))

)

(if (and (and (eq ?type 1) (eq ?sex 1)) (and (eq ?season 1) (eq ?skates 2)))

(send [getsport] put-score (+ (send [getsport] get-score) 3))

)

(if (and (eq ?type 1) (and (e