Сложности программирования экспертных систем
Процесс разработки и внедрения экспертной системы имеет характерные сложности. Их систематизация позволяет выработать практические рекомендации, позволяющие их избегать.
Один из наиболее объективных способов систематизации этих трудностей и способов их преодоления предложил в своих работах ученый по фамилии Уотерман (Waterman). Воспользуемся его результатами. Первая сложность при разработке экспертных систем появляется тогда, когда знания, касающиеся предметной области, очень тесно переплетены с другими частями системы. В частности, может быть трудно отделить эти знания от знаний общего применения, касающихся способов поиска в пространстве решений.
Уотерман предполагает, что этого можно достичь, положив в основу организации базы знаний набор правил. Однако, в специализированной литературе существуют мнения, что такая организация не всегда гарантирует достижение желаемого результата.
Вторая сложность заключается в том, что база знаний, которая сформировалась после получения и представления множества правил в процессе опроса экспертов, оказывается неполной настолько, что не позволяет решать необходимые задачи.
Причиной тому является отсутствие в ней фундаментальных концепций предметной области или эти концепции представлены с ошибками. Для ее решения рекомендуется последовательно наращивать объем базы знаний, начиная с фундаментальных понятий.
Это позволит, еще на ранних стадиях разработки, выявить указанную проблему. Кроме того, полезно выполнять тестирование на каждом этапе разработки, используя для этого соответствующие инструментальные средства инженерии знаний.
Третья сложность возникает, когда среда разработки не располагает встроенных средств формирования функций объяснения экспертной системы. Добавление таких функций в уже спроектированную систему - задача не из легких.
Для ее предотвращения необходимо заботиться о прозрачности экспертной системы с первых шагов ее разработки. Кроме того, без средств мониторинга даже ее создатель не может быть до конца уверен, что она работает правильно.
Четвертая трудность заключается в том, что система может содержать избыточное количество очень специфических правил. Это, во-первых, приводит к замедлению работы системы, а во-вторых - затрудняет управление ею. Для ее предотвращения рекомендуется объединять, где только возможно, мелкие правила в более общие.
Это выглядит, как стремление найти компромисс между эффективностью правил и их понятностью. Дальнейшие вопросы, с необходимостью решения которых сталкиваются разработчики экспертных систем, состоят в выборе соответствующего инструментария, оценке наглядности выбранных средств и определения «хорошего стиля программирования» в выбранной среде разработки.
Дальнейший материал будет сконцентрирован именно на этих вопросах.