Разработка экспертной системы
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
ыслу с термином, используемым в информационно-поисковых системах (ИПС) и системах управления базами данных (СУБД) для обозначения всех данных (в первую очередь долгосрочных), хранимых в системе.
База знаний (БЗ) в ЭС предназначена для хранения долгосрочных данных, описывающих рассматриваемую область (а не текущих данных), и правил, описывающих целесообразные преобразования данных этой области.
Решатель, используя исходные данные из рабочей памяти и знания из БЗ, формирует такую последовательность правил, которые, будучи примененными к исходным данным, приводят к решению задачи.
Компонент приобретения знаний автоматизирует процесс наполнения ЭС знаниями, осуществляемый пользователем-экспертом.
Объяснительный компонент объясняет, как система получила решение задачи (или почему она не получила решение) и какие знания она при этом использовала, что облегчает эксперту тестирование системы и повышает доверие пользователя к полученному результату.
Диалоговый компонент ориентирован на организацию дружественного общения с пользователем как в ходе решения задач, так и в процессе приобретения знаний и объяснения результатов работы.
Рисунок 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