Инструментальные средства экспертных систем.

В настоящее время имеется ряд средств, ускоряющих создание экспертных систем. Эти средства называются инструментальными (ИС), или инструментарием. Использование ИС сокращает время разработки ЭС в 3-5 раз. По своему назначению и функциональным возможностям инструментальные программы, применяемые при проектировании экспертных систем, можно разделить на четыре достаточно большие категории.

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

Системы этого типа создаются, как правило, на основе какой-нибудь экспертной системы, достаточно хорошо зарекомендовавшей себя на практике. При создании оболочки из системы-прототипа удаляются компоненты, слишком специфичные для области ее непосредственного применения, и оставляются те, которые не имеют узкой специализации. Примером может служить система EMYCIN, созданная на основе прошедшей длительную «обкатку» системы MYCIN. В EMYCIN сохранен интерпретатор и все базовые структуры данных – таблицы знаний и связанные с ними механизм индексации. Оболочка дополнена специальным языком, улучшающим читабельность программ, и средствами поддержки библиотеки типовых случаев и заключений, выполненных по ним экспертной системой.

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

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

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

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

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

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

Экспертные системы выполняются на ЭВМ следующих типов:

*     общего назначения;

*     ПЭВМ;

*     интеллектуальные рабочие станции;

*     последовательные символьные ЭВМ типа Лисп-машин и Пролог-машин;

*     параллельные символьные ЭВМ.

Программные инструментальные средства определяются следующими характеристиками:

ü    назначение;

ü    стадия существования;

ü    тип ИС;

ü    тип используемых методов и знаний;

ü    универсальность;

ü    основные свойства;

ü    среда функционирования.

Назначение позволяет определить, для работы в каких проблемных областях и для создания какой стадии ЭС предназначено ИС.

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

По типу ИС классифицируются следующим образом:

1)      символьные языки программирования, ориентированные на создание ЭС и систем ИИ (например, LISP, INTERLISP, SMALLTALK);

2)      языки инженерных знаний, т.е. языки высокого уровня, ориентированные на построение ЭС (например, OPS-5, LOOPS, KES, ПРОЛОГ);

3)      системы, автоматизирующие разработку ЭС (например, KEE, ART, TEIRESIAS, AGE, TIMM), их часто называют окружением для разработки систем ИИ, ориентированных на знания;

4)      оболочки ЭС – ЭС, не содержащие знаний ни о какой проблемной области (например, ЭКСПЕРТИЗА, EMYCIN, ЭКО, ЭКСПЕРТ).

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

*                ИС для создания простых ЭС

*                ИС для создания сложных ЭС

В настоящее время, как правило, ИС первого типа разрабатываются на ПЭВМ, а второго – на символьных ЭВМ, интеллектуальных рабочих станциях и ЭВМ общего назначения.

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

Универсальность задаётся совокупностью двух параметров:

ü    универсальностью представления знаний

ü    универсальностью функционирования

Универсальность представления характеризует способ представления знаний в ИС и принимает следующие значения: единое представление – ИС использует одну модель; интегральное представление – ИС допускает интегральное использование нескольких моделей; универсальное – ИС допускает интегральное использование всех основных моделей представления. К основным моделям представления относятся: правила; фреймы или семантические сети; логические модели (исчисление предикатов). Примерами ИС, в которых используется единое представление, является ПРОЛОГ, интегральное представление – CENTAUR, а универсальное – KEE, ART.

Универсальность функционирования характеризует механизмы, определяющие, как в ИС задается поведение системы, и принимает следующие значения: единый механизм функционирования – ИС использует один механизм функционирования; интегральное функционирование – ИС допускает интегральное использование нескольких механизмов функционирования; универсальное функционирование – ИС допускает интегральное использование всех основных механизмов. К основным механизмам относятся: процедурное программирование; обратное программирование; программирование, ориентированное на данные; программирование, ориентированное на правила.

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

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

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

В программировании, ориентированном на данные, активную роль играют данные, а не процедуры. Здесь со структурами активных данных связывают некоторые процедуры, которые активизируются тогда, когда осуществляется доступ к этим данным. Программирование, ориентированное на данные, позволяет организовать поведение независимых процессов, что трудно реализовать в процедурной и объектной парадигмах. Малая зависимость процессов означает, что они могут рассматриваться и программироваться отдельно. Однако при использовании парадигмы, управляемой данными, эти независимо запрограммированные процессы, могут взаимодействовать между собой без их изменения.

В программировании, ориентированном на правила, поведение определяется множеством правил вида условие – действие. Условие задаёт образ данных, при возникновении которого действие правила может быть выполнено. Правила в данной парадигме играют такую же роль, как и подпрограммы в процедурной парадигме. Однако если в процедурной парадигме поведение задаётся детерминированной последовательностью процедур, не зависящей от значений этих данных, то в парадигме, ориентированной на правила, поведение задаётся не заранее предписанной последовательностью правил, а формируется на основе тех данных и их значений, которые в текущий момент обрабатываются программой. Формирование поведения осуществляется по следующей схеме. Условия правил сопоставляются с текущими данными, и те правила, условия которых удовлетворяются значениями текущих данных, становятся претендентами на выполнение. Затем по определенному критерию осуществляется выбор одного правила среди претендентов и выполнение его. Если система допускает параллельную обработку, то все правила-претенденты могут выполняться одновременно. Таким образом, правила выполняются в порядке, предписываемом теми образцами данных, которые, как правило, независимы друг от друга. Поэтому подход, ориентированный на правила, удобен для описания поведения, гибко и разнообразно реагирующего на большое многообразие состояний данных.

Основные свойства определяют особенности ИС с точки зрения реализации компонентов ЭС. Среда функционирования определяет тип ЭВМ, на которой реализовано ИС, тип операционной системы, в среде которой ИС работает, и используемый язык программирования.