Инструментальные средства проектирования и разработки экспертных систем
На проектирование и создание одной экспертной системы ранее требовалось 20-30 человек-лет. В настоящее время имеется ряд средств, ускоряющих создание. Эти средства называют инструментальными или инструментарием. Использование инструментальных средств разработки экспертных систем сокращает время, затрачиваемое на их создание, в 3-5 раз.
Инструментальное средство разработки экспертных систем – это язык программирования, используемый инженером знаний или (и) программистом для построения экспертной системы [13]. Этот инструмент отличается от обычных языков программирования тем, что обеспечивает удобные способы представления сложных высокоуровневых понятий.
По своему назначению и функциональным возможностям инструментальные программы, применяемые при проектировании экспертных систем, можно разделить на четыре достаточно большие категории.
1. Оболочки экспертных систем
Системы этого типа создаются, как правило, на основе какой-нибудь экспертной системы, достаточно хорошо зарекомендовавшей себя на практике. При создании оболочки из системы-прототипа удаляются компоненты, слишком специфичные для области ее непосредственного применения, и оставляются те, которые не имеют узкой специализации. Примером может служить система EMYCIN, созданная на основе прошедшей длительную «обкатку» системы MYCIN. В EMYCIN сохранен интерпретатор и все базовые структуры данных – таблицы знаний и связанные с ними механизм индексации. Оболочка дополнена специальным языком, улучшающим читабельность программ, и средствами поддержки библиотеки типовых случаев и заключений, выполненных по ним экспертной системой.
2. Языки программирования высокого уровня
Инструментальные средства этой категории избавляют разработчика от необходимости углубляться в детали реализации системы – способы эффективного распределения памяти, низкоуровневые процедуры доступа и манипулирования данными. Одним из наиболее известных представителей таких языков является OPS5. Этот язык прост в изучении и предоставляет программисту гораздо более широкие возможности, чем типичные специализированные оболочки. Следует отметить, что большинство подобных языков так и не было доведено до уровня коммерческого продукта и представляет собой скорее инструмент для исследователей.
3. Среда программирования, поддерживающая несколько парадигм
Средства этой категории включают несколько программных модулей, что позволяет пользователю комбинировать в процессе разработки экспертной системы разные стили программирования. Среди первых проектов такого рода была исследовательская программа LOOP, которая допускала использование двух типов представления знаний: базирующегося на системе правил и объектно-ориентированного. На основе этой архитектуры во второй половине 1980-х годов было разработано несколько коммерческих программных продуктов, из которых наибольшую известность получили KEE, KnowledgeCraft и ART. Эти программы предоставляют в распоряжение квалифицированного пользователя множество опций и для последующих разработок, таких как КАРРА и CLIPS, и стали своего рода стандартом. Однако освоить эти языки программистам далеко не так просто, как языки, отнесенные к предыдущей категории.
4. Дополнительные модули
Средства этой категории представляют собой автономные программные модули, предназначенные для выполнения специфических задач в рамках выбранной архитектуры системы решения проблем.
Этапы разработки экспертных систем
При разработке экспертных систем часто используется концепция быстрого прототипа. Суть её в следующем: поначалу создается не экспертная система, а её прототип, который обязан решать узкий круг задач и требовать на свою разработку незначительное время. Прототип должен продемонстрировать пригодность будущей экспертной системы для данной предметной области, проверить правильность кодировки фактов, связей и стратегий рассуждения эксперта. Он также дает возможность инженеру по знаниям привлечь эксперта к активной роли в разработке экспертной системы. Размер прототипа – несколько десятков правил.
На сегодняшний день сложилась определенная технология разработки экспертных систем, включающая 6 этапов [3].
В ходе работ по созданию экспертных систем сложилась определенная технология их разработки, включающая шесть следующих этапов: идентификация, концептуализация, формализация, реализация, тестирование, опытная эксплуатация и внедрение.
Этап I. Идентификация
На этапе идентификации определяются задачи, участники процесса разработки и их роли, ресурсы и цели. Определение участников и их ролей сводится к определению количества экспертов и инженеров по знаниям, а также формы их взаимоотношений. Обычно в основном цикле разработки экспертной системы участвуют не менее трех-четырех человек (один эксперт, один или два инженера по знаниям и один программист, привлекаемый для модификации и согласования инструментальных средств). К процессу разработки экспертной системы могут привлекаться и другие участники. Идентификация задачи заключается в составлении неформального (вербального) описания решаемой задачи. В этом описании указываются общие характеристики задачи; подзадачи, выделяемые внутри данной задачи; ключевые понятия (объекты), характеристики и отношения; входные (выходные) данные; предположительный вид решения; знания, релевантные решаемой задаче; примеры (тесты) решения задачи.
Цель этапа идентификации задачи состоит в том, чтобы характеризовать задачу и структуру поддерживающих ее знаний и приступить к работе по созданию базы знаний. Если исходная задача оказывается слишком сложной с учетом имеющихся ресурсов, то этап идентификации может потребовать нескольких итераций.