Трудоемкость разработки ИИС в значительной степени зависит от используемых инструментальных средств. Инструментальные средства для разработки интеллектуальных приложений можно классифицировать по следующим основным параметрам:
- уровень используемого языка;
- парадигмы программирования и механизмы реализации;
- способ представления знаний;
- механизмы вывода и моделирования;
- средства приобретения знаний;
- технологии разработки приложений.
Уровень используемого языка.
Мощность и универсальность языка программирования определяет трудоемкость разработки ЭС.
- Традиционные (в том числе объектно-ориентированные) языки программирования типа С, C++ (как правило, они используются не для создания ЭС, а для создания инструментальных средств).
- Специальные языки программирования (например, язык LISP, ориентированный на обработку списков; язык логического программирования PROLOG; язык рекурсивных функций РЕ- ФАЛ и т.д.). Их недостатком является слабая приспособленность к объединению с программами, написанными на языках традиционного программирования.
- Инструментальные средства, содержащие многие, но не все компоненты ЭС (например, система OPS 5, которая поддерживает продукционный подход к представлению знаний; языки KRL и FRL, используемые для разработки ЭС с фреймовым представлением знаний). Такое программное обеспечение предназначено для разработчиков, владеющих технологиями программирования и умеющих интегрировать разнородные компоненты в программный комплекс.
- Оболочки ЭС общего назначения, содержащие все программные компоненты, но не имеющие знаний о конкретных предметных средах. Средства этого типа и последующего не требуют от разработчика приложения знания программирования. Примерами являются ЭКО, Leonardo, Nexpert Object, Kappa, EXSYS, GURU, ART, KEE и др. В последнее время все реже употребляется термин «оболочка», его заменяют более широким термином «среда разработки».
При использовании инструментария данного типа могут возникнуть следующие трудности:
- управляющие стратегии, заложенные в механизм вывода, могут не соответствовать методам решения, которые использует эксперт, взаимодействующий с данной системой, что может привести к неэффективным, а возможно, и неправильным решениям;
- способ представления знаний, используемый в инструментарии, мало подходит для описания знаний конкретной предметной области.
Большая часть этих трудностей разрешена в проблемно/предметно-ориентированных средствах разработки ИИС.
Проблемно/предметно-ориентированные оболочки и среды (не требуют знания программирования):
• проблемно-ориентированные средства — предназначены для решения задач определенного класса (задачи поиска, управления, планирования, прогнозирования и др.) и содержат соответствующие этому классу альтернативные функциональные модули;
• предметно-ориентированные средства — включают знания о типах предметных областей, что сокращает время разработки БЗ.
При использовании оболочек и сред разработчик приложения полностью освобождается от программирования, его основные трудозатраты связаны с формированием базы знаний.
Парадигмы программирования и механизмы реализации.
Способы реализации механизма исполняемых утверждений часто называют парадигмами программирования. К основным парадигмам относят следующие:
- процедурное программирование;
- программирование, ориентированное на данные;
- программирование, ориентированное на правила;
- объектно-ориентированное программирование. Парадигма процедурного программирования является самой распространенной среди существующих языков программирования (например, С и Паскаль). В процедурной парадигме активная роль отводится процедурам, а не данным; причем любая процедура активизируется вызовом. Подобные способы задания поведения удобны для описаний детерминированной последовательности действий одного процесса или нескольких взаимосвязанных процессов.
При использовании программирования, ориентированного на данные, активная роль принадлежит данным, а не процедурам. Здесь со структурами активных данных связывают некоторые действия (процедуры), которые активизируются тогда, когда осуществляется обращение к этим данным.
В парадигме, ориентированной на правила, поведение определяется множеством правил вида «условие-действие». Условие задает образ данных, при возникновении которого действие правила может быть выполнено. Правила в данной парадигме играют такую же роль, как и операторы в процедурной парадигме. Однако если в процедурной парадигме поведение задается детерминированной последовательностью операторов, не зависящей от значений обрабатываемых данных, то в парадигме, ориентированной на правила, поведение не задается заранее предписанной последовательностью правил, а формируется на основе значений данных, которые в текущий момент обрабатываются программой. Подход, ориентированный на правила, удобен для описания поведения, гибко и разнообразно реагирующего на большое многообразие состояний данных.
Парадигма объектного программирования в отличие от процедурной парадигмы не разделяет программу на процедуры и данные. Здесь программа организуется вокруг сущностей, называемых объектами, которые включают локальные процедуры (методы) и локальные данные (переменные). Поведение (функционирование) в этой парадигме организуется путем пересылки сообщений между объектами. Объект, получив сообщение, осуществляет его локальную интерпретацию, основываясь на локальных процедурах и данных. Такой подход позволяет описывать сложные системы наиболее естественным образом. Он особенно удобен для интегрированных ЭС.
Способ представления знаний.
Наличие многих способов представления знаний вызвано стремлением представить различные типы проблемных сред с наибольшей эффективностью. Обычно способ представления знаний в ЭС характеризуют моделью представления знаний. Типичными моделями представления знаний являются правила (продукции), фреймы (или объекты), семантические сети, логические формулы. Инструментальные средства, имеющие в своем составе более одной модели представления знаний, называют гибридными. Большинство современных средств, как правило, использует объектно-ориентированную парадигму, объединенную с парадигмой, ориентированной на правила.
Механизмы вывода и моделирования.
В статических ЭС единственным активным агентом, изменяющим информацию, является механизм вывода экспертной системы. В динамических ЭС изменение данных происходит не только вследствие функционирования механизма исполняемых утверждений, но также в связи с изменениями окружения задачи, которые моделируются специальной подсистемой или поступают извне. Механизмы вывода в различных средах могут отличаться способами реализации следующих процедур.
Структура процесса получения решения:
- построение дерева вывода на основе обучающей выборки (индуктивные методы приобретения знаний) и выбор маршрута на дереве вывода в режиме решения задачи;
- компиляция сети вывода из специфических правил в режиме приобретения знаний и поиск решения на сети вывода в режиме решения задачи;
- генерация сети вывода и поиск решения в режиме решения задачи, при этом генерация сети вывода осуществляется в ходе выполнения операции сопоставления, определяющей пары «правило — совокупность данных», на которых условия этого правила удовлетворяются;
- в режиме решения задач ЭС осуществляет выработку правдоподобных предположений (при отсутствии достаточной информации для решения); выполнение рассуждений по обоснованию (опровержению) предположений; генерацию альтернативных сетей вывода; поиск решения в сетях вывода.
Поиск (выбор) решения:
- направление поиска — от данных к цели, от целей к данным, двунаправленный поиск;
- порядок перебора вершин в сети вывода — «поиск в ширину», при котором сначала обрабатываются все вершины, непосредственно связанные с текущей обрабатываемой вершиной G; «поиск в глубину», когда сначала раскрывается одна наиболее значимая вершина — G1, связанная с текущей G, затем вершина G1 делается текущей, и для нее раскрывается одна наиболее значи мая вершина G2 и т. д.
Процесс генерации предположений и сети вывода:
- режим — генерация в режиме приобретения знаний, генерация в режиме решения задачи;
- полнота генерируемой сети вывода — операция сопоставления применяется ко всем правилам и ко всем типам указанных в правилах сущностей в каждом цикле работы механизма вывода (обеспечивается полнота генерируемой сети); используются различные средства для сокращения количества правил и (или) сущностей, участвующих в операции сопоставления; например, применяется алгоритм сопоставления или используются знания более общего характера (метазнания).
Механизм вывода для динамических проблемных сред дополнительно содержит: планировщик, управляющий деятельностью ЭС в соответствии с приоритетами; средства, гарантирующие получение лучшего решения в условиях ограниченности ресурсов; систему поддержания истинности значений переменных, изменяющихся во времени.
В динамических инструментальных средствах могут быть реализованы следующие варианты подсистемы моделирования:
- система моделирования отсутствует;
- существует система моделирования общего назначения, яв ляющаяся частью инструментальной среды;
- существует специализированная система моделирования, являющаяся внешней по отношению к программному обеспечению, на котором реализуется ЭС.
Средства приобретения знаний.
В инструментальных системах они характеризуются следующими признаками:
1. Уровень языка приобретения знаний:
- формальный язык;
- ограниченный естественный язык;
- язык пиктограмм и изображений;
- ЕЯ и язык изображений.
2. Тип приобретаемых знаний:
- данные в виде таблиц, содержащих значения входных и выходных атрибутов, по которым индуктивными методами строится дерево вывода;
- специализированные правила;
- общие и специализированные правила.
3. Тип приобретаемых данных:
- атрибуты и значения;
- объекты;
- классы структурированных объектов и их экземпляры, получающие значения атрибутов путем наследования.