Экспертная система распознавания кактусов

Автор работы: Пользователь скрыл имя, 17 Октября 2011 в 00:12, курсовая работа

Описание

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

Содержание

Введение 3
Архитектура экспертной системы 7
Классификация экспертных систем 10
Классификация моделей представления знаний 13
Тема курсового проекта 15
Блок-схема программы 16
Код программы 18
Использованная литература 27

Работа состоит из  1 файл

Готовый вариант.doc

— 965.50 Кб (Скачать документ)
    1. как правила используют информацию пользователя;
    2. почему использовались (не использовались) данные правила;
    3. какие были сделаны выводы. Все объяснения даются на ограниченном естественном языке.

        Эта схема даёт предварительное  представление об ЭС. Важно отметить, что архитектура реальных экспертных систем различается в первую очередь по следующим характеристикам: 1) способ представления данных и знаний; 2) состав используемых знаний; 3) методы работы интерпретатора. Выбор тех или иных характеристик при проектировании экспертной системы определяется в основном свойствами решаемых задач и желаемыми свойствами системы.

 

Классификация экспертных систем

    Общепринятая  классификация экспертных систем отсутствует, однако наиболее часто экспертные системы  различают по назначению, предметной области, методам представления  знаний, динамичности и сложности:  

    

 

    По  назначению классификацию экспертных систем можно провести следующим образом:

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

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

    Классификация экспертных систем по методам представления знаний делит их на традиционные и гибридные. Традиционные экспертные системы используют, в основном, эмпирические модели представления знаний и исчисление предикатов первого порядка. Гибридные экспертные системы используют все доступные методы, в том числе оптимизационные алгоритмы и концепции баз данных.

    По  степени сложности экспертные системы делят на поверхностные и глубинные. Поверхностные экспертные системы представляют знания в виде правил «ЕСЛИ-ТО». Условием выводимости решения является безобрывность цепочки правил. Глубинные экспертные системы обладают способностью при обрыве цепочки правил определять (на основе метазнаний) какие действия следует предпринять для продолжения решения задачи. Кроме того, к сложным относятся предметные области в которых текст записи одного правила на естественном языке занимает более 1/3 страницы.

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

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

  • подсистема моделирования внешнего мира;
  • подсистема связи с внешним окружением.

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

 

Классификация моделей представления знаний

В настоящее  время разработано множество  моделей представления знаний. Имея обобщенное название, они различаются  по идеям, лежащим в их основе, с  точки зрения математической обоснованности. Типы моделей показаны на рисунке. 

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

  • продукционные модели – модель основанная на правилах, позволяет представить знание в виде предложений типа: «ЕСЛИ условие, ТО действие». Продукционная модель обладает тем недостатком, что при накоплении достаточно большого числа (порядка нескольких сотен) продукций они начинают противоречить друг другу;
  • сетевые модели (или семантические сети) – в инженерии знаний под ней подразумевается граф, отображающий смысл целостного образа. Узлы графа соответствуют понятиям и объектам, а дуги – отношениям между объектами. Обладает тем недостатком, что однозначного определения семантической сети в настоящее время отсутствует;
  • фреймовая модель – основывается на таком понятии как фрейм (англ. frame – рамка, каркас). Фрейм – структура данных для представления некоторого концептуального объекта. Информация, относящаяся к фрейму, содержится в составляющих его слотах. Слоты могут быть терминальными либо являться сами фреймами, т.о. образуя целую иерархическую сеть.

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

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

 

Тема  курсового проекта

       Для данного курсового проекта мною была выбрана тема «Экспертная система  распознавания кактусов». Не смотря на узкую специализированность данной тематики подобная программа может  быть полезной в области торговли или в процессе создания и использования электронного энциклопедического справочника. Методика распознавания различных видов кактусов сведена к описанию внешнего вида и строения растения.

       Применяя  данную систему в сфере торговли, например через интернет, покупатель может подобрать для себя конкретное растение, существенно сузив область поиска.

       Программа представляет собой статическую  систему с продукционной моделью  представления данных. Для её написания  была использована среда программирования CLIPS.

 

Блок-схема  программы

 
 
 

 

 

Код программы

(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

Информация о работе Экспертная система распознавания кактусов