Существует множество признаков, по которым можно (весьма условно) классифицировать ЭС [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]. На наш взгляд, наиболее конструктивен подход Д.Уотермена, который основан на проверке возможности, оправданности и разумности построения системы.
При этом предлагается считать, что разработка ЭС возможна при совместном выполнении следующих основных условий:
· задача не требует общедоступных знаний;
· решение задачи требует только интеллектуальных действий;
· существуют подлинные (компетентные) эксперты;
· эксперты способны описать свои методы (приемы, уловки и т.п.) решения задачи;
· эксперты единодушны в своих решениях (или, по крайней мере, их мнения «хорошо» согласованы);
· задача понятна и «не слишком» трудна.
Разработка ЭС оправдана, если выполняется хотя бы одно из следующих основных условий:
· получение решения задачи высокорентабельно;
· человеческий опыт решения задачи по различным причинам утрачивается;
· число экспертов в рассматриваемой предметной области мало;
· опыт решения задачи востребован во многих местах;
· опыт нужно применять во враждебных человеку условиях.
Наконец, разработка ЭС разумна, если совместно выполняются следующие основные условия:
· задача требует эвристических решений;
· задача требует оперирования символами;
· задача «не слишком» проста;
· задача представляет практический интерес;
· задача имеет размерность, допускающую реализацию.
При всей условности и субъективности проверки наличия перечисленных обстоятельств можно по-новому взглянуть на причины столь широкой представительности перечня областей применения ЭС.
В заключение напомним о принципиальной важности совершенства базы знаний для эффективности ЭС. Другим важнейшим составным элементом любой системы, основанной на знаниях, в том числе и ЭС, является механизм логического вывода. Обсуждению основ его функционирования для различных моделей представления знаний посвящена следующая глава.