Языки ориентированные на разработку экспертных систем

Автор работы: Пользователь скрыл имя, 22 Января 2012 в 19:23, реферат

Описание работы

Другие подобные программы — поисковые или справочные (энциклопедические) системы. По запросу пользователя они предоставляют наиболее подходящие (релевантные) разделы базы статей (представления об объектах областей знаний, их виртуальную модель). Например, в Википедии аналогами статических визардов являются её структуры (типы данных, в терминологии ООП - классы и интерфейсы) - категории, списки, шаблоны, порталы, которые по названию объекта выдают пользователю все его имеющиеся для данной структуры Википедии аттрибуты.

Содержание работы

Введение…………………………………………………………………….3
1.Четыре категории инструментальных программ, применяемые при проектировании………………………………………….4
1.1 Оболочки экспертных систем…………………………………………4
1.2 Языки программирования высокого уровня………………………….4
1.3 Среда программирования, поддерживающая несколько парадигм…5
1.4 Дополнительные модули………………………………………………5
2.Языки программирования высокого уровня……………………………7
2.1Языки описания порождающих правил……………………………….7
2.2Объектно-ориентированные языки…………………………………...10
2.3Языки логического программирования экспертных систем………..12
Заключение………………………………………………………………..14
Список источников………………………………………………………..16

Файлы: 1 файл

языки ориентированные на разработку экспертных систем. Андрианов А.А. 07-С1.doc

— 109.50 Кб (Скачать файл)

Российский  госсударственный университет  инновационных технологий и предпринимательства 

ПЕНЗЕНСКИЙ  ФИЛИАЛ 

Кафедра управление инновационными ресурсами 
 
 
 
 
 
 

Доклад

по  дисциплине:

«Информационная поддержка принятия решения»

на  тему:

Языки ориентированные  на разработку экспертных систем 
 
 
 
 
 
 
 
 
 
 
 
 
 

Выполнил:

студент гр. 07с1 Андрианов А.А.

Проверил:

Кочегаров И.И. 
 
 
 
 

Пенза, 2012г.

     Содержание

     Введение…………………………………………………………………….3

    1.Четыре  категории инструментальных программ, применяемые при проектировании………………………………………….4

     1.1 Оболочки экспертных систем…………………………………………4

     1.2 Языки программирования высокого  уровня………………………….4

     1.3 Среда программирования, поддерживающая  несколько парадигм…5

     1.4 Дополнительные модули………………………………………………5

     2.Языки  программирования высокого уровня……………………………7

     2.1Языки  описания порождающих правил……………………………….7

     2.2Объектно-ориентированные  языки…………………………………...10

     2.3Языки  логического программирования экспертных  систем………..12

     Заключение………………………………………………………………..14

     Список  источников………………………………………………………..16 
 
 
 
 
 
 

     Введение

     Экспертная  система (ЭС, expert system) — компьютерная программа, способная частично заменить специалиста-эксперта в разрешении проблемной ситуации. ЭС начали разрабатываться исследователями искусственного интеллекта в 1970-х годах, а в 1980-х получили коммерческое подкрепление.

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

     Похожие действия выполняет программа-мастер (wizard). Мастера применяются как в системных программах, так и в прикладных для интерактивного общения с пользователем (например, при установке ПО). Главное отличие мастеров от ЭС — отсутствие базы знаний; все действия жестко запрограммированы. Это просто набор форм для заполнения пользователем.

     Другие  подобные программы — поисковые или справочные (энциклопедические) системы. По запросу пользователя они предоставляют наиболее подходящие (релевантные) разделы базы статей (представления об объектах областей знаний, их виртуальную модель). Например, в Википедии аналогами статических визардов являются её структуры (типы данных, в терминологии ООП - классы и интерфейсы) - категории, списки, шаблоны, порталы, которые по названию объекта выдают пользователю все его имеющиеся для данной структуры Википедии аттрибуты. 
 
 
 

     1.Четыре  категории инструментальных  программ, применяемые  при проектировании.

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

     1.1 Оболочки экспертных  систем

       Оболочки экспертных систем (expert system shells). Системы этого типа создаются, как правило, на основе какой-нибудь экспертной системы, достаточно хорошо зарекомендовавшей себя на практике. При создании оболочки из системы-прототипа удаляются компоненты, слишком специфичные для области ее непосредственного применения, и оставляются те, которые не имеют узкой специализации. Примером может служить система EMYCIN, созданная на основе прошедшей длительную "обкатку" системы MYCIN. В EMYCIN сохранен интерпретатор и все базовые структуры данных — таблицы знаний и связанный с ними механизм индексации. Оболочка дополнена специальным языком, улучшающим читабельность программ, и средствами поддержки библиотеки типовых случаев и заключений, выполненных по ним экспертной системой. Дальнейшим развитием оболочки EMYCIN явились системы S.1 и М.4, в которых механизм построения цепочки обратных рассуждений, заимствованный в EMYCIN, объединен с фреймоподобной структурой данных и дополнительными средствами управления ходом рассуждений. 

     1.2 Языки программирования  высокого уровня

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

     1.3 Среда программирования, поддерживающая несколько  парадигм

       Среда программирования, поддерживающая  несколько парадигм (multiple-paradigm programming environment). Средства этой категории включают несколько программных модулей, что позволяет пользователю комбинировать в процессе разработки экспертной системы разные стили программирования. Среди первых проектов такого рода была исследовательская программа LOOP, которая допускала использование двух типов представления знаний: базирующегося на системе правил и объектно-ориентированного . На основе этой архитектуры во второй половине 1980-х годов было разработано несколько коммерческих программных продуктов, из которых наибольшую известность получили KEE, KnowledgeCraft и ART. Эти программы предоставляют в распоряжение квалифицированного пользователя множество опций и для последующих разработок, таких как КАРРА и CLIPS, и стали своего рода стандартом. Однако освоить эти языки программистам далеко не так просто, как языки, отнесенные нами к предыдущей категории. 

     1.4 Дополнительные модули

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

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

     2.Языки программирования высокого уровня 

     Языки высокого уровня являются в руках  опытного программиста прекрасным средством  быстрого создания прототипа экспертной системы, позволяют обеспечить гибкость процесса разработки при одновременном снижении материальных затрат и сокращении сроков выполнения проекта. Как правило, среда разработки таких языков обеспечивает совмещение интерфейса разработки и времени выполнения, что позволяет совместить вставку, редактирование и тестирование фрагментов программного кода. Но пользовательский интерфейс такой среды уступает интерфейсу оболочек по части "дружественности", что, правда, не мешает опытному программисту быстро ее освоить. Языки описания порождающих правил, объектно-ориентированные языки и процедурные дедуктивные системы предоставляют проектировщику экспертных систем значительно большую свободу действий, чем оболочки. Особенно это касается программирования процедур управления и обработки неопределенности. Как отмечалось выше, обычно оболочка имеет встроенный режим управления и методы обработки неопределенности, которые не могут быть затем изменены в процессе построения на ее основе конкретной экспертной системы. Та гибкость, которую предоставляют программисту языки высокого уровня, особенно важна при создании экспериментальных систем, в которых заранее выбрать оптимальный режим управления вряд ли возможно. 

     2.1Языки описания порождающих правил

     Но, естественно, возможности языков высокого уровня также не беспредельны —  каждый из них имеет свои ограничения. Например, в языке OPS5 возможности динамической памяти ограничены размещением векторов в рабочей памяти, что не позволяет строить в ней рекурсивные структуры данных, такие как графы или деревья. При разработке системы MORE  из-за этого возникли серьезные сложности . Некоторые типы структур управления ходом выполнения, например рекурсивные и итерационные циклы, также с трудом реализуются в этом языке. В общем, это та цена, которую приходится платить за относительную простоту программного кода на языке OPS5 и эффективность его выполнения. В ранних моделях систем, основанных на порождающих правилах, до 90% времени работы уходило на выполнение операций сопоставления условий. Но позднее Форджи обратил внимание на возможные источники низкой эффективности такого упрощенного подхода. Алгоритм сопоставления RETE, предложенный Форджи и реализованный в языках описания порождающих правил семейства OPS, базируется на двух наблюдениях.

  • В левых частях порождающих правил, которые размещаются в рабочей памяти, часто встречаются повторяющиеся условия. Если одно и то же условие встречалось в N правилах, то при прежнем упрощенном подходе выполнялось N операций сопоставления. Это пример внутрицикловой итерации (within-cycle iteration).
  • Простейший подход при сопоставлении условий предполагает просмотр в каждом цикле всех элементов рабочей памяти, хотя содержимое рабочей памяти от цикла к циклу изменяется очень мало. Форджи назвал это межцикловой итерацией (between-cycle iteration).

     Предложенный  Форджи алгоритм значительно снижает количество внутрицикловых итераций за счет использования сети сортировки, имеющей древовидную структуру. Выражения в левой части порождающих правил компилируются и включаются в эту сеть, а алгоритм сопоставления довольно просто определяет конфликтующее множество, просматривая состояние сети в текущем цикле. Количество межцикловых итераций сокращается за счет обработки множества лексем, которые являются индикаторами удовлетворения условий, размещенных в рабочей памяти. Это множество лексем отображает изменения, происходящие в рабочей памяти от цикла к циклу, и таким образом позволяет выявить те условия, которые подлежат проверке. Поскольку никаких других процессов управления, кроме цикла распознавание-действие, в системе не существует, то обработать полученное в результате конфликтующее множество не представляет особого труда. Механизм разрешения конфликтов выполняет это, не обращая внимания на другие аспекты текущего контекста вычислений. Совершенно очевидно, что попытка использовать рекурсивные структуры данных потребует серьезного усложнения описанного процесса обработки правил. Точно так же и изменение режима управления приведет к тому, что механизм разрешения конфликтов вынужден будет анализировать дополнительную информацию. Разработчики языков, подобных OPS, всегда вынуждены искать компромисс между мощностью выразительных средств языка и эффективностью выполнения программного кода. До сих пор в среде исследователей предметом оживленных дискуссий является вопрос о том, удалось ли разработчикам OPS5 найти такой компромисс. Разработанные позже языки КЕЕ, КАРРА и CLIPS унаследовали от OPS5 синтаксис и механизм активизации правил. Все эти языки используют различные версии алгоритма RETE при формировании множества конфликтующих правил. Преодоление недостатков программирования порождающих правил лежит не на пути усложнения существующих языков программирования, а скорее на пути объединения их с другими парадигмами программирования, позволяющими использовать рекурсивные структуры данных и управления. Примером такого объединения может служить комбинирование порождающих правил и фреймов, что позволяет сопоставлять условия, специфицированные в правилах, с содержимым слотов фреймов . Для решения проблем управления в последнее время все чаще используется включение наборов правил в более мощную вычислительную среду, которая позволяет работать со списками заявок и с множеством источников знаний . 
 
 

Информация о работе Языки ориентированные на разработку экспертных систем