Классификация, этапы и средства разработки экспертных систем
Существует множество признаков, по которым можно (весьма условно) классифицировать ЭС [49]. По степени сложности различают поверхностные и глубинные ЭС, по степени связанности правил продукционные ЭС делят на связные и малосвязные, по типу предметной области выделяют статические, динамические ЭС и ЭС реального времени и т.п. Процесс создания ЭС занимает немало времени, поэтому определенный интерес представляет классификация ЭС по стадиям разработки (заметим, что аналогичные стадии в своем ЖЦ имеют практически все — достаточно сложные — программные системы):
· демонстрационный прототип (база знаний содержит 10—100 правил);
· исследовательский прототип (200 — 500 правил);
· действующий прототип (500— 1000 правил);
· промышленный образец (1000— 1500 правил);
· коммерческий образец (1500 — 3000 правил).
Масштабы разработки ЭС предопределили создание специальных инструментальных (аппаратных и программных) средств, систематизированное представление которых составляет содержание рис. 14.3.
Следует отметить, что первоначально разработка ЭС осуществлялась на традиционных алгоритмических языках программирования с реализацией на универсальных ЭВМ. В дальнейшем были созданы как специализированные аппаратные и программные средства, так и средства автоматизации программирования. Появились и оболочки ЭС, которые по задумке авторов должны были существенно упростить (и удешевить) разработку систем. Однако в полной мере эти надежды не оправдались (как показало дальнейшее развитие прикладных программных средств не только в области ИИ, и не могли оправдаться). Это связано с принципиальной сложностью использования конкретной ЭС (даже весьма эффективной в своей предметной области) для решения совершенно других задач, а именно таким путем создавались первые оболочки ЭС. Еще более проблематичной представляются попытки создания так называемых универсальных оболочек, пригодных для применения «во всех» предметных областях.
При создании ЭС наибольшую трудность представляет разработка совершенной базы знаний, т. е. моделирование знаний экспертов о некоторой предметной области. Разработка любой модели — в том числе и модели знаний — представляет собой полностью неформализуемый процесс, содержащий элементы творчества и строго формальных действий. Условное соотношение «искусства» и «науки» при создании ЭС представлено на рис. 14.4.
Разработка ЭС включает нескольких этапов [38], основное содержание которых применительно к продукционным системам отражено на рис. 14.5.
Процедуры уточнения, перепроектирования и переформулирования не являются обязательными, они характерны для разработки достаточно сложных ЭС и, как правило, предполагают проведение нескольких итераций. Отметим, что перечисленные этапы работ (идентификация — концептуализация — формализация — реализация — тестирование), как и стадии разработки, являются обязательными при создании любой программной системы.
Очевидно, что разработка ЭС является коллективным трудом, в котором принимают участие различные специалисты. Центральное место в схеме взаимодействия участников создания ЭС занимает инженер знаний (англ knowledge engineer). Именно он организует все важнейшие работы и осуществляет их координацию. Ему принадлежит право выбора типовых или — при необходимости и наличии соответствующих ресурсов — заказа новых инструментальных средств разработки ЭС. Он работает с предметными экспертами, генерирует, тестирует, уточняет и пополняет базу знаний и т.д. Направления взаимодействия создателей ЭС (этот процесс иногда называют игрой [38]) представлены на рис. 14.6.
Как явствует из вышеизложенного, разработка ЭС — сложный, дорогостоящий и длительный процесс. Последнее обстоятельство иллюстрируется рис. 14.7, на котором приведены условные затраты времени на создание систем для решения проблем различной сложности [38].
Существует ряд подходов к оценке того, когда же разработка ЭС является рациональной [21, 22, 26]. На наш взгляд, наиболее конструктивен подход Д.Уотермена, который основан на проверке возможности, оправданности и разумности построения системы.
При этом предлагается считать, что разработка ЭС возможна при совместном выполнении следующих основных условий:
· задача не требует общедоступных знаний;
· решение задачи требует только интеллектуальных действий;
· существуют подлинные (компетентные) эксперты;
· эксперты способны описать свои методы (приемы, уловки и т.п.) решения задачи;
· эксперты единодушны в своих решениях (или, по крайней мере, их мнения «хорошо» согласованы);
· задача понятна и «не слишком» трудна.
Разработка ЭС оправдана, если выполняется хотя бы одно из следующих основных условий:
· получение решения задачи высокорентабельно;
· человеческий опыт решения задачи по различным причинам утрачивается;
· число экспертов в рассматриваемой предметной области мало;
· опыт решения задачи востребован во многих местах;
· опыт нужно применять во враждебных человеку условиях.
Наконец, разработка ЭС разумна, если совместно выполняются следующие основные условия:
· задача требует эвристических решений;
· задача требует оперирования символами;
· задача «не слишком» проста;
· задача представляет практический интерес;
· задача имеет размерность, допускающую реализацию.
При всей условности и субъективности проверки наличия перечисленных обстоятельств можно по-новому взглянуть на причины столь широкой представительности перечня областей применения ЭС.
В заключение напомним о принципиальной важности совершенства базы знаний для эффективности ЭС. Другим важнейшим составным элементом любой системы, основанной на знаниях, в том числе и ЭС, является механизм логического вывода. Обсуждению основ его функционирования для различных моделей представления знаний посвящена следующая глава.