Этап II. Концептуализация

На этапе концептуализации эксперт и инженер по знаниям выделяют ключевые понятия, отношения и характеристики, необходимые для описания процесса решения задачи. На этом этапе определяются следующие особенности задачи: типы доступных данных; исходные и выводимые данные; подзадачи общей задачи; используемые стратегии и гипотезы; виды взаимосвязей между объектами проблемной области; типы используемых отношений (иерархия, причина/следствие, часть/целое и т.п.); процессы, используемые в ходе решения задачи; типы ограничений, накладываемых на процессы, используемые в ходе решения; состав знаний, используемых для решения задачи и для объяснения решения.

После того как определено, что должна делать система, необходимо ответить на вопрос: «Как?» Первый вопрос заключается в том, как система взаимодействует с внешним окружением. Ответ на этот вопрос дает диаграмма потоков данных. На ней представлены внешние объекты, хранилища данных в системе, потоки данных, входящие, выходящие и проходящие внутри системы, и системные процессы, обрабатывающие эти потоки. Объекты принято обозначать квадратами, хранилища данных – узкими прямоугольниками без правой стороны, процессы – прямоугольниками с закругленными углами, а потоки данных – линиями со стрелками. Диаграммы потоков данных позволяют проводить декомпозицию по уровням раскрытия системных процессов и потоков. В совокупности они показывают, как система отвечает требованиям и как реализуется проект.

Этап III. Формализация

На этапе формализации все ключевые понятия и отношения, выявленные на этапе концептуализации, выражаются на некотором формальном языке, предложенном (выбранном) инженером по знаниям. Здесь он определяет, подходят ли имеющиеся инструментальные средства для решения рассматриваемой проблемы или необходим выбор другого инструментария, или требуются оригинальные разработки.

Основными задачами в процессе формализации являются проблемы структуризации исходной задачи и знаний в выбранном (разработанном) формализме, а именно:

1. Структуризация общей задачи на связанные подзадачи

Модульная организация базы знаний составляет важную часть разработки прикладной системы, хотя трудно предложить единственно правильный способ разбиения системы на модули. Процесс эволюции прикладной системы может потребовать пересмотра и ее модульной структуры. В большинстве современных средств разработки сложных экспертных систем и в особенности динамических предусматривается поддержка разбиения базы знаний на модули.

2. Структуризация предметной области на основе иерархии классов

Основными механизмами структурирования проблемно-ориентированной иерархии классов являются два противоположно направленных, но взаимосвязанных процесса: обобщение и специализация (конкретизация).

Процесс обобщения заключается в создании родительских классов для обобщения свойств, присущих более чем одному классу объектов в приложении.

Процесс специализации заключается во введении новых классов для описания объектов, отличающихся значениями характеристик, их набором и поведением от уже описанных.

3. Структуризация знаний на декларативные и процедурные

Декларативные знания – это знания, которые записаны в памяти интеллектуальной системы так, что они непосредственно доступны для использования после обращения к соответствующему полю памяти. Обычно декларативные знания используются для представления информации о свойствах и фактах предметной области. По форме представления декларативные знания противопоставляются процедурным знаниям.

Процедурные знания – это знания, хранящиеся в памяти интеллектуальной системы в виде описания процедур, с помощью которых их можно получить. Обычно процедурные знания используются для представления информации о способах решения задач в проблемной области, а также различные инструкции, методики и т.п.

4. Структуризация приложения на основе иерархии «часть/целое»

Модульный принцип создания приложения предоставляет разработчику различные возможности разбиения приложения на подсистемы, легче поддающиеся сопровождению и модификации. Разбиение приложения на модули упрощает процесс тестирования за счет использования групповой работы над тестируемой системой. Модульность также обеспечивает базовые возможности для повторного использования фрагментов системы.

Этап IV. Реализация

Цель этапа выполнения состоит в создании одного или нескольких прототипов экспертной системы, решающих требуемые задачи. Затем по результатам этапов тестирования и опытной эксплуатации на данном этапе создается конечный продукт, пригодный для промышленного использования. Разработка прототипа состоит в программировании его компонентов (или выборе их из имеющихся инструментальных средств) и наполнении базы знаний.

Создание первого прототипа должно подтвердить, что выбранные методы решений и способы представления пригодны для успешного решения по крайней мере ряда задач из области экспертизы. При разработке первого прототипа обычно оставляют в стороне вопросы, требующие значительных трудозатрат: построение сложных моделей; учет сложных временных, причинных и модальных отношений; понимание намерений пользователей; моделирование рассуждений, содержащих неточные понятия.

Этап V. Тестирование

Специалисты выделяют три аспекта тестирования экспертных систем [13]:

1. Тестирование исходных данных включает проверку фактографической информации, служащей основой для проведения экспертизы. Очевидно, что наборы данных, используемых при тестировании, должны покрывать область возможных ситуаций, распознаваемых экспертной системой.

2. Логическое тестирование базы знаний заключается в обнаружении логических ошибок в системе продукций, не зависящих от предметной области, таких, как избыточные, циклические и конфликтные правила; пропущенные и пересекающиеся правила; несогласуемые и терминальные клаузы (несогласуемые условия). Формальный характер этих ошибок позволяет автоматизировать процесс логического тестирования. Существует большое количество инструментальных средств для верификации наборов правил и базы знаний в целом. Однако в ряде случаев, когда цепочки правил, используемых в процессе вывода, небольшие (от 3 до 10 правил), целесообразно проводить процесс верификации вручную.

3. Концептуальное тестирование проводится для проверки общей структуры системы и учета в ней всех аспектов решаемой задачи. На этом этапе проведение тестирования невозможно без привлечения конечных пользователей прикладной системы.

Наши рекомендации