Экспертная система распознавания кактусов
ФЕДЕРАЛЬНОЕ
АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО
ОБРАЗОВАНИЯ
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ
ПРИБОРОСТРОЕНИЯ И ИНФОРМАТИКИ
Курсовая работа
по дисциплине: «Экспертные системы»
на тему:
«Экспертная система
распознавания кактусов»
Работу выполнил:
студент 4 курса
дневного отделения
факультет ИТ спец. 220201
группа ИТ-8
Мищенко
C.А.
Преподаватель:
Текин
А.Д.
Москва, 2011
Содержание
Введение
Система является интеллектуальной, если она обладает знаниями и умеет использовать их для достижения сформулированной цели. Знания – это то, без чего нет интеллектуальной системы. Экспертные системы (в дальнейшем ЭС) явились первыми действительно интеллектуальными системами и, в конечном счете, интеллектуальность определила их коммерческий успех. Эксперт – это человек, который благодаря обучению и опыту может делать то, что мы все, остальные люди делать не умеем. Эксперты работают профессионально, быстро и эффективно. Они хорошо умеют распознавать в проблемах, с которыми сталкиваются, примеры тех типовых проблем, с которыми они уже знакомы. Очень важно подчеркнуть, что эксперт должен не только знать, но и уметь. Именно этим свойством отличаются базы данных от баз знаний – базы знаний активны.
Искусственный интеллект (ИИ, англ. Artificial intelligence, AI), как научная дисциплина, состоит из нескольких крупных течений, одно из которых – ЭКСПЕРТНЫЕ СИСТЕМЫ. ЭС это направление исследований в области искусственного интеллекта по созданию вычислительных систем, умеющих принимать решения, схожие с решениями людей - экспертов в заданной предметной области. Как правило, ЭС создаются для решения практических задач в некоторых узкоспециализированных областях, где большую роль играют знания «бывалых» специалистов. ЭС были первыми разработками, которые смогли привлечь большое внимание к результатам исследований в области искусственного интеллекта.
ЭС имеют одно большое отличие от других систем искусственного интеллекта: они не предназначены для решения каких-то универсальных задач, как например нейронные сети или генетические алгоритмы. ЭС предназначены для качественного решения задач в определенной разработчиками области, в редких случаях – областях. Характерными чертами ЭС являются:
- четкая ограниченность предметной области
- способность принимать решения в условиях неопределенности
- способность объяснять ход и результат решения понятным для пользователя способом
- четкое разделение декларативных и процедурных знаний (фактов и механизмов вывода)
- способность пополнять базу знаний, возможность наращивания системы
- результат выдается в виде конкретных рекомендаций для действий в сложившейся ситуации, не уступающих решениям лучших специалистов
- ориентация на решение неформализованных (способ формализации пока неизвестен) задач
- алгоритм решения не описывается заранее, а строится самой экспертной системой
- отсутствие гарантии нахождения оптимального решения с возможностью учиться на ошибках
Экспертное знание – это сочетание теоретического понимания проблемы и практических навыков ее решения, эффективность которых доказана в результате практической деятельности экспертов в данной области. Фундаментом ЭС любого типа является база знаний, которая составляется на основе экспертных знаний специалистов. Правильно выбранный эксперт и удачная формализация его знаний позволяет наделить ЭС уникальными и ценными знаниями. Врач, к примеру, хорошо диагностирует болезни и эффективно назначает лечение, не потому, что он обладает некими врожденными способностями, а потому что имеет качественное медицинское образование и большой опыт в лечении своих пациентов. Поэтому ценность всей экспертной системы как законченного продукта на 90% определяется качеством созданной базы знаний.
ЭС – это не простая программа, которая пишется одним или несколькими программистами, она является плодом совместной работы экспертов в данной предметной области, инженеров по знаниям и программистов, но стоит отметить, что встречаются случаи, когда программы пишутся самими экспертами в данной области.
Эксперт
предоставляет необходимые
Первую ЭС, которую назвали Dendral, разработали в Стэнфорде в конце 1960-х г.г. Эта была ЭС, определяющая строение органических молекул по химическим формулам и спектрографическим данным о химических связях в молекулах. Ценность Dendral заключалась в следующем. Органические молекулы, как правило, очень велики и поэтому число возможных структур этих молекул также велико. Благодаря знаниям экспертов-химиков, заложенных в ЭС, правильное решение из миллиона возможных находилось всего за несколько попыток. Принципы и идеи, заложенные в Dendral оказались настолько эффективными, что они до сих пор применяются в химических и фармацевтических лабораториях по всему миру.
ЭС
Dendral одной из первых использовала эвристические
знания специалистов для достижения
уровня эксперта в решении задач,
однако методика современных ЭС связана
с другой разработкой – Myсin. В ней
использовались знания экспертов медицины
для диагностики и лечения специального
менингита и бактериальных инфекций крови.
ЭС Mycin, разработанная в том же Стэнфорде
в середине 1970-х г.г., одной из первых обратилась
к проблеме принятия решений на основе
ненадежной или недостаточной информации.
Все ЭС Mycin были основаны на принципах
управляющей логики, соответствующих
специфике предметной области. Многие
методики разработки экспертных систем,
использующиеся сегодня, были впервые
разработаны в рамках проекта Mycin.
На
сегодняшний день создано уже
большое количество ЭС. С помощью
них решается широкий круг задач,
но исключительно в
- Передача ЭС «глубоких» знаний о предметной области является большой проблемой. Как правило, это является следствием сложности формализации эвристических знаний экспертов.
- ЭС неспособны предоставить осмысленные объяснения своих рассуждений, как это делает человек. Как правило, экспертные системы всего лишь описывают последовательность шагов, предпринятых в процессе поиска решения.
- Отладка и тестирование любой компьютерной программы является достаточно трудоемким делом, но проверять ЭС особенно тяжело. Это является серьезной проблемой, поскольку ЭС применяются в таких критичных областях, как управление воздушным и железнодорожным движением, системами оружия и в ядерной промышленности.
- ЭС обладают еще одним большим недостатком: они неспособны к самообучению. Для того, чтобы поддерживать ЭС в актуальном состоянии необходимо постоянное вмешательство в базу знаний инженеров по знаниям.
Архитектура экспертной системы
Компонента взаимодействия (интерфейс пользователя) – комплекс программ, реализующих взаимный диалог пользователя с ЭС.
БЗ – ядро ЭС, которое является совокупностью знаний предметной области, записанной на машинный носитель в форме, понятной пользователю.
Интерпретатор (решатель, машина вывода, блок логического вывода) – программа, моделирующая ход рассуждений эксперта на основании знаний, имеющихся в БЗ.
Подсистема объяснений – программа, позволяющая получить ответы на вопросы: «Как и почему было получено то или иное решение?» и т.п.
Подсистема приобретения знаний – программа, предоставляющая инженеру по знаниям возможность создавать или наращивать БЗ в диалоговом режиме. Включает в себя систему вложенных меню, шаблонов языка представления, подсказок и других сервисных средств.
Такая структура является минимальной, но обязательной и обусловлена следующими принципами:
- мощность ЭС обусловлена мощностью базы знаний (БЗ) и возможностью её пополнения, а также используемыми для её построения методами;
- знания
эксперта в основном являются
эвристическими, экспериментальными,
неопределенными, но
- учитывая
неформализованность решаемой
Третий,
практический принцип предъявляет
к системе следующие
1) способность вести диалог о решаемой задаче на языке, удобном пользователю (эксперту), и, в частности, приобретать в ходе диалога новые знания;
2) способность при решении задачи следовать линии рассуждения, понятной пользователю (эксперту);
3) способность объяснять ход своего рассуждения на языке, удобном для пользователя (эксперта), что необходимо как при использовании, так и при совершенствовании системы (т.е. при отладке и модификации базы знаний).
Первое
требование реализуется
ЭС работает в двух режимах: в режиме приобретения знаний и в режиме решения задач.
В режиме приобретения знаний в общении с экспертной системой участвует эксперт (через посредство инженера по знаниям). В этом режиме эксперт наполняет систему знаниями (правилами), которые позволят ей в режиме решения самостоятельно решать задачи из области экспертизы. Отметим, что режиму приобретения знаний в традиционном подходе к разработке программ соответствуют этапы алгоритмизации, программирования и отладки, выполняемые программистом.
В режиме приобретения знаний эксперт вводит в систему продукции об области экспертизы. Продукции (в более общей трактовке правила) представляются на естественном для пользователя языке. Объединение вновь вводимых продукций с базой знаний осуществляется компонентой приобретения знаний. Для того чтобы убедиться в достаточности знаний, эксперт дает системе тестовые примеры. В случае, если результат, полученный системой, не удовлетворяет эксперта, он с помощью объяснительной компоненты получает сведения о том, как был сформирован результат. По окончании процесса отладки система передается в эксплуатацию пользователям.
В режиме решения задач в общении с ЭС участвует пользователь, которого интересует результат и (или) способ получения решения. В этом режиме пользователь вводит данные о задаче, которые через интерфейс пользователя поступают в БД и процессор выполняет следующие действия:
- преобразует входные данные, представленные на ограниченном естественном языке, в представление на внутреннем языке системы;
- преобразует сообщения системы, выраженные на внутреннем языке, в сообщения на ограниченном естественном языке.
Интерпретатор
на основе входных данных, продукционных
правил и общих фактов о проблемной
области формирует решение
Обычно объяснительный блок сообщает следующее:
- как правила используют информацию пользователя;
- почему использовались (не использовались) данные правила;
- какие были сделаны выводы. Все объяснения даются на ограниченном естественном языке.
Эта схема даёт
Классификация экспертных систем
Общепринятая
классификация экспертных систем отсутствует,
однако наиболее часто экспертные системы
различают по назначению, предметной
области, методам представления
знаний, динамичности и сложности:
По назначению классификацию экспертных систем можно провести следующим образом:
- диагностика состояния систем, в том числе мониторинг (непрерывное отслеживание текущего состояния);
- прогнозирование развития систем на основе моделирования прошлого и настоящего;
- планирование и разработка мероприятий в организационном и технологическом управлении;
- проектирование или выработка четких предписаний по построению объектов, удовлетворяющих поставленным требованиям;
- автоматическое управление (регулирование);
- обучение пользователей и др.
По предметной области наибольшее количество экспертных систем используется в военном деле, геологии, инженерном деле, информатике, космической технике, математике, медицине, метеорологии, промышленности, сельском хозяйстве, управлении процессами, физике, филологии, химии, электронике, юриспруденции.
Классификация экспертных систем по методам представления знаний делит их на традиционные и гибридные. Традиционные экспертные системы используют, в основном, эмпирические модели представления знаний и исчисление предикатов первого порядка. Гибридные экспертные системы используют все доступные методы, в том числе оптимизационные алгоритмы и концепции баз данных.
По степени сложности экспертные системы делят на поверхностные и глубинные. Поверхностные экспертные системы представляют знания в виде правил «ЕСЛИ-ТО». Условием выводимости решения является безобрывность цепочки правил. Глубинные экспертные системы обладают способностью при обрыве цепочки правил определять (на основе метазнаний) какие действия следует предпринять для продолжения решения задачи. Кроме того, к сложным относятся предметные области в которых текст записи одного правила на естественном языке занимает более 1/3 страницы.
Классификация экспертных систем по динамичности делит экспертные системы на статические и динамические. Предметная область называется статической, если описывающие ее исходные данные не изменяются во времени. Статичность области означает неизменность описывающих ее исходных данных. При этом производные данные (выводимые из исходных) могут и появляться заново, и изменяться (не изменяя, однако, исходных данных).
Если исходные данные, описывающие предметную область, изменяются за время решения задачи, то предметную область называют динамической. В архитектуру динамической экспертной системы, по сравнению со статической, вводятся два компонента:
- подсистема моделирования внешнего мира;
- подсистема связи с внешним окружением.
Последняя осуществляет связи с внешним миром через систему датчиков и контроллеров. Кроме того, традиционные компоненты статической экспертной системы (база знаний и механизм логического вывода) претерпевают существенные изменения, чтобы отразить временную логику происходящих в реальном мире событий.
Классификация моделей представления знаний
В настоящее
время разработано множество
моделей представления знаний. Имея
обобщенное название, они различаются
по идеям, лежащим в их основе, с
точки зрения математической обоснованности.
Типы моделей показаны на рисунке.
Первый подход, называемый эмпирическим, основан на изучении принципов организации человеческой памяти и моделировании механизмов решения задач человеком. На основе этого подхода в настоящее время разработаны и получили наибольшую известность следующие модели:
- продукционные модели – модель основанная на правилах, позволяет представить знание в виде предложений типа: «ЕСЛИ условие, ТО действие». Продукционная модель обладает тем недостатком, что при накоплении достаточно большого числа (порядка нескольких сотен) продукций они начинают противоречить друг другу;
- сетевые модели (или семантические сети) – в инженерии знаний под ней подразумевается граф, отображающий смысл целостного образа. Узлы графа соответствуют понятиям и объектам, а дуги – отношениям между объектами. Обладает тем недостатком, что однозначного определения семантической сети в настоящее время отсутствует;
- фреймовая модель – основывается на таком понятии как фрейм (англ. frame – рамка, каркас). Фрейм – структура данных для представления некоторого концептуального объекта. Информация, относящаяся к фрейму, содержится в составляющих его слотах. Слоты могут быть терминальными либо являться сами фреймами, т.о. образуя целую иерархическую сеть.
Более подробно эти модели рассматриваются в соответствующих статьях. Условно в группу эмпирического подхода можно включить нейронные сети и генетические алгоритмы, относящиеся к бионическому (основано на предположении о том, что если в искусственной системе воспроизвести структуры и процессы человеческого мозга, то и результаты решения задач такой системой будут подобны результатам, получаемым человеком) направлению искусственного интеллекта. Особенностью моделей этого типа является широкое использование эвристик, что в каждом случае требует доказательства правильности получаемых решений.
Второй подход можно определить как теоретически обоснованный, гарантирующий правильность решений. Он в основном представлен моделями, основанными на формальной логике (исчисление высказываний, исчисление предикатов), формальных грамматиках, комбинаторными моделями, в частности моделями конечных проективных геометрий, теории графов, тензорными и алгебраическими моделями. В рамках этого подхода до настоящего времени удавалось решать только сравнительно простые задачи из узкой предметной области.
Тема курсового проекта
Для данного курсового проекта мною была выбрана тема «Экспертная система распознавания кактусов». Не смотря на узкую специализированность данной тематики подобная программа может быть полезной в области торговли или в процессе создания и использования электронного энциклопедического справочника. Методика распознавания различных видов кактусов сведена к описанию внешнего вида и строения растения.
Применяя данную систему в сфере торговли, например через интернет, покупатель может подобрать для себя конкретное растение, существенно сузив область поиска.
Программа
представляет собой статическую
систему с продукционной
Блок-схема программы
Код программы
(deffunction voprosi (?question $?allowed-values)
(printout t ?question)
(bind ?answer (read))
(if (lexemep ?answer)
then (bind ?answer (lowcase ?answer))
)
(while (not (member ?answer ?allowed-values)) do
(printout t ?question)
(bind ?answer (read))
(if (lexemep ?answer)
then (bind ?answer (lowcase ?answer))
)
)
?answer
)
(deffunction answerquest (?question)
(bind ?response (voprosi ?question yes no y n))
(if (or (eq ?response yes) (eq ?response y))
then TRUE
else FALSE
)
)
(defrule noansver""
(netotvet)
=>
(assert (repair "kypite drugoe rastenie."))
)
(defrule vopros1""
(not (repair ?))
=>
(if(answerquest "Vam nujen odinochnii kaktus s celnim steblem? (yes/no) ")
then
(assert (vopros-4))
else
(assert (vopros-2-2))
)
)
(defrule vopros-2-2""
(vopros-2-2)
(not (repair ?))
=>
(if(answerquest "Vam nujen odinochnii kaktus s steblem, sostoiashim iz pohojih drug na druga segmentov? (yes/no) ")
then
(assert (vopros-5))
else
(assert (vopros-2-3))
)
)
(defrule vopros-2-3""
(vopros-2-3)
(not (repair ?))
=>
(if(answerquest "Vam nujno rastenie imeushee vid kusta ili derevca c udlinennimi pobegami? (yes/no) ")
then
(assert (vopros-6))
else
(assert (vopros-2-4)))
)
(defrule vopros-2-4""
(vopros-2-4)
(not (repair ?))
=>
(if(answerquest "Vam nujno rastenie, obrazovannoe plotnim skopleniem pohojih drug na druga sharovidnih steblei? (yes/no) ")
then
(assert (vopros-7))
else
(assert (netotvet)))
)
(defrule vopros-4""
(vopros-4)
(not (repair ?))
=>
(bind ?response
(voprosi "Vam nujno rastenie s stolbovidnim cteblem i ego visota v 3 raza bolshe diametra, ili rastenie v vide shara? (stolb/shar) " stolb shar ))
(if (eq ?response stolb)
then
(assert (vopros-8)))
(if (eq ?response shar)
then
(assert (vopros-9)))
)
(defrule vopros-8""
(vopros-8)
(not (repair ?))
=>
(bind ?response
(voprosi "Kaktus s prodolnimi rebrami ili bez reber? (rebro/bez)
" rebro bez))
(if (eq ?response rebro)
then
(assert (otvet-12)))
(if (eq ?response bez)
then
(assert (otvet-11)))
)
(defrule vopros-9""
(vopros-9)
(not (repair ?))
=>
(if(answerquest "Na kaktuse horosho zametni vertikalnie rebra s vertikalnimi radami koluchek? (yes/no) ")
then
(assert (vopros-23))
else
(assert (vopros-9-1)))
)
(defrule vopros-9-1""
(vopros-9-1)
(not (repair ?))
=>
(if(answerquest "kaktus pokrit bugorkami raspolagaushimica spiralnimi riadami? (yes/no) ")
then
(assert (vopros-24))
else
(assert (vopros-9-2)))
)
(defrule vopros-9-2""
(vopros-9-2)
(not (repair ?))
=>
(if(answerquest "Poverhnost steblia pochti rovnaia? (yes/no) ")
then