Этап I. Идентификация

advertisement
ГОСТ 34.601-90 АВТОМАТИЗИРОВАННЫЕ СИСТЕМЫ. СТАДИИ
СОЗДАНИЯ.
с 01.01.1992г.
Этапы работ
1. Формирование требований к АС
1.1. Обследование объекта и обоснование необходимости создания АС.
1.2. Формирование требований пользователя к АС.
1.3. Оформление отчёта о выполненной работе и заявки на разработку АС (тактико-технического
задания)
2. Разработка концепции АС.
2.1. Изучение объекта.
2.2. Проведение необходимых научно-исследовательских работ.
2.3. Разработка вариантов концепции АС, удовлетворяющего требованиям пользователя.
2.4. Оформление отчёта о выполненной работе.
3. Техническое задание.
Разработка и утверждение технического задания на создание АС.
4. Эскизный проект.
4.1. Разработка предварительных проектных решений по системе и её частям.
4.2. Разработка документации на АС и её части.
5. Технический проект.
5.1. Разработка проектных решений по системе и её частям.
5.2. Разработка документации на АС и её части.
5.3. Разработка и оформление документации на поставку изделий для комплектования АС и (или)
технических требований (технических заданий) на их разработку.
5.4. Разработка заданий на проектирование в смежных частях проекта объекта автоматизации.
6. Рабочая документация.
6.1. Разработка рабочей документации на систему и её части.
6.2. Разработка или адаптация программ.
1
7. Ввод в действие.
7.1. Подготовка объекта автоматизации к вводу АС в действие.
7.2. Подготовка персонала.
7.3. Комплектация АС поставляемыми изделиями (программными и техническими средствами,
программно-техническими комплексами, информационными изделиями).
7.4. Строительно-монтажные работы.
7.5. Пусконаладочные работы.
7.6. Проведение предварительных испытаний.
7.7. Проведение опытной эксплуатации.
7.8. Проведение приёмочных испытаний.
8. Сопровождение АС
8.1. Выполнение работ в соответствии с гарантийными обязательствами.
8.2. Послегарантийное обслуживание.
Виды процесса разработки ИС



Каскадная
Каскадная с возвращением
Цикличная
Подходы к созданию экспертных систем
Существует, по крайней мере, четыре значительно отличающихся друг от друга подхода к
созданию экспертных систем:
1)
2)
3)
4)
подход, базирующийся на поверхностных знаниях;
структурный подход;
подход, базирующийся на глубинных знаниях;
смешанный подход, базирующийся на использовании поверхностных и глубинных знаний.
1. Подход, базирующийся на поверхностных знаниях
Применяется к сложным задачам, которые не могут быть точно описаны. Этот подход
заключается в получении от эксперта фрагментов знаний (часто эвристических), которые
релевантны решаемой задаче. При этом не предпринимается никаких попыток систематического
или глубинного изучения области, что предопределяет использование поиска в пространстве
состояний в качестве универсального механизма вывода. Обычно в экспертных системах,
использующих данный подход, в качестве способа представления выбираются правила. Условие
каждого правила определяет образец некоторой ситуации, при соблюдении которой правило
может быть выполнено. Поиск решения состоит в выполнении тех правил, образцы которых
сопоставляются с текущими данными. При этом предполагается, что в процессе поиска решения
последовательность формируемых таким образом ситуаций не оборвется до получения решения,
т.е. не возникнет неизвестной ситуации, которая не сопоставится ни с одним правилом. Данный
подход с успехом применяется к широкому классу приложений, однако он оказывается
2
неэффективным в тех приложениях, когда задача может быть заранее структурирована или при
решении задачи может быть использована некоторая модель.
2. Структурный подход
Структурный подход к построению экспертных систем обусловлен тем, что для ряда
приложений применение только техники поверхностных знаний не обеспечивает решения задачи.
Действительно, использование поиска в качестве механизма вывода в неструктурированной базе
знаний может приводить к ненадежным и (или) некачественным решениям. Структурный подход
к построению экспертных систем подобен структурному программированию. Однако
применительно к экспертным системам речь не идет о том, что структурирование должно довести
задачу до алгоритма (как в традиционном программировании), а предполагается, что часть задачи
решается с помощью поиска. Структурный подход в различных приложениях целесообразно
сочетать с поверхностным или глубинным.
3. Глубинный подход
В глубинном подходе компетентность экспертной системы базируется на модели той
проблемной среды, в которой эта экспертная система работает. Модель может быть определена
различными способами (декларативно, процедурно). Необходимость в ряде приложений
использовать модели вызвана стремлением исправить несовершенство поверхностного подхода,
возникающего при отсутствии правил, удовлетворяющих текущей ситуации в рабочей памяти.
Глубинные экспертные системы кроме возможностей поверхностных обладают способностью при
возникновении неизвестной ситуации определить с помощью некоторых общих принципов,
справедливых для области экспертизы, какие действия следует выполнить.
Глубинный (модельный) подход требует явного описания структуры и взаимоотношений
между различными сущностями области. При этом подходе необходимо использовать
инструментальные средства, обладающие мощными моделирующими возможностями: объекты с
присоединенными процедурами, иерархическое наследование свойств, активные знания
(программирование, управляемое данными), передача сообщений объектам (объектноориентированное программирование) и т.п.
4. Смешанный подход
Смешанный подход в общем случае может сочетать поверхностный, структурный и
глубинный подходы. Например, поверхностный подход может быть использован для поиска
адекватных знаний, которые затем используются некоторой глубинной моделью.
Разработка экспертных систем
При разработке экспертных систем часто используется концепция быстрого прототипа.
Суть её в следующем: поначалу создается не экспертная система, а её прототип, который обязан
решать узкий круг задач и требовать на свою разработку незначительное время. Прототип должен
продемонстрировать пригодность будущей экспертной системы для данной предметной области,
проверить правильность кодировки фактов, связей и стратегий рассуждения эксперта. Он также
дает возможность инженеру по знаниям привлечь эксперта к активной роли в разработке
экспертной системы. Размер прототипа – несколько десятков правил.
На сегодняшний день сложилась определенная технология разработки экспертных систем,
включающая 6 этапов.
Этап 1. Идентификация
Определяются задачи, которые подлежат решению. Планируется ход разработки прототипа
экспертной системы, определяются: нужные ресурсы (время, люди, ЭВМ и т.д.), источники знаний
(книги, дополнительные специалисты, методики), имеющиеся аналогичные экспертные системы,
цели (распространение опыта, автоматизация рутинных действий и др.), классы решаемых задач и
т.д. Этап идентификации – это знакомство и обучение коллектива разработчиков. Средняя
длительность 1-2 недели.
3
На этом же этапе разработки экспертных систем проходит извлечение знаний. Инженер по
знаниям помогает эксперту выявить и структурировать знания, необходимые для работы
экспертной системы, с использованием различных способов: анализ текстов, диалоги, экспертные
игры, лекции, дискуссии, интервью, наблюдение и другие. Извлечение знаний – это получение
инженером по знаниям более полного представления о предметной области и методах принятия
решения в ней. Средняя длительность 1-3 месяца.
Этап 2. Концептуализация
Выявляется структура полученных знаний о предметной области. Определяются:
терминология, перечень главных понятий и их атрибутов, структура входной и выходной
информации, стратегия принятия решений и т.д. Концептуализация – это разработка
неформального описания знаний о предметной области в виде графа, таблицы, диаграммы либо
текста, которое отражает главные концепции и взаимосвязи между понятиями предметной
области. Средняя длительность этапа 2-4 недели.
Этап 3. Формализация
На этапе формализации все ключевые понятия и отношения, выявленные на этапе
концептуализации, выражаются на некотором формальном языке, предложенном (выбранном)
инженером по знаниям. Здесь он определяет, подходят ли имеющиеся инструментальные средства
для решения рассматриваемой проблемы или необходим выбор другого инструментария, или
требуются оригинальные разработки. Средняя длительность 1-2 месяца.
Этап 4. Реализация
Создается прототип экспертной системы, включающий базу знаний и другие подсистемы.
На данном этапе применяются следующие инструментальные средства: программирование на
обычных языках (Паскаль, Си и др.), программирование на специализированных языках,
применяемых в задачах искусственного интеллекта (LISP, FRL, SmallTalk и др.) и др. Четвертый
этап разработки экспертных систем в какой-то степени является ключевым, так как здесь
происходит создание программного комплекса, демонстрирующего жизнеспособность подхода в
целом. Средняя длительность 1-2 месяца.
Этап 5. Тестирование
Прототип проверяется на удобство и адекватность интерфейсов ввода-вывода,
эффективность стратегии управления, качество проверочных примеров, корректность базы
знаний. Тестирование – это выявление ошибок в выбранном подходе, выявление ошибок в
реализации прототипа, а также выработка рекомендаций по доводке системы до промышленного
варианта.
Этап 6. Опытная эксплуатация
Проверяется пригодность экспертной системы для конечных пользователей. По
результатам этого этапа может потребоваться существенная модификация экспертной системы.
Процесс разработки экспертной системы не сводится к строгой последовательности
перечисленных выше этапов. В ходе работ приходится неоднократно возвращаться на более
ранние этапы и пересматривать принятые там решения.
Этап I. Идентификация
На этапе идентификации определяются задачи, участники процесса разработки и их роли,
ресурсы и цели. Определение участников и их ролей сводится к определению количества
экспертов и инженеров по знаниям, а также формы их взаимоотношений.
Обычно в основном цикле разработки экспертной системы участвуют не менее трехчетырех человек (один эксперт, один или два инженера по знаниям и один программист,
привлекаемый для модификации и согласования инструментальных средств). К процессу
разработки экспертной системы могут привлекаться и другие участники. Например, инженер по
4
знаниям может привлекать других экспертов для того, чтобы убедиться в правильности своего
понимания основного эксперта; представительности тестов, демонстрирующих особенности
рассматриваемой задачи; совпадении взглядов различных экспертов на качество предлагаемых
решений.
Формы взаимоотношений экспертов и инженеров следующие: эксперт исполняет роль
информирующего или эксперт выполняет роль учителя, а инженер - ученика. Вне зависимости от
выбранной формы взаимоотношений инженер по знаниям должен быть готов и способен изучать
специфические особенности той проблемной области, в рамках которой предстоит работать
создаваемой экспертной системе.
Несмотря на то, что основу знаний экспертной системы будут составлять знания эксперта,
для достижения успеха инженер по знаниям должен использовать дополнительные источники
знаний в виде книг, инструкций, которые ему рекомендовал эксперт.
Идентификация задачи заключается в составлении неформального (вербального) описания
решаемой задачи. В этом описании указываются:
 общие характеристики задачи;
 подзадачи, выделяемые внутри данной задачи;
 ключевые понятия (объекты), характеристики и отношения;
 входные (выходные) данные;
 предположительный вид решения;
 знания, релевантные решаемой задаче;
 примеры (тесты) решения задачи.
Цель этапа идентификации задачи состоит в том, чтобы характеризовать задачу и
структуру поддерживающих ее знаний и приступить к работе по созданию базы знаний. Если
исходная задача оказывается слишком сложной с учетом имеющихся ресурсов, то этап
идентификации может потребовать нескольких итераций.
В ходе идентификации задачи необходимо ответить на следующие вопросы:
1.
2.
3.
4.
5.
6.
Какие задачи предлагается решать экспертной системе?
Как эти задачи могут быть охарактеризованы и определены?
На какие подзадачи разбивается каждая задача, какие данные они используют?
Какие ситуации препятствуют решению?
Как эти препятствия будут влиять на экспертную систему?
Ряд других вопросов.
В процессе идентификации задачи инженер и эксперт работают в тесном контакте.
Начальное содержательное описание задачи экспертом влечет за собой вопросы инженера по
знаниям с целью уточнения терминов и ключевых понятий. Эксперт уточняет описание задачи,
объясняет, как решать эту задачу и какие рассуждения лежат в основе решения. После нескольких
циклов, уточняющих описание, эксперт и инженер по знаниям получают окончательное
неформальное описание задачи.
При разработке экспертной системы типичными ресурсами являются:
 источники знаний,
 время разработки,
 вычислительные средства (возможности ЭВМ и программного инструментария)
 и объем финансирования.
Для достижения успеха эксперт и инженер должны использовать при построении
экспертной системы все доступные им источники знаний. Для эксперта источниками знаний могут
быть его предшествующий опыт по решению задачи, книги, конкретные примеры задач и
использованных решений. Для инженера по знаниям источниками знаний могут быть опыт в
5
решении аналогичных задач, методы решения и представления знаний, программный
инструментарий.
При определении временных ресурсов необходимо иметь в виду, что сроки разработки и
внедрения экспертной системы составляют (за редким исключением) не менее шести месяцев (при
трудоемкости от двух до пяти человеко-лет). Задача определения ресурсов является весьма
важной, поскольку ограниченность какого-либо ресурса существенно влияет на процесс
проектирования. Так, например, при недостаточном финансировании предпочтение может быть
отдано не разработке оригинальной новой системы, а адаптации существующей.
Задача идентификации целей заключается в формулировании в явном виде целей
построения экспертной системы. При этом важно отличать цели, ради которых строится система,
от задач, которые она должна решать. Примерами возможных целей являются: формализация
неформальных знаний экспертов; улучшение качества решений, принимаемых экспертом;
автоматизация рутинных аспектов работы эксперта (пользователя); тиражирование знаний
эксперта.
На первом этапе инженер по знаниям должен ответить на основной вопрос: «Подходят
ли методы инженерии знаний для решения предложенной задачи?». Для положительного ответа на
данный вопрос необходимо, чтобы задача относилась к достаточно узкой, специальной области
знаний и не требовала для своего решения использования того, что принято называть здравым
смыслом, поскольку методы искусственного интеллекта не дают возможности формализовать это
понятие. Кроме того, качество экспертной системы зависит в конечном счете от уровня сложности
решаемой задачи и ясности ее формулировки. Задача не должна быть ни слишком легкой, ни
слишком трудной. Обычно число связанных понятий, релевантных проблеме, должно составлять
несколько сотен. Говоря другими словами, назначение экспертной системы в том, чтобы решать
некоторую задачу из данной области, а не в том, чтобы быть экспертом в этой области.
Следует подчеркнуть, что в настоящее время при разработке экспертной системы (особенно
динамических экспертных систем) применяется принцип кооперативного проектирования,
заключающийся в участии конечных пользователей системы в процессе разработки. Пользователи
обладают неформальным пониманием прикладных задач, которые должна решать
разрабатываемая программная система. Хотя системные аналитики и программисты могут изучить
этот класс прикладных задач, затраты на обучение (прежде всего время) будут высоки, а их
компетентность все равно останется более низкой, чем у опытных пользователей. Поэтому
включение конечных пользователей в группу разработчиков обычно более эффективно и
позволяет более качественно анализировать автоматизируемые операции. Эти преимущества
усиливаются по мере усложнения решаемой задачи.
6
Этап II. Концептуализация
На этапе концептуализации эксперт и инженер по знаниям выделяют ключевые понятия,
отношения и характеристики, необходимые для описания процесса решения задачи.
На этом этапе определяются следующие особенности задачи:
 типы доступных данных;
 исходные и выводимые данные;
 подзадачи общей задачи;
 используемые стратегии и гипотезы;
 виды взаимосвязей между объектами проблемной области;
 типы используемых отношений (иерархия, причина/следствие, часть/целое и т.п.);
 процессы, используемые в ходе решения задачи;
 типы ограничений, накладываемых на процессы, используемые в ходе решения;
 состав знаний, используемых для решения задачи и для объяснения решения.
Для определения перечисленных характеристик задачи целесообразно составить детальный
протокол действий и рассуждений эксперта в процессе решения хотя бы одной конкретной
задачи. Такой протокол обеспечивает инженера по знаниям словарем терминов (объектов) и
некоторым приблизительным представлением о тех стратегиях, которые использует эксперт.
Кроме того, протокол помогает ответить на многие другие вопросы, возникающие в ходе
разработки. На этом этапе инженер по знаниям рассматривает вопросы, относящиеся к
представлению знаний и методам решения, но говорить о выборе конкретных способов и методов
здесь еще рано.
Адекватным средством для выделения ключевых понятий, отношений и характеристик
являются диаграммы, которые используют практически все современные инструментальные
средства. Диаграммы используются как средства проектирования, сопровождения и
документирования, а также для организации взаимодействия между различными участниками
процесса создания системы.
Являясь языком для описания требований и проектирования системы, диаграммы должны
быть небольшими по размеру, простыми, понятными и полными. Для этого они должны опираться
на формальные правила и использовать небольшое количество абстрактных символов. К числу
базовых типов диаграмм относятся:




контекстные диаграммы (структурно-функциональные схемы), например нотация
IDEF0;
диаграммы «сущность-связь», например нотация IDEF1X;
диаграммы потоков данных, например нотация DFD;
диаграммы «состояния-переходы», например нотация UML.
Для того чтобы показать, что система должна делать, надо показать всю систему, ее части и
их взаимодействие. Это делается с помощью контекстных диаграмм. Эти диаграммы, на
которых представлены сама система в виде системного процесса, ее основные части (подсистемы),
включая операторы и основные блоки оборудования (измерения и управления), объекты внешнего
окружения и основные потоки между ними, описывают разрабатываемую систему на высоком
уровне.
Контекстная диаграмма в сочетании с перечнем системных требований стремится ответить
на вопрос: «Что делает система?», причем дает только частичный ответ.
Для систем со сложными связями между объектами важно более детально представлять
взаимоотношения между объектами. Это делается с помощью диаграмм «сущность-связь». В
этих диаграммах объекты представляются прямоугольниками, а связи между ними – стрелками.
Тип связи и ее направление определяются с помощью стрелок в начале и в конце линии связи. Тип
связи задает отношение множественности между объектами, т.е. определяет, скольким
экземплярам второго объекта соответствует один экземпляр первого объекта.
7
После того как определено, что должна делать система, необходимо ответить на вопрос:
«Как?» Первый вопрос заключается в том, как система взаимодействует с внешним окружением.
Ответ на этот вопрос дает диаграмма потоков данных. На ней представлены внешние объекты,
хранилища данных в системе, потоки данных, входящие, выходящие и проходящие внутри
системы, и системные процессы, обрабатывающие эти потоки. Объекты принято обозначать
квадратами, хранилища данных – узкими прямоугольниками без правой стороны, процессы –
прямоугольниками с закругленными углами, а потоки данных – линиями со стрелками.
Диаграммы потоков данных позволяют проводить декомпозицию по уровням раскрытия
системных процессов и потоков. В совокупности они показывают, как система отвечает
требованиям и как реализуется проект.
Типы диаграмм, упомянутые выше, отражали статическое поведение системы. Для того
чтобы показать динамическое поведение системы, какие события происходят в системе, как
система на них реагирует и в какие состояния она попадает, используются диаграммы
«состояний-переходов», которые моделируют поведение машины с конечным числом состояний.
Поведение системы представляется в виде множества дискретных, исключительных и конечных
состояний. Происходящие события приводят к изменению состояния системы; считается, что
изменения происходят мгновенно. События могут происходить синхронно и асинхронно.
Этап III. Формализация
На этапе формализации все ключевые понятия и отношения, выявленные на этапе
концептуализации, выражаются на некотором формальном языке, предложенном (выбранном)
инженером по знаниям. Здесь он определяет, подходят ли имеющиеся инструментальные средства
для решения рассматриваемой проблемы или необходим выбор другого инструментария, или
требуются оригинальные разработки.
Основными задачами в процессе формализации являются проблемы структуризации
исходной задачи и знаний в выбранном (разработанном) формализме, а именно:
1)
2)
3)
4)
структуризация общей задачи на связанные подзадачи;
структуризация предметной области на основе иерархии классов;
структуризация знаний на декларативные и процедурные;
структуризация приложения на основе иерархии «часть/целое».
1. Структуризация общей задачи на связанные подзадачи
Модульная организация базы знаний составляет важную часть разработки прикладной
системы, хотя трудно предложить единственно правильный способ разбиения системы на модули.
Процесс эволюции прикладной системы может потребовать пересмотра и ее модульной
структуры. В большинстве современных средств разработки сложных экспертных систем и в
особенности динамических предусматривается поддержка разбиения базы знаний на модули.
Важность модульной организации экспертной системы определяется тем, что разбиение
приложения на модули существенно ускоряет разработку (так как независимые группы
разработчиков могут одновременно разрабатывать различные модули), снижает затраты на
сопровождение и поддержку, упрощает повторное использование модулей базы знаний в
последующих разработках. С другой стороны, разбиение прикладной экспертной системы на
модули несколько повышает накладные расходы на загрузку и сборку прикладной системы,
например: восстановление после сбоев и перезапуск системы.
2. Структуризация предметной области на основе иерархии классов
Необходимость ускорения темпов разработки и модификации экспертной системы всегда
являлась актуальной задачей прикладной инженерии знаний. Применение объектноориентированного подхода в современных экспертных системах естественным образом
реализует возможность декомпозиции задачи на совокупность подзадач. Знания при этом подходе
организованы в классы. Каждый класс определяется специфическим набором атрибутов. Классы
организуются в иерархию классов. Каждый класс в иерархии наследует атрибуты и ограничения
8
своего родительского класса. Обычно производный класс определяет дополнительные
специфические атрибуты и (или) ограничения.
В большинстве существующих экспертных систем пользователю разрешено производить
новый класс только от одного родительского. Такой подход хотя и проще в реализации, требует
дополнительных усилий во время формирования предметно-ориентированной иерархии классов,
так как в этом случае иерархия наследования должна представляться в виде дерева. Добавление в
иерархию наследования нового класса может потребовать существенных концептуальных
изменений на различных уровнях. Избежать подобных непроизводительных затрат позволяет
концепция множественного наследования, в рамках которой новый класс может наследовать
свойства у двух и более классов родителей. Однако следует отметить, что к использованию
механизмов множественного наследования следует подходить аккуратно, так как получающаяся в
этом случае сетевая схема иерархии наследования затрудняет понимание структуры базы знаний.
Основными механизмами структурирования проблемно-ориентированной иерархии
классов являются два противоположно направленных, но взаимосвязанных процесса: обобщение и
специализация (конкретизация).
Процесс обобщения заключается в создании родительских классов для обобщения свойств,
присущих более чем одному классу объектов в приложении. Например, так как автомобили,
самолеты и лодки характеризуются скоростью передвижения, в приложении, работающем с этими
объектами, целесообразно ввести новый класс транспортных средств, обладающий этим
свойством. Самолеты, автомобили и лодки будут производными классами от транспортного
средства и унаследуют от него атрибут «скорость передвижения». Кроме атрибутов,
характеризующих наблюдаемые свойства объектов, целесообразно провести обобщение и их
поведенческих аспектов.
Процесс специализации заключается во введении новых классов для описания объектов,
отличающихся значениями характеристик, их набором и поведением от уже описанных.
Рассмотрим далее приведенный выше пример. Если разработчику потребуется описать новый тип
лодок (например, моторные лодки), он должен определить его как подкласс существующего
класса «лодки». Новый класс наследует все свойства, взаимосвязи и поведение своего родителя.
Для его описания необходимо указать только его особенности.
3. Структуризация знаний на декларативные и процедурные
По форме описания знания подразделяются на:


декларативные;
процедурные.
Декларативные знания – это знания, которые записаны в памяти интеллектуальной
системы так, что они непосредственно доступны для использования после обращения к
соответствующему полю памяти. Обычно декларативные знания используются для представления
информации о свойствах и фактах предметной области. По форме представления декларативные
знания противопоставляются процедурным знаниям.
Процедурные знания – это знания, хранящиеся в памяти интеллектуальной системы в
виде описания процедур, с помощью которых их можно получить. Обычно процедурные знания
используются для представления информации о способах решения задач в проблемной области, а
также различные инструкции, методики и т.п.
4. Структуризация приложения на основе иерархии «часть/целое»
Модульный принцип создания приложения предоставляет разработчику различные
возможности разбиения приложения на подсистемы, легче поддающиеся сопровождению и
модификации. Разбиение приложения на модули упрощает процесс тестирования за счет
использования групповой работы над тестируемой системой. Модульность также обеспечивает
базовые возможности для повторного использования фрагментов системы.
9
Этап IV. Реализация
Цель этапа реализации (или выполнения) состоит в создании одного или нескольких
прототипов экспертной системы, решающих требуемые задачи. Затем по результатам этапов
тестирования и опытной эксплуатации на данном этапе создается конечный продукт, пригодный
для промышленного использования. Разработка прототипа состоит в программировании его
компонентов (или выборе их из имеющихся инструментальных средств) и наполнении базы
знаний.
Обычная ошибка разработчиков при создании прототипа состоит в том, что процесс
приобретения знаний откладывают до полного понимания структуры базы знаний и всех тестовых
примеров. Тем самым эта наиболее трудоемкая часть работы отодвигается на поздние этапы.
Процесс накопления знаний позволяет уточнить используемые понятия и отношения, поэтому
необходимо начинать приобретение знаний, как только составлены или выбраны
инструментальные средства, позволяющие работать с простейшим представлением знаний и
простейшими управляющими структурами. Такой подход позволяет как можно раньше начать
выполнение отдельных подзадач и обнаружить, что в ряде случаев для их решения необходимы
дополнительные знания. Иными словами, первый прототип экспертной системы (ЭС-1) должен
появиться через 1-3 месяца после начала работы. Разработка прототипа является чрезвычайно
важным шагом в создании экспертной системы. Некоторые фрагменты прототипа могут войти в
окончательную версию экспертной системы, но не это является наиболее важной целью создания
прототипа. Главное, чтобы прототип обеспечил проверку адекватности идей, выбранных при
построении данной экспертной системы, решаемым задачам.
Создание первого прототипа должно подтвердить, что выбранные методы решений и
способы представления пригодны для успешного решения по крайней мере ряда задач из области
экспертизы. При разработке первого прототипа обычно оставляют в стороне вопросы, требующие
значительных трудозатрат: построение сложных моделей; учет сложных временных, причинных и
модальных отношений; понимание намерений пользователей; моделирование рассуждений,
содержащих неточные понятия.
Итак, можно сделать вывод, что в первом прототипе реализуется простейшая процедура
вывода. При его разработке основная цель состоит в том, чтобы получить решение задачи, не
заботясь пока об эффективности. После разработки первого прототипа необходимо расширить
круг задач, решаемых системой, для того, чтобы собрать пожелания и замечания, которые будут
учтены во втором прототипе системы (ЭС-2).
В ходе приобретения знаний инженер по знаниям должен получить знания от эксперта,
структурировать их и представить в виде, понятном экспертной системе. Процесс извлечения
знаний сложен и длителен, так как эксперт часто или не осознает, какими знаниями он пользуется,
или не может их вербализовать (содержательно выразить). Для достижения эффективного
функционирования экспертной системы необходимо осуществить структурирование знаний.
Наиболее важным средством для структурирования знаний является иерархия классов,
описывающих понятия промежуточного уровня. Во многих случаях эти понятия могут явно не
упоминаться (а возможно, и не осознаваться) экспертом. Задача инженера по знаниям – выделить
такие понятия, обнаружив сходные действия эксперта при обработке различных ситуаций.
При представлении правил в виде, понятном экспертной системе, особое внимание
следует уделять трем ситуациям:
 некоторое правило слишком громоздко;
 имеется много похожих правил;
 используются частные, а не общие правила.
Громоздкость правила может объясняться тем, что в нем отражено несколько фактов из
данной проблемной области. Если это так, то правило надо разбить на несколько более мелких.
Вторая ситуация имеет место тогда, когда в проблемной области существует понятие, явно не
указанное экспертом, а возможно, и не имеющее имени. В этом случае новое понятие необходимо
ввести в явном виде, присвоить ему специальное имя и, используя это понятие, сформулировать
одно правило взамен группы подобных. Третья ситуация имеет место тогда, когда эксперт не
10
использует возможности, предоставляемые объектно-ориентированным программированием,
позволяющим скрыть специфику объектов в иерархии классов и ссылаться в правилах на классы, а
не на конкретные объекты.
Выполнение экспериментов с версией ЭС-2 и анализ результатов их прогонов позволяют
выявить недостатки системы и разработать средства для их устранения. Этот итеративный процесс
может продолжаться еще несколько месяцев и зависит от сложности проблемной области, от
гибкости выбранного представления и степени соответствия управляющего механизма решаемым
задачам (возможно, потребуется разработка ЭС-3 и т.д.).
В целом итеративная разработка заключается в подходе к реализации системы как серии
удачных приближений прототипов к конечной цели, а не как к единой, монолитной,
интегрированной системе. Итеративная разработка особенно эффективна при создании систем с
недостаточно четко определенными спецификациями, к которым прежде всего относятся
экспертные системы. Поскольку подобные проекты обычно недостаточно проработаны с точки
зрения системного анализа, разработчики обычно обнаруживают новые требования к системе
после начала проекта. Если принят итеративный подход к разработке, то на адаптацию системы и
коррекцию дальнейшего плана работ требуются относительно небольшие затраты.
Этап V. Тестирование
Этап тестирования экспертной системы включается в каждую стадию прототипирования
прикладной системы. Хотя обычно тестирование рассматривают в качестве заключительной фазы
процесса разработки, операционное прототипирование, характеризующееся возможностью
изменения целей проектирования в процессе разработки, предъявляет особые требования к
доказательству корректности (верификации – verification) и соответствия разрабатываемой
системы предъявляемым требованиям (концептуальное тестирование – validation). Эти две
задачи должны выполняться параллельно с процессом разработки экспертной системы. По
аналогии с технологией тестирования традиционных программных систем можно
интерпретировать процесс верификации (логического тестирования) как альфа-тестирование
программной системы, а концептуальное тестирование – как этап бета-тестирования, хотя
тестирование экспертных систем принципиально отличается от тестирования традиционных
систем. В то время как достаточно строгие предварительные спецификации традиционной
системы позволяют программисту осуществлять эти работы (в особенности верификацию
системы) самостоятельно, для тестирования экспертной системы необходимо привлекать эксперта
в данной предметной области.
Специалисты выделяют три аспекта тестирования экспертных систем:



тестирование исходных данных;
логическое тестирование базы знаний;
концептуальное тестирование прикладной системы.
Тестирование исходных данных включает проверку фактографической информации,
служащей основой для проведения экспертизы. Очевидно, что наборы данных, используемых при
тестировании, должны покрывать область возможных ситуаций, распознаваемых экспертной
системой.
Логическое тестирование базы знаний заключается в обнаружении логических ошибок в
системе продукций, не зависящих от предметной области, таких, как избыточные, циклические и
конфликтные правила; пропущенные и пересекающиеся правила; несогласуемые и терминальные
клаузы (несогласуемые условия). Формальный характер этих ошибок позволяет автоматизировать
процесс логического тестирования. Существует большое количество инструментальных средств
для верификации наборов правил и базы знаний в целом. Однако в ряде случаев, когда цепочки
правил, используемых в процессе вывода, небольшие (от 3 до 10 правил), целесообразно
проводить процесс верификации вручную.
Концептуальное тестирование проводится для проверки общей структуры системы и
учета в ней всех аспектов решаемой задачи. На этом этапе проведение тестирования невозможно
без привлечения конечных пользователей прикладной системы.
11
Этап VI. Опытная эксплуатация и внедрение
На этапе опытной эксплуатации и внедрения проверяется пригодность экспертной системы
для конечного пользователя. Здесь система занимается решением всех возможных задач при
работе с различными пользователями. Целесообразно организовать работу системы не на стенде
разработчика, а на месте работы пользователей. К этому этапу следует переходить лишь после
того, как система, по мнению эксперта, будет успешно решать все требуемые задачи, чтобы
ошибки в решениях не создавали у пользователя отрицательное представление о системе.
Пригодность системы для пользователя определяется в основном удобством работы с ней и ее
полезностью.
Под полезностью системы понимается способность системы в ходе диалога определить
потребность пользователя, выявить и устранить причины неудач в работе и удовлетворить
потребности пользователя (т.е. решить поставленные задачи). Говоря другими словами,
пользователю важно «довести до сознания» системы свою информационную потребность,
несмотря на возможные ошибки, допускаемые им в связи с недостаточным знанием системы.
Конечно, для пользователя важны также полнота и правильность решений, но эти характеристики
должны быть проверены экспертом на предыдущем этапе.
Под удобством работы с системой понимаются:



естественность взаимодействия с системой, т.е. общение в привычном, не утомляющем
пользователя виде;
гибкость системы, т.е. способность системы настраиваться на различных
пользователей, а также учитывать изменения в квалификации одного и того, же
пользователя;
устойчивость системы к ошибкам, т.е. способность системы не выходить из строя при
ошибочных действиях неопытного пользователя.
НУЖЕН ЛИ КОГНИТОЛОГ НА ЭТАПЕ ТЕСТИРОВАНИЯ?????
По результатам эксплуатации может потребоваться не только модификация правил и
данных (совершенствование или изменение языка общения, диалоговых средств, средств
обнаружения и исправления ошибок, настройка на пользователя и т.д.), но и изменение устройств
ввода-вывода в связи с их неприемлемостью для пользователя. По результатам этого же этапа
принимается решение о тиражировании системы. После успешного завершения этапа опытной
эксплуатации и использования экспертной системы различными пользователями она может
классифицироваться как промышленная экспертная система.
В целом в процессе опытной эксплуатации прототипа происходит уточнение требований к
системе: разработчики и пользователи имеют возможность непосредственно изучить и устранить
последствия принятых проектных решений.
Принцип построения интерфейса WYSIWYG («визивиг» - What You See Is What You Get –
что вы видите, то и получаете) позволяет пользователю непосредственно оценить результаты
введенных в прототип изменений.
12
Стадии существования экспертных систем
Стадия существования характеризует степень проработанности и отлаженности
экспертной системы. Обычно выделяют следующие стадии:




исследовательский прототип;
действующий прототип;
промышленная система;
коммерческая система.
Исследовательским прототипом называют систему, которая решает представительный
класс задач приложения, но может быть неустойчива в работе и не полностью проверена. При
наличии развитых инструментальных средств для разработки исследовательского прототипа
требуется примерно 2-4 месяца. Исследовательский прототип обычно имеет в базе знаний не
больше 50 исполняемых утверждений; при использовании только частных утверждений их
количество возрастает в 3-10 раз.
Действующий прототип надежно решает все задачи, но для решения сложных задач
может требовать чрезмерно много времени и (или) памяти. Доведение системы от начала
разработки до стадии действующего прототипа требует примерно 6-9 месяцев, при этом
количество исполняемых утверждений в базе знаний увеличивается до 100.
Экспертная система, достигшая стадии промышленной системы, обеспечивает высокое
качество решений всех задач при минимуме времени и памяти. Обычно процесс преобразования
действующего прототипа в промышленную систему состоит в расширении базы знаний (до 150
исполняемых утверждений) и ее тщательной отладки. Доведение экспертной системы от начала
разработки до стадии промышленной системы на развитых инструментальных средствах требует
примерно 12-18 месяцев.
Обобщение задач, решаемых экспертной системой на стадии промышленной системы,
позволяет перейти к стадии коммерческой системы, то есть к системе, пригодной не только для
собственного использования, но и для продажи различным потребителям. Доведение системы до
коммерческой стадии требует примерно 1.5-2 года. Приведенные выше сроки справедливы для
экспертных систем средней сложности.
13
Download