Автор работы: Пользователь скрыл имя, 21 Октября 2013 в 09:18, курсовая работа
Цели работы: разработать модель ЭС предназначенной для выбора автомобиля для семьи.
В связи с поставленной целью можно сформулировать следующие задачи:
1. Изучение литературы;
2. Изучение рынка автомобилей;
3. Изучение основных характеристик автомобилей;
4. Создание базу данных по изучаемому вопросу;
5. Реализация модели ЭС в среде VisualStudio 2012 на языке Basic.
Введение 3
Раздел 1Экспертные системы 4
1.1 Основные понятия ЭС 4
1.2 История развития ЭС 7
1.3 Классификация ЭС 11
1.4 Структура ЭС 17
1.5 Правила логического вывода ЭС 20
Раздел 2 Среда программирования 21
Раздел 3 Предметная область 23
4.1 Создание программы 25
Заключение 31
Список использованной литературы 32
Приложение 1 Исходный код программы 33
Приложение 2 Результаты тестирования 38
Существует множество признаков, по которым можно классифицировать все экспертные системы. По степени сложности различаю поверхностныеиглубинныеЭС, по степени связанности правил продукционные ЭС делят насвязныеимало связные, по типу предметной области выделяютстатические, динамическиеЭСиЭС реального времении т.п. Процесс создания ЭС занимает немало времени, поэтому интерес представляет классификация ЭС по стадиям разработки:
Масштабы разработки ЭС предопределили создание специальных инструментальных средств, представленное на рис. 2.
Рис.2 – Инструментальные средства разработки экспертных систем |
Инструментальные средства построения экспертных систем представляют собой системы программирования, облегчающие работу по созданию экспертных систем.Различают следующие типы инструментальных средствразработки:
Язык программирования –это механизм абстрагирования. Он дает возможность программисту описать вычисления абстрактно и в то же время позволяет компилятору перевести это описание в детализированную форму, необходимую для выполнения на компьютере. Языки программирования существуют только для преодоления разрыва в уровне абстракции. Языки программирования, применяемые в экспертных системах, как правило, относятся к числу либо проблемно-ориентированных (типа Фортрана или Паскаля), либо языков манипулирования символами (типа Лиспа или Пролога). Проблемно-ориентированные языки предназначены для решения проблем определенных классов. Языки манипулирования над символами предназначены для решения прикладных задач в области искусственного интеллекта.[7]
Ещё одним распространенным инструментальным средством разработки экспертных систем является CLIPS (С Language Integrated Production System). Представляя собой логически полную среду, содержащую встроенный редактор и средства отладки, CLIPS является оболочкой ЭС. CLIPS использует продукционную модель представления знаний и поэтому содержит три основных элемента:
1. Список фактов;
2. Базу знаний;
3. Блок вывода;
Принципиальным отличием данной системы от аналогов является то, что она полностью реализована на языке С. В CLIPS используется оригинальный LIPS-подобный язык программирования, ориентированный на разработку ЭС. Кроме того, CLIPS поддерживает еще две парадигмы программирования: объектно-ориентированную и процедурную.
Языки, реализующие ту или
иную модель представления знаний,
называют языками представления
знаний. Напомню, что традиционно
выделяют четыре модели представления
знаний – логическую, продукционную,
фреймовую, сетевую, и соответственно
можно говорить о четырех типах
языков представления знаний. Наибольшее
представительство имеют
Интегрированная среда ART объединяет два формализма представления знаний: правила и фреймы, причем приоритет здесь отдается правилам. Модели вывода в среде ART традиционны: прямой и обратный, однако они могут объединяться в один механизм вывода. В отличие от ART, инструментальное средство KEE является средой, в основе которой лежат фреймы. Причем здесь слоты фреймов могут бытьсвязаны с процедурными знаниями. Описание объектов и правил в KEE представляется в виде иерархии фреймов. Каждый объект представляется слотами, которые могут иметь различные аспекты; последние, в свою очередь, могут иметь множественные значения.
Оболочки содержат все
компоненты экспертной системы в
готовом виде. Оболочки представляют
собой экспертную систему с удаленными
из нее специфичными для соответствующей
области знаниями, в которой оставлены
машина вывода и обеспечивающие средства.
Оболочки предоставляют структурные
и встроенные средства, превращающие
разработку экспертной системы в
простой и быстрый процесс. Однако
им не хватает общности и гибкости;
их применение ограничивается лишь некоторым
классом задач, и они значительно
снижают предоставляемые
Следует отметить, что первоначально разработка ЭС осуществлялась на традиционных алгоритмических языках программирования с реализацией на универсальных ЭВМ. В дальнейшем были созданы как специализированные аппаратные и программные средства, так и средства автоматизации программирования. Появились и оболочки ЭС, которые по задумке авторов должны были существенно упростить (и удешевить) разработку систем. Однако в полной мере эти надежды не оправдались. Это связано с принципиальной сложностью использования конкретной ЭС для решения совершенно других задач. Еще более проблематичной представляются попытки создания так называемых универсальных оболочек, пригодных для применения «во всех» предметных областях.
При создании ЭС наибольшую трудность представляет разработка совершенной базы знаний. Разработка любой модели – в том числе и модели знаний – представляет собой полностью неформализуемый процесс, содержащий элементы творчества и строго формальных действий. Особенности ЭС, отличающие их от обычных программ, заключаются в том, что они должны обладать:
1)Компетентностью, а именно:
2) Возможностью к символьным рассуждениям, а именно:
На жаргоне искусственного интеллекта символ – это строка знаков, соответствующая содержанию некоторого понятия. Когда отношения представлены в ЭС они называются символьными структурами.
3)Глубиной, а именно:
4) Самосознанием, а именно:
Существует ещё одно важное отличие ЭС. Если обычные программы разрабатываются так, чтобы каждый раз порождать правильный результат, то ЭС разработаны с тем, чтобы вести себя как эксперты. Традиционные программы для решения сложных задач, тоже могут делать ошибки. Но их очень трудно исправить, поскольку алгоритмы, лежащие в их основе, явно в них не сформулированы. ЭС, подобно людям, имеют потенциальную возможность учиться на своих ошибках.
В работе ЭС можно выделить два основных режима: режим приобретения знаний и режим решения задачи (режим консультации или режим использования). В режиме приобретения знаний общение с ЭС осуществляет эксперт (при помощи инженера знаний).
Используя компонент приобретения знаний, эксперт описывает проблемную область в виде совокупности фактов и правил. Отметим, что этому режиму при традиционном подходе к программированию соответствуют этапы: алгоритмизации, программирования и отладки, выполняемые программистом.
Хорошо построенная ЭС имеет
возможность самообучаться на решаемых
задачах, пополняя автоматически свою
БЗ результатами полученных выводов
и решений.
При разработке экспертной системы принято делить ее на три основных модуля:
-база знаний;
-машина логического вывода;
-интерфейс с пользователем.
База знаний содержит знания, относящиеся к конкретной прикладной области, в том числе отдельные факты, правила, описывающие отношения или явления, а также, возможно, методы, эвристики и различные идеи, относящиеся к решению задач в этой прикладной области.
Машина логического вывода умеет активно использовать информацию, содержащуюся в базе знаний.[3]
Интерфейс с пользователем
отвечает за бесперебойный обмен
информацией между
Принято рассматривать машину вывода и интерфейс как один крупный модуль, обычно называемый оболочкой экспертной системы, или, для краткости, просто оболочкой.
В описанной выше структуре собственно знания отделены от алгоритмов, использующих эти знания. Такое разделение удобно по следующим соображениям. База знаний, очевидно, зависит от конкретного приложения. С другой стороны, оболочка, по крайней мере, в принципе, независима от приложений. Таким образом, разумный способ разработки экспертной системы для нескольких приложений сводится к созданию универсальной оболочки, после чего для каждого приложения достаточно подключить к системе новую базу знаний. Разумеется, все эти базы знаний должны удовлетворять одному и тому же формализму, который оболочка "понимает". Практический опыт показывает, что для сложных экспертных систем сценарий с одной оболочкой и многими базами знаний работает, не так гладко, как бы этого хотелось, за исключением тех случаев, когда прикладные области очень близки. Тем не менее, даже если переход от одной прикладной области к другой требует модификации оболочки то, по крайней мере, основные принципы ее построения обычно удается сохранить. Для создания оболочки, при помощи которой можно проиллюстрировать основные идеи и методы в области экспертных систем, можно придерживаться следующего плана:
-выбрать формальный аппарат для представления знаний.
-разработать механизм логического вывода, соответствующий этому формализму.
-добавить средства взаимодействия с пользователем.
-обеспечить возможность работы в условиях неопределенности.
-структура экспертной системы представлена следующими структурными элементами:
1)База знаний –механизм представления знаний в конкретной предметной области и управления ими;
2)Механизм логических выводов – делает логические выводы на основании знаний, имеющихся в базе знаний;
3)Пользовательский интерфейс – используется для правильной передачи ответов пользователю;
4)Модуль приобретения знаний – служит для получения знаний от эксперта, поддержки базы знаний и дополнения ее при необходимости;
5)Модуль советов и объяснений – механизм, способный не только давать заключение, но и представлять различные комментарии, прилагаемые к этому заключению, и объяснять его мотивы. В противном случае пользователю будет трудно понять заключение.
Такое понимание необходимо, если заключение используется для консультации или оказании помощи при решении каких-либо вопросов. Кроме того, с его помощью эксперт определяет, как работает система, и позволяет точно выяснить, как используются знания, предоставленные им, на схеме 1.
Схема1.
Структура экспертной системы
Под выводом в ЭС понимается
доказательство того, что из множества
предположений следует
В экспертной системе, базирующейся на правилах, запросы пользователя трансформируются в форму, сопоставимую с формой правил базы знаний.Механизм вывода инициализирует процесс сопоставления, начиная с «верхнего» правила, обращение к правилу называется «вызовом». Вызов соответствующих правил в процессе сопоставления продолжается до тех пор, пока не произошло сопоставление или не исчерпана вся БЗ, а значение не найдено. Если MB обнаруживает, что можно вызвать более одного правила,то запускается процесс разрешения конфликта. При разрешении конфликта приоритет отдается обычно тем правилам, которые более конкретны, либо правилам, которые учитывают больше текущих данных.[8]