Интеллектуальные информационные системы 3

1





Глава 1. Классификация интеллектуальных  информационных систем



1.1. Особенности и признаки  интеллектуальности  информационных систем 

	Любая информационная система  (ИС) выполняет следующие функции:  воспринимает вводимые пользователем информационные запросы и необходимые исходные данные, обрабатывает введенные и хранимые в системе данные в соответствии с известным алгоритмом и формирует требуемую выходную информацию. С точки зрения реализации перечисленных функций ИС можно рассматривать как фабрику, производящую информацию, в которой заказом является информационный запрос, сырьем - исходные данные, продуктом - требуемая информация, а инструментом (оборудованием) - знание, с помощью которого  данные преобразуются в информацию.

	Знание имеет двоякую природу: фактуальную и операционную.

Фактуальное знание - это осмысленные и понятые данные. Данные сами по себе - это специально организованные знаки на каком-либо носителе.

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

	Часто фактуальное знание называют экстенсиональным (детализированным), а операционное знание - интенсиональным (обобщенным).

	Процесс извлечения информации из данных сводится к адекватному соединению операционного и фактуального знаний и в различных  типах ИС выполняется по-разному. Самый простой путь их соединения заключается в рамках  одной прикладной программы:



	Программа = Алгоритм (Правила преобразования данных +

                                       Управляющая структура) + Структура данных

 

	Таким образом, операционное знание (алгоритм) и фактуальное знание (структура данных) неотделимы друг от друга. Однако, если в ходе эксплуатации ИС выяснится потребность в модификации одного из двух компонентов программы, то возникнет необходимость ее переписывания. Это объясняется тем, что полным знанием проблемной области обладает только разработчик ИС, а программа служит “недумающим исполнителем” знания разработчика. Конечный же пользователь вследствие процедурности и машинной ориентированности представления знаний понимает лишь внешнюю сторону процесса обработки данных и никак не  может на него влиять. 

	Следствием перечисленных недостатков является плохая жизнеспособность ИС или неадаптивность к  изменениям информационных потребностей. Кроме того, в силу детерминированности алгоритмов решаемых задач ИС не способна к формированию  у  пользователя  знания о действиях в не полностью определенных ситуациях.    

	В системах, основанных на обработке баз данных (СБД - Data Base Systems), происходит отделение фактуального и операционного знаний друг от друга. Первое организуется в виде базы данных, второе - в виде программ. Причем программа может автоматически генерироваться по запросу пользователя (например, реализация SQL или QBE запросов). В качестве посредника между программой и базой данных выступает программный инструмент доступа к данным - система управления базой данных (СУБД):



	СБД = Программа <=> СУБД <=> База данных



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

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

	Анализ структуры программы показывает возможность выделения из программы операционного знания (правил преобразования данных) в так называемую базу знаний, которая в декларативной форме хранит общие для различных задач единицы знаний. При этом управляющая структура приобретает характер универсального механизма решения задач (механизма вывода), который связывает единицы знаний в исполняемые цепочки (генерируемые алгоритмы) в зависимости от конкретной постановки задачи (сформулированной в запросе цели и исходных условий). Такие ИС становятся системами, основанными на обработке  знаний  (СБЗ - Knowledge Base (Based) Systems):



СБЗ = База знаний <=> Управляющая структура <=> База данных

 (Механизм     вывода)





	Для интеллектуальных информационных систем, ориентированных на генерацию алгоритмов решения задач,  характерны следующие признаки:

развитые коммуникативные способности,

умение решать сложные  плохо формализуемые задачи,

способность к самообучению,

	Коммуникативные способности ИИС характеризуют способ взаимодействия (интерфейса) конечного пользователя с системой, в частности, возможность формулирования произвольного запроса в диалоге с ИИС на языке, максимально приближенном к естественному. 

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

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

	В различных ИИС  перечисленные признаки интеллектуальности развиты в неодинаковой степени и редко, когда все четыре признака реализуются одновременно. Условно каждому из признаков интеллектуальности соответствует свой класс ИИС (рис. 1.1):

Системы с интеллектуальным интерфейсом;

Экспертные системы;

Самообучающиеся системы;

Рис. 1.1. Классификация ИИС





1.2. Системы с интеллектуальным интерфейсом

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

- “Вывести список товаров, цена которых выше среднеотраслевой”,

- “Вывести список товаров-заменителей некоторой продукции”,

- “Вывести список потенциальных покупателей некоторого товара” и т.д.

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

	Во всех перечисленных типах запросов требуется осуществить поиск по условию, которое должно быть доопределено в ходе решения задачи. Интеллектуальная система без помощи пользователя по структуре базы данных сама  строит путь доступа к файлам данных.   Формулирование запроса осуществляется в диалоге с пользователем, последовательность шагов которого выполняется в максимально удобной для пользователя  форме. Запрос к базе данных может формулироваться и с помощью естественно-языкового интерфейса. 

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

	Естественно-языковый интерфейс используется для:

доступа к интеллектуальным базам данных;

контекстного поиска документальной текстовой информации;

голосового ввода команд в системах управления;

машинного перевода  c иностранных языков. 

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

	Системы контекстной помощи можно рассматривать,  как частный случай интеллектуальных гипертекстовых и естественно-языковых систем. В отличие от обычных систем помощи, навязывающих пользователю схему поиска требуемой информации, в системах контекстной помощи пользователь описывает проблему (ситуацию), а система с помощью дополнительного диалога ее конкретизирует и сама выполняет поиск относящихся к ситуации рекомендаций. Такие системы относятся к классу систем распространения знаний (Knowledge Publishing) и создаются как приложение к системам документации (например, технической документации по эксплуатации товаров).

	Системы когнитивной графики  позволяют осуществлять интерфейс пользователя с ИИС с помощью графических  образов, которые  генерируются в  соответствии с происходящими событиями. Такие системы используются в мониторинге и управлении оперативными процессами.  Графические  образы в наглядном и интегрированном виде описывают множество параметров изучаемой  ситуации. Например, состояние сложного управляемого объекта отображается в виде человеческого лица, на котором каждая черта отвечает за какой-либо параметр, а общее выражение лица дает интегрированную характеристику ситуации.  

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









1.3. Экспертные системы

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

	Экспертная система является инструментом, усиливающим интеллектуальные способности эксперта, и может выполнять следующие роли:

консультанта для неопытных или непрофессиональных пользователей;

ассистента в связи с необходимостью анализа экспертом различных вариантов принятия  решений;

партнера эксперта по вопросам, относящимся к источникам знаний из смежных областей деятельности.

	Экспертные системы используются во многих областях, среди которых лидирует сегмент приложений в бизнесе (рис. 1.2) [ 21 ]. 	

Рис. 1.2. Области применения экспертных систем 



Архитектура экспертной системы (рис.1.3) включает в себя два основных компонента: базу знаний (хранилище единиц знаний) и программный инструмент доступа и обработки знаний, состоящий из механизмов вывода заключений (решения), приобретения знаний, объяснения получаемых результатов и интеллектуального интерфейса. Причем центральным компонентом  экспертной системы является база знаний, которая выступает по отношению к  другим компонентам как содержательная подсистема, составляющая основную ценность. “Know-how” базы знаний хорошей экспертной системы оценивается в сотни тысяч долларов, в то время как программный  инструментарий -  в тысячи или десятки тысяч долларов.  

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



 Рис.1.3 Архитектура экспертной системы



	В качестве методов представления знаний чаще всего  используются либо правила, либо объекты (фреймы), либо их комбинация. Так, правила представляют собой конструкции:

                   		Если    < условие > 

            		То       <заключение>  CF (Фактор определенности) <значение>

	В качестве факторов определенности (CF), как правило, выступают либо условные вероятности байесовского подхода (от 0 до 1), либо коэффициенты уверенности нечеткой логики (от 0 до 100). Примеры правил имеют следующий вид:

Правило 1: Если Коэффициент  рентабельности > 0.2

                     То Рентабельность = "удовл." CF 100

Правило 2: Если Задолженность = "нет" и  Рентабельность = "удовл."

                     То Финансовое_сост. = "удовл." CF 80 

Правило 3: Если Финансовое_сост. = "удовл." и Репутация="удовл."

                     То  Надежность предприятия = "удовл." CF 90 

	Объекты представляют собой совокупность атрибутов, описывающих свойства и отношения с другими объектами. В отличие от записей баз данных каждый объект имеет уникальное имя. Часть атрибутов отражают типизированные отношения, такие как  “род - вид” (super-class - sub-class), “целое - часть” и др. Вместо конкретных значений атрибутов объектов могут задаваться  значения по умолчанию (указатель наследования атрибутов устанавливается в S), присущие целым классам объектов, или присоединенные процедуры (process). Пример описания  объектов представлен на рис. 1.4.  

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

 	Механизм вывода. Этот программный инструмент получает от интеллектуального интерфейса преобразованный во внутреннее представление запрос,  формирует из базы знаний конкретный алгоритм решения задачи, выполняет алгоритм, а полученный результат  предоставляется интеллектуальному интерфейсу для выдачи ответа на запрос пользователя.



ПРЕДПРИЯТИЕ_ОТРАСЛИ#1

Имя слота

Указатель наследования

Тип

Значение

Super-сlass

U

FRAME

ROOT

Sub-сlass

U

FRAME

Предприятие 

Код предприятия

U

String

    101

Код отрасли

U

String

123

Отраслевой

коэфф. рент.

U

Real

     20

	

             ПРЕПРИЯТИЕ#1

Имя слота

Указатель наследования

Тип

Значение

Super-сlass

S

FRAME

Предприятие

отрасли

Sub-сlass

-

-

-

Код предприятия

S

String

101

Код 

отрасли

S

String

123

Отраслевой

коэфф. рент.

S

Real

  20

Коэфф. рент.



Real

  25

Задолженность



String

Нет

Репутация



String

Удовл

Фин.состояние



Process

Fin_sost

Надежность



Process

Nad

Рис. 1.4. Описание  объектов

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

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



Рис. 1.5.  Прямая цепочка рассуждений



Рис. 1.6.   Обратная цепочка рассуждений

	Механизм объяснения. В процессе  или  по результатам решения задачи пользователь может запросить объяснение или обоснование хода решения.  С этой  целью  ЭС должна предоставить соответствующий механизм объяснения.  Объяснительные способности ЭС определяются возможностью механизма вывода  запоминать  путь  решения  задачи.  Тогда на вопросы пользователя "Как?" и "Почему?" получено решение или запрошены те или иные  данные  система всегда  может выдать цепочку рассуждений до требуемой контрольной точки, сопровождая выдачу объяснения заранее подготовленными комментариями. В случае  отсутствия решения задач объяснение должно выдаваться пользователю автоматически. Полезно иметь возможность и гипотетического объяснения решения задачи,  когда система отвечает на вопросы,  что будет в том или ином случае.

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

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

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

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

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

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

По числу используемых источников знаний экспертные системы могут быть построены с использованием одного или множества источников знаний. Источники знаний могут быть альтернативными (множество миров) или дополняющими друг друга (кооперирующими).

	В соответствии с перечисленными признаками классификации, как правило, выделяются следующие четыре основные класса экспертных систем (рис. 1.7)





Анализ

Синтез



Детерминирован-ность знаний

Классифици-рующие

Трансформи-рующие

Один источник

знаний

Неопределенность знаний

Доопределя-ющие

Многоагент-ные

Множество источн. знаний



Статика

Динамика



Рис. 1.7. Классы экспертных систем

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

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

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

	Для аналитических задач классифицирующего и доопределяющего типов  характерны следующие проблемные области:

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

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

Коррекция  - диагностика,  дополненная возможностью оценки и рекомендации действий по исправлению отклонений от  нормального  состояния рассматриваемых ситуаций.

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

	В качестве  методов  решения  задач в трансформирующих экспертных системах используются разновидности гипотетического вывода:

генерации и тестирования,  когда по исходным данным осуществляется  генерация гипотез,  а затем проверка сформулированных гипотез на подтверждение поступающими фактами;

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

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

	Многоагентные системы. Для таких динамических систем характерна интеграция в базе знаний нескольких разнородных источников знаний, обменивающихся между собой получаемыми результатами на динамической основе,  например,  через "доску объявлений" (рис. 1.8).



Рис. 1.8. “Доска объявлений”

	Для многоагентных систем характерны следующие особенности:

Проведение альтернативных рассуждений на  основе  использования  различных источников знаний с механизмом устранения противоречий;

Распределенное решение проблем,  которые разбиваются на  параллельно решаемые подпроблемы,  соответствующие самостоятельным источникам знаний;

Применение  множества стратегий работы механизма вывода заключений в зависимости от типа решаемой проблемы;

Обработка больших массивов данных, содержащихся в базе данных;

Использование различных математических моделей и внешних процедур, хранимых в базе моделей;

Способность прерывания решения задач в связи  с  необходимостью получения  дополнительных  данных и знаний от пользователей,  моделей, параллельно решаемых подпроблем.

	Для синтезирующих динамических экспертных систем наиболее применимы следующие проблемные области:

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

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

Диспетчирование - распределение  работ  во  времени,  составление расписаний, например, планирование графика освоения капиталовложений.

Планирование - выбор последовательности действий пользователей по достижению поставленной цели, например, планирование процессов  поставки продукции.

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

Управление - мониторинг, дополненный реализацией действий в автоматических системах, например, принятие решений на биржевых торгах.

	По данным публикации [ 21 ], в которой проводится анализ 12500 действующих экспертных систем, распределение экспертных систем по проблемным областям имеет следующий вид (рис. 1.9):



Рис. 1.9. Проблемные области экспертных систем



1.4. Самообучающиеся системы

	В основе  самообучающихся систем лежат методы автоматической классификации примеров ситуаций  реальной  практики (обучения на примерах). Примеры реальных ситуаций накапливаются за некоторый исторический период и составляют обучающую выборку. Эти примеры   описываются множеством признаков классификации. Причем обучающая выборка может быть: 

“с учителем”, когда для каждого примера задается в явном виде значение признака его принадлежности некоторому классу ситуаций (классообразующего признака);

“без учителя”, когда по степени близости значений признаков классификации система сама выделяет классы ситуаций.

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

	Общие недостатки,  свойственные всем самообучающимся системам, заключаются в следующем:

возможна неполнота и/или зашумленность (избыточность) обучающей выборки  и,  как  следствие,   относительная адекватность   базы знаний возникающим проблемам;

возникают  проблемы,  связанные с плохой смысловой ясностью зависимостей признаков и, как следствие, неспособность объяснения пользователям получаемых результатов;

ограничения в размерности признакового  пространства вызывают неглубокое описание проблемной области и узкую направленность применения.

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

	Процесс классификации примеров осуществляется следующим образом:

Выбирается признак классификации из множества заданных (либо последовательно, либо по какому-либо правилу, например, в соответствии с максимальным числом получаемых подмножеств примеров);

По значению выбранного признака множество примеров разбивается на подмножества;

Выполняется проверка, принадлежит ли каждое образовавшееся подмножество примеров одному подклассу;

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

Для подмножеств примеров с несовпадающим значением классообразующего признака процесс классификации продолжается, начиная с пункта 1.  (Каждое подмножество примеров становится классифицируемым множеством).

	Процесс классификации может быть представлен в виде дерева решений, в котором в промежуточных узлах находятся значения признаков последовательной классификации, а в конечных узлах - значения признака принадлежности определенному классу. Пример построения дерева решений на основе фрагмента таблицы примеров (таблица 1.1) показан на рис. 1.10. 

Таблица 1.1

Классообр.

признак



Признаки

классификации



Цена

Спрос

Конкуренция

Издержки

Качество

низкая

низкий

маленькая

маленькие

низкое

высокая

низкий

маленькая

большие

высокое

высокая

высокий

маленькая

большие

низкое

высокая

высокий

маленькая

маленькие

высокое

высокая

высокий

маленькая

маленькие

низкое

высокая

высокий

маленькая

большие

высокое



Рис. 1.10. Фрагмент дерева решений

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

 Если  Спрос=“низкий” и Издержки=“маленькие”

 То       Цена=“низкая”

	Примерами инструментальных средств, поддерживающих индуктивный вывод знаний, являются 1st Class (Programs in Motion), Rulemaster (Radian Corp.), ИЛИС (ArgusSoft), KAD (ИПС Переяславль-Залесский).

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



Рис.1.11.  Решающая функция - “нейрон”

	Каждая такая функция, называемая по аналогии с элементарной единицей человеческого мозга - нейроном, отображает зависимость значения выходного признака (Y) от взвешенной суммы (U) значений входных признаков (Xi), в которой вес входного признака (Wi) показывает степень влияния входного признака на выходной: 



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

	Функциональная зависимость может быть линейной, но, как правило, используется  сигмоидальная форма, которая позволяет вычленять более сложные  пространства значений выходных признаков. Такая функция  называется логистической (рис.1.12).



Рис.1.12. Логистическая (сигмоидальная) функция

	Нейроны могут быть связаны между собой, когда выход одного нейрона является входом другого. Таким образом, строится нейронная сеть (рис. 1.13), в которой нейроны, находящиеся на одном уровне, образуют слои.



Рис.1.13. Нейронная сеть

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

	Наиболее распространенным алгоритмом обучения нейронной сети является алгоритм обратного распространения ошибки. Целевая функция по этому алгоритму должна обеспечить минимизацию квадрата ошибки в обучении по всем примерам:

, где

Ti - заданное значение  выходного признака по i - му примеру;

Yi - вычисленное значение выходного признака по i - му примеру.

	Сущность алгоритма обратного распространения ошибки сводится к следующему:

Задать произвольно небольшие начальные значения весов связей нейронов.

Для всех обучающих пар “значения входных признаков - значение выходного признака” (примеров из обучающей выборки) вычислить  выход сети (Y).

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

Вычислить веса на (t+1) шаге по формуле:

, где 

 - вес связи от скрытого i -го нейрона или от входа к j-му нейрону   на шаге t;

 - выходное значение i -го нейрона;

 - коэффициент скорости обучения;

 - ошибка для j-го нейрона.

Если j-й нейрон - выходной, то 



Если j-й нейрон находится в  скрытом внутреннем слое, то

, где 

к - индекс всех нейронов в слое, расположенном вслед за слоем с j-м нейроном.

Выполнить шаг 2.

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

	Сам процесс решения задач в силу проведения матричных преобразований проводится очень быстро. Фактически имитируется параллельный процесс прохода по нейронной сети в отличие от последовательного в индуктивных системах. Нейронные сети могут быть реализованы и аппаратно в виде нейрокомпьютеров с ассоциативной памятью.

	Последнее время нейронные сети получили стремительное развитие и очень активно используются в финансовой области.  В качестве примеров внедрения нейронных сетей  можно назвать:

"Система прогнозирования динамики биржевых  курсов  для  Chemical Bank" (фирма Logica);

"Система прогнозирования для Лондонской  фондовой  биржи"  (фирма SearchSpace);

"Управление инвестициями для Mellon Bank"  (фирма  NeuralWare)  и др.

	В качестве инструментальных средств  разработки  нейронных  сетей следует выделить инструментальные средства  NeurOn-line (фирма GENSYM), NeuralWorks Professional II/Plus (фирма NeuralWare),  отечественную разработку FOREX-94 (Уралвнешторгбанк) и др.

	Системы, основанные на прецедентах (Case-based reasoning). В этих системах база знаний содержит описания не обобщенных ситуаций, а собственно сами ситуации или прецеденты. Тогда поиск решения проблемы сводится к поиску по аналогии (абдуктивному выводу от частного к частному):

Получение подробной информации о текущей проблеме;

Сопоставление полученной информации со значениями признаков прецедентов из базы знаний;

Выбор прецедента из базы знаний, наиболее близкого к рассматриваемой проблеме;

В случае необходимости выполняется адаптация выбранного прецедента к текущей проблеме;

Проверка корректности каждого полученного решения;

Занесение детальной информации о полученном решении в базу знаний.  

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

	Системы, основанные на прецедентах, применяются как системы распространения знаний с расширенными возможностями или как в системах контекстной помощи (рис.  1.14.).

Описание ситуации (проблемы)

	Не печатает принтер

Вопросы

	Включено ли питание?         да

	Прошло ли тестирование?   да

	Замята ли бумага?                 да

	Подключен ли драйвер?       не знаю

Действия 

	Освободите бумагу                уверенность 80

	Загрузите драйвер                  уверенность 50

	Вызовите тех. персонал        уверенность  10

Рис. 1.14. Пример диалога с CBR-системой

	В качестве примера инструментального  средства поддержки  баз знаний прецедентов, распространяемого в России, можно назвать систему CBR-Express (Inference, дистрибьютор фирма Метатехнология).

	Информационные хранилища (Data Warehouse). В отличие от интеллектуальной базы данных информационное хранилище представляет собой хранилище извлеченной значимой информации из оперативной базы данных, которое предназначено для оперативного  анализа данных (реализации OLAP - технологии). Извлечение знаний из баз данных осуществляется регулярно, например, ежедневно.

	Типичными задачами оперативного ситуационного анализа являются:

Определение профиля потребителей конкретного товара;

Предсказание изменений ситуации на рынке;

Анализ зависимостей признаков ситуаций (корреляционный анализ) и др.

	Для извлечения значимой информации из баз данных используются специальные

 методы (Data Mining или Knowledge Discovery), основанные или на применении многомерных статистических таблиц, или индуктивных методов построения деревьев решений, или нейронных сетей. Формулирование запроса осуществляется в результате применения интеллектуального интерфейса, позволяющего в диалоге гибко определять значимые признаки анализа.

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

	Разработкой  и распространением информационных хранилищ в настоящее время занимаются такие компьютерные фирмы, как IBM (Intelligent Miner), Silicon Graphics  (MineSet), Intersolv (DataDirect, SmartData), Oracle (Express), SAS Institute (SAS/Assist) и др.




Глава 2. Технология  создания экспертных систем

2.1. Этапы создания экспертной системы

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

Извлечение знаний при создании экспертной системы предполагает изучение множества источников знаний, к которым относятся специальная литература, базы фактуальных знаний, отчеты о решении аналогичных проблем, а самое главное, опыт работы специалистов в исследуемой проблемной области - экспертов. Успех проектирования экспертной системы во многом определяется тем, насколько компетентны привлекаемые к разработке эксперты и насколько они способны передать свой опыт инженерам по знаниям. Вместе с тем, эксперты не имеют представления о возможностях и ограничениях ЭС. Следовательно процесс разработки ЭС должен быть организован инженерами по знаниям таким образом, чтобы в процессе их итеративного взаимодействия с экспертами они получили весь необходимый объем знаний для решения четко очерченных проблем. Этапы проектирования экспертной системы представлены на рис. 2.1.

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

	На этапе тестирования созданные экспертные системы оцениваются  с позиции двух основных групп критериев: точности и полезности.

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



Рис.2.1. Этапы создания экспертной системы   

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

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

Таблица 2.1

Приемы

Описание

1. Наблюдение

Инженер наблюдает, не вмешиваясь, за тем, как эксперт решает реальную задачу

2. Обсуждение задачи

Инженер на представительном множестве задач неформально обсуждает с экспертом данные,                           знания и процедуры решения

3. Описание задачи

Эксперт описывает решение задач для типичных запросов

4. Анализ решения

Эксперт комментирует получаемые результаты решения задачи, детализируя ход рассуждений

5. Проверка системы

Эксперт предлагает инженеру перечень задач  для решения (от простых до сложных),которые                           решаются разработанной системой

6. Исследование системы

Эксперт исследует и критикует структуру базы знаний и работу механизма вывода

7. Оценка системы

Инженер предлагает новым экспертам оценить решения разработанной системы

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

 						            Таблица 2.2.

Этап разработки

Характер прототипа

Количество правил

Срок разработки

Стоимость

Идентификация

Демонстрацион-ный 

50 - 100

1 - 2 мес. 



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

Исследователь- 







Формализация

ский

200 - 500

3 - 6 мес.

25 - 50т.$

Реализация

Действующий

500 - 1000

6 - 12 мес.



Тестирование

Промышленный

1000 - 1500

1 - 1,5 года

300т.$

Опытная эксплуатация

Коммерческий

1500 - 3000

1,5 - 3 года

2 - 5 млн.$ 



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

	Пример разработки экспертной системы гарантирования (страхования) коммерческих займов CLUES (loan-uderwriting expert systems) [ 21 ] представлен в таблице 2.3. Эта система создавалась  в интегрированной среде ART группой разработчиков в составе одного менеджера проекта, двух инженеров по знаниям, двух программистов, ответственных за сопряжение ЭС с существующей информационной системой и аналитическим инструментом, одного контролера качества.  Сложность созданной системы: 1000 правил, 180 функций, 120 объектов. Эффективность: при оценке 8500 кредитов в месяц годовая экономия на обработке информации составляет 0,91 млн. долл., при 30000 кредитов - 2,7 млн. долл. При этом в 50% случаев система принимает самостоятельные решения, в остальных случаях дает экспертам  диагностику возникающих проблем. Время оценки кредита сократилось с 50 минут до 10-15 минут. Перечисленные показатели эффективности позволили компании Contrywide расширить сферу своей деятельности во всех штатах США  и  увеличить оборот  с  1 млрд. долл. в месяц в 1991 году до 5 млрд. долл. в 1993 году.

2.2. Идентификация проблемной области

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

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

обучение  и  консультация  неопытных пользователей;

распространение  и  использование  уникального  опыта экспертов;

автоматизация работы экспертов по  принятию  решений ;

оптимизация  решения  проблем,  выдвижение  и  проверка гипотез.

Таблица 2.3.

Период времени

Этап

Ноябрь 1991г.

Постановка проблемы

Январь 1992г.

Создание отдела ЭС

Февраль - апрель 1992г.

Интервьюирование экспертов

Апрель - май 1992г.

Моделирование и создание первого прототипа

Май - июнь 1992г.

Кодирование (реализация)

Июнь - сентябрь 1992г.

Внутреннее тестирование. Системная интеграция

Сентябрь - декабрь 1992г.

Альфа-тестирование на известных примерах

Декабрь - январь 1993г.

Бета-тестирование на реальных примерах

Февраль 1993г.

Внедрение в отрасли розничной торговли (20% кредитов)

Май 1993г.

Внедрение в потребительский сектор (10% кредитов)

Август 1993г.

Внедрение в отрасли оптовой торговли (35% кредитов)

Февраль 1994г.

Внедрение в корреспондентскую сеть (35% кредитов)

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

	Ограничивающими факторами   на   разработку   экспертной  системы выступают отводимые сроки, финансовые ресурсы и программно-техническая среда. От  этих  ограничений  зависит  количественный  и  качественный состав групп инженеров по знаниям и экспертов, глубина прорабатываемых вопросов, адекватность и эффективность решения проблем. Обычно различают три стратегии разработки экспертных систем (таблица 2.4) [18, 20]:

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

концентрированный набор задач, определяющий основные направления повышения эффективности функционирования экономического объекта; 

комплексный набор задач, определяющий организацию всей деятельности экономического объекта.

	После предварительного определения  контуров   разрабатываемой экспертной  системы  инженеры по знаниям совместно с экспертами осуществляют более детальную постановку проблем и параметризацию системы.  К  основным  параметрам  проблемной   области относятся следующие:

класс решаемых задач (интерпретация, диагностика, коррекция, прогнозирование, планирование, проектирование, мониторинг, управление);

критерии  эффективности результатов решения задач  (минимизация использования ресурсов,  повышение качества продукции и  обслуживания, ускорение оборачиваемости капитала и т.д.);

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

цели решаемых задач (выбор из  альтернатив, например,  выбор поставщика или синтез значения, например, распределение бюджета по статьям);

подцели  (разбиение задачи на подзадачи,  для каждой из которых определяется своя цель);

исходные данные (совокупность используемых факторов);

особенности используемых знаний (детерминированность/ неопределенность, статичность/динамичность, одноцелевая/ многоцелевая  направленность, единственность/множественность источников знаний).



Стратегии разработки экспертных систем

Таблица 2.4.



Широкий 

набор задач

Концентрированный набор задач

Комплексный

	набор задач

Назначение

Автоматизация

Стандартизация,

повышение качества

Реорганизация

бизнес-процессов

Требования к разработчикам

Эксперты-пользователи

Профессиональные команды

Междисциплинарные команды

Стоимость

Низкая на проект

Высокая на проект

Высокая на проект

Риск

Диверсифицированный

Концентрированный

Концентрированный

Примеры

DuPont du Nemours

Оболочка Insight Plus

Сотни экспертных систем. Сотни правил в каждой ЭС

DEC, ЭС конфигурирования компьютеров XCON, продажи XSEL

17000 правил, 

эффект 27 млн. долл.

Xerox

Среда разработки информационной системы

ART-Enterprise (Inferenсe)

Интеллект. моделирование

ReThink (Gensym)



2.3. Построение концептуальной модели

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

	Результат концептуализации проблемной области обычно фиксируется в виде наглядных графических схем на объектном, функциональном и поведенческом уровнях моделирования: 

объектная модель описывает структуру предметной области как совокупности взаимосвязанных объектов;

функциональная модель отражает действия и преобразования над объектами;

поведенческая модель рассматривает взаимодействия объектов во временном аспекте.

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

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

	предикат (Объект, Значение).

	Если предикат определяет название свойства объекта, то в качестве значения выступает конкретное значение этого свойства, например:

	профессия ("Иванов", "Инженер").

	Если предикат определяет название связи объекта, то значению соответствует объект, с которым связан первый объект, например: 

	Работает ("Иванов", "Механический цех" ). 

	В качестве важнейших типизированных видов отношений рассматриваются следующие отношения:

“род” - “вид” (обобщение);

“целое” - “часть” (агрегация);

“причина” - “следствие”;

“цель” - “средство”;

“функция” - “аргумент”;

“ассоциация”;

“хронология”;

“пространственное положение” и др.

	Так, отношения обобщения  ("род"  -  "вид") фиксируется на уровне названий классов объектов, например:

	есть-подкласс (Инженеры, Личности).

	Под классом объектов понимается совокупность объектов с одинаковым набором предикатов (свойств  и связей).  Класс объектов часто описывается в виде n-арного реляционного отношения, например:

	личности ( ФИО, Профессия, Подразделение, ... ).

	Если объекты обладают частично пересекающимся набором предикатов, то осуществляется более сложная классификация объектов: класс объектов по значениям какого-либо свойства (признака) разбивается на  подклассы таким  образом,  что  класс  объектов  содержит  общие  для подклассов свойства и  связи,  а  каждый  из  подклассов  отражает  специфические свойства и связи, например:

личности ( ФИО, Год рождения, Профессия, Подразделение, ... )

инженеры ( ФИО, ВУЗ, Оклад, ... )

рабочие ( ФИО, Разряд, Тарифная ставка, ... )

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

	Отношение агрегации классов объектов ("целое" - "часть") отражает составные части объектов, которое можно представить в бинарном виде на именах двух классов объектов:

	есть-часть ( Оборудование, Цех );

	есть-часть ( Рабочие, Цех ).

Аналогично представляются другие семантические отношения:

причина-следствие (Задолженность, Банкротство);

аргумент-функция ( Спрос, Цена);

средство-цель (Покупка акций, Прибыль);

ассоциация (Производство, Обслуживание);

хронология (Отгрузка, Поставка);

пространственное положение (Сборка, Технический контроль).

Обычно объектное знание представляется графически средствами ER-моделей (модель "Сущность - Связь") - см. [15].

	Функциональная модель описывает  преобразования фактов, зависимости между ними, показывающие, как одни факты обpазуются из дpугих. В качестве единицы функционального  знания  определим функциональную зависимость фактов в виде импликации:

А1_/\А2_/\А3_/\ ... /\Аn_ -> B,

означающей, что факт В имеет место только в том случае, если имеет

место конъюнкция фактов или их отрицаний А1, А2, ... , Аn , например:




сбыт (Товар, "Слабый") и

прибыль (Товар, "Ничтожная") и

потребители (Товар, "Любители нового") и

число_конкурентов (Товар,"Небольшое") ->

жизненный_цикл (Товар, "Выведение на рынок").

	Функциональную зависимость фактов можно трактовать как отражение следующих отношений фактов:

 "Причина" - "Следствие";

 "Средство" - "Цель";

 "Аргумент" - "Функция";

 "Ситуация" - "Действие".

 	В качестве термов конъюнкции фактов могут выступать более сложные логические условия.

	Функциональная модель строится   путем   последовательной декомпозиции целей, а именно: для цели определяются подцели, для которых в свою очередь устанавливаются подцели и так дальше, пока в  качестве подцелей не окажутся исходные факты (процесс декомпозиции "сверху" - "вниз").  Каждой  цели  (подцели) соответствует некоторая задача (подзадача), которая не может быть решена, пока не будут достигнуты ее нижестоящие подцели (решены подзадачи). Таким образом, функциональная модель отражает в обобщенной форме процесс решения характерных для нее задач.

	Обычно функциональные зависимости фактов представляются графически в виде деревьев целей или графов "И" - "ИЛИ" (рис. 2.2), в которых каждый зависимый факт представляет собой целевую переменную - корневую вершину, а определяющие его факты-аргументы - cвязанные с корнем подчиненные вершины, условие конъюнкции (совместности анализа факторов) обозначается пересекающей дугой, а условие дизъюнкции (независимости влияния на цель факторов) никак не обозначается, причем если какой-либо факт-аргумент, в свою очередь, определяется другими фактами-аргументами, то он становится подцелью.







Рис. 2.2. Дерево целей - граф “И -ИЛИ”

	

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



Таблица 2.5.

ЗАКАЗ

СОБЫТИЕ  

(Сообщение)

ПОВЕДЕНИЕ

(Действие)

СОСТОЯНИЕ

(Жизненный цикл)

 Оформляется

Создание заказа

 Проверка выполнимости

Оформлен

Откладывается

Заказ у производителя

Отложен

Выполняется

Отправляется

 Выписываются платежные документы

Выполнен

 Оплачивается

Уничтожение заказа

Оплачен

2.4. Формализация базы знаний

	На этапе формализации базы знаний осуществляется выбор метода представления знаний. В рамках выбранного формализма осуществляется проектирование логической структуры базы знаний. 

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





Рис. 2.3. Классификация методов представления знаний



	Так, объектные методы представления знаний в большей степени ориентированы на представление структуры фактуального знания, а правила - операционного.

Логическая модель реализует и объекты, и правила с помощью предикатов первого порядка, является строго формализованной моделью с универсальным дедуктивным и монотонным методом логического вывода “от цели к данным”;

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

Семантическая сеть отображает разнообразные отношения объектов;

Фреймовая модель, как частный случай семантической сети, использует для реализации операционного знания присоединенные процедуры;

Объектно-ориентированная модель, как развитие фреймовой модели, реализуя обмен сообщениями между объектами, в большей степени ориентирована на решение динамических задач и отражение поведенческой модели.

	Логическая модель  предполагает унифицированное описание объектов и  действий  в  виде  предикатов  первого  порядка.   Под   предикатом понимается  логическая  функция на N - аргументах (признаках),  которая принимает истинное или  ложное  значение  в  зависимости  от  значений аргументов.  Отличие   заключается   в   том,   что   для   объектов соответствующие реляционные отношения задаются явно в виде  фактов,  а действия  описываются как  правила,  определяющие  логическую формулу вывода фактов из других фактов. Пример фрагмента базы знаний подбора претендентов  на  вакансии в языке логического программирования ПРОЛОГ представлен на рис. 2.4.  (Обозначения:  ":-" - "если", "," - "и", "." - "конец утверждения").

         vibor(Fio,Dolgnost):-

                pretendent(Fio, Obrazov, Stag),

                vacancy(Dolgnost, Obrazov, Opyt),

                Stag>=Opyt.

          pretendent("Иванов","среднее" 10).

          pretendent("Петров","высшее", 12).

          vacancy("менеджер", "высшее", 10).

          vacancy("директор", "высшее", 15).

Рис. 2.4. Пример фрагмента базы знаний на языке ПРОЛОГ

	Механизм вывода   осуществляет   дедуктивный   перебор    фактов, относящихся к  правилу по принципу "сверху - вниз",  "слева - направо" или обратный вывод методом поиска в глубину.  Так,  в ответ  на  запрос vibor(X,Y) получим: X="Петров", Y="менеджер".

	Правила могут связываться в цепочки в результате использования одинакового предиката  в  посылке одного и в заключении другого правила.

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

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

 	В продукционной модели основной единицей знаний служит правило  в виде: "если <посылка>, то <заключение>", с помощью которого могут быть выражены       пространственно-временные,       причинно-следственные, функционально-поведенческие  (ситуация - действие) отношения объектов. Правилами могут быть описаны и сами объекты: "объект - свойство" или "набор свойств - объект", хотя чаще описания объектов фигурируют только в качестве переменных ("атрибут - значение") внутри правил. В основном продукционная  модель  предназначена  для  описания последовательности различных  ситуаций   или   действий   и   в   меньшей   степени   для структурированного  описания объектов.

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

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

     < A, B, C -> D, E >, где

-  импликация С - > D представляет собственно правило;

-  А - предусловие выбора класса правил;

-  B - предусловие выбора правила в классе;

- Е - постусловие правила, определяющее переход на следующее правило.

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

	Сами правила могут иметь как простой,  так и обобщенный характер. Простые правила   описывают  продукции   над   единичными   объектами, обобщенные правила  определяются  на  классах   объектов   (аналогично правилам языка ПРОЛОГ).

	Для обработки  неопределенностей  знаний   продукционная   модель использует, как  правило,  либо методы обработки условных вероятностей Байеса, либо методы нечеткой логики Заде. 

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

            P(H/E) = P(E/H)*P(H)/P(E)  и

            P(^H/E) = P(E/^ H)*P(^H)/P(E),

где  Р(Н)    - априорная вероятность гипотезы Н;

     Р(^Н)   = 1 - Р(Н) - априорная вероятность отрицания гипотезы Н;

     Р(Е)    - априорная вероятность свидетельства Е;

     Р(Н/Е)  - апостериорная  (условная) вероятность гипотезы  Н  при

условии, что имеет место свидетельство Е;

	Р(^Н/Е) - апостериорная (условная) вероятность отрицания гипотезы Н при условии, что имеет место свидетельство Е;

	Р(Е/Н)  - вероятность свидетельства гипотезы Е при  подтверждении гипотезы Н;

	Р(Е/^Н) - вероятность  свидетельства  гипотезы  Е  при отрицании гипотезы Н.

Найдем отношения левых и правых частей представленных уравнений:

            P(H/E)         P(E/H)         Р(H)

            ---------- =    ----------  *    -------         или

            P(^H/E)      P(E/^ H)       P(^H)



            О(Н/Е) =  Ls *  О(Н) ,      где

	- О(Н)   - априорные шансы гипотезы  Н, отражающие отношение  числа позитивных проявлений гипотезы  к числу негативных;

	- О(Н/Е) - апостериорные  шансы  гипотезы  Н  при  условии  наличия свидетельства Е;

	- Ls - фактор  достаточности,  отражающий  степень  воздействия  на шансы гипотезы при наличии свидетельства Е.

	Аналогично выводится зависимость:

О(Н/^Е) =  Ln *  О(Н) ,      где

	- О(Н/Е) - апостериорные шансы гипотезы Н  при  условии  отсутствия свидетельства Е;

	- Ln  - фактор  необходимости,  отражающий  степень  воздействия  на шансы гипотезы при отсутствии свидетельства Е.

	Шансы и вероятности связаны уравнениями:

                     Р                          О

           О = -------     и    Р  =  --------

                   1 - Р                     О + 1

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

	Рассмотрим использование байесовского подхода на  примере  оценки надежности поставщика.  Фрагмент  подмножества  правил  представляется следующим образом:

Если Задолженность = "есть" , 

То Финансовое_состояние = "удовл."  Ls = 0.01, Ln = 10

Если Рентабельность = "есть" ,

То Финансовое_состояние = "удовл."   Ls = 100,  Ln = 0.001

	Пусть оцениваемое  предприятие  является   рентабельным   и   без задолженностей. Априорная вероятность удовлетворительного финансового состояния любого поставщика составляет 0.5. Тогда расчет апостериорных шансов и вероятности удовлетворительного финансового   состояния осуществляется по формулам:

                      О(Н/Е1,Е2) =  1 * 10 * 100 = 1000;

                                               1000

                      Р(Н/Е1,Е2) =  ------ = 0.99.

                                                1001



	Для байесовского подхода к построению продукционной  базы  знаний характерна большая  трудоемкость  статистического оценивания априорных шансов и факторов достаточности и  необходимости.  

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

	Факторы уверенности  измеряются по некоторой относительной шкале, например, от 0 до 100. В отличие от теории вероятностей сумма факторов уверенностей некоторых альтернативных значений  необязательно составляет 100.  Множество возможных значений некоторой  переменной  с различными факторами  уверенностей  для  каждого  значения  составляет нечеткое множество вида:  { x1 cf1,  x2 cf2,   ... , xN cfN }, причем фактор    уверенности    в   общем   виде   задается  функцией принадлежности значений нечеткому множеству, например, как представлено на рис. 2.5. (Например, для рентабельности 6,7% получаем оценку в виде нечеткого множества {“неудовлетворительно” cf 66, “удовлетворительно” cf 33}).

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





Рис. 2.5. Функции принадлежности нечеткого множества  “Оценка рентабельности”

	При объединении    факторов    уверенности    конъюнктивно    или дизъюнктивно связанных аргументов используются следующие формулы:

Конъюнкция  (А и В) : min (cfA, cfB) или cfA*cfB/100

Дизъюнкция (А или В): max (cfA, cfB) или cfA + cfB - cfA*cfB/100

	Объединение факторов уверенности  в  посылках  правил  осуществляется  чаще всего, как например, в программном средстве GURU, по формулам "min/max", а левых и правых частей правил и одинаковых результатов  нескольких правил соответственно по формулам "произведение” и “сумма". Для объединения одинаковых результатов нескольких правил используется оператор “+=“, который означает не присваивание значения, а добавление значения. Аналогично используется оператор “- =” для удаления значения. Факторы уверенности в последнем случае  объединяются по формуле:

cfA*(100 - cfB)/100 

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

Правило 1: Если Задолженность = "нет" и  Рентабельность = "удовл."

То Финансовое_состояние = "удовл."  cf 100

Правило 2: Если Финансовое_состояние = "удовл."

То  Надежность += "есть"   cf 90

Правило 3: Если Предприятие = "государств."

То  Надежность+ = "есть"   cf 50

Результат выполнения первого правила:

               cf(посылки) = min(60,80) = 60,

               cf(Фин_сост.="удовл.") = 60*100/100 = 60.

Результат выполнения второго правила:

               cf(Надежность="есть") = 60*90/100 = 54

Результат выполнения третьего правила:

               cf(Надежность="есть") = 54 + 50 - 54*50/100 = 67

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

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

	В целях   динамического   реагирования   на   события   некоторые продукционные модели  используют  специальные правила-демоны,  которые формулируются следующим образом:

"Всякий раз, как происходит некоторое событие, выполнить   некоторое   действие". Например:

Всякий раз, как становится известным значение переменной                 "Поставщик",

   Выполнить набор правил "Финансовый анализ предприятия"

	В программном средстве GURU подобное правило будет записано следующим образом:

	IF:        KNOWN(“Поставщик”) = true

	THEN: CONSULT FIN_AN

	Для динамических экспертных систем характерна также обработка времени как самостоятельного атрибута аргументации логического вывода: 

	Если в течение дня уровень запаса понизился больше, чем на 50 %

	То выполнить набор правил “Выбор поставщика для поставки”

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

	Семантические сети. Объектно-ориентированные методы представления знаний берут начало от семантических   сетей,   в  которых  типизируются  отношения  между объектами. Элементарной единицей знаний в  семантической сети служит триплет (см.   объектную   концептуальную  модель),  в  котором  имя предиката представляет  помеченную  дугу  между  двумя  узлами  графа, соответствующими двум связанным объектам (рис. 2.6):

	Важнейшими типизированными отношениями объектов являются: "Род" - "Вид",  "Целое" -  "Часть",  "Причина"  -  "Следствие",  "Средство"  - "Цель",  "Аргумент"  - "Функция",  "Ситуация" - "Действие".  Типизация отношений позволяет однозначно интерпретировать смысл  отображаемых  в базе знаний ситуаций и настраивать механизм вывода на особенности этих отношений. Так,  отображение отношений "Род" - "Вид" дает  возможность осуществлять наследование  атрибутов классов объектов и, таким образом, автоматизировать процесс вывода заключений от общего к частному.





Рис. 2.6. Пример семантической сети

	Фреймы. Развитием семантических  сетей являются фреймовые   методы представления знаний, в которых все атрибуты (поименованные отношения) объектов собираются в одну  структуру  данных,  называемую  фреймом. Причем в качестве значений  слотов  (атрибутов)  могут  выступать  как обычные  значения  данных,  так и действия,  направленные на получение этих  значений.   Таким   образом,   действия  реализуются в виде присоединенных    процедур   или   процедур-демонов,   вызываемых  по определенным условиям.  В этом  плане  фреймовый  метод  представления знаний в  большей  степени  операционно-ориентирован  по  сравнению  с семантической сетью.

	Неопределенность описания  знаний реализуется в результате неполного заполнения всех слотов. Фреймовая модель способна делать предположения о значениях данных на основе механизма наследования свойств в иерархии обобщения. В  качестве  способов  наследования  атрибутов  применяются следующие возможности: S - идентичность значений одноименных слотов; U - различные значения одноименных слотов;  R -  значение  слота  фрейма должно находиться  в  пределах,  заданных  в  одноименном слоте фрейма верхнего уровня;  О - в случае  неизвестности  значения  слота  фрейма нижнего уровня принимается значение слота фрейма верхнего уровня.

	Способность изменения  значений   слотов   с   течением   времени позволяет  решать  динамические  задачи.  Во  фреймовых  моделях могут выполняться как прямая, так и обратная аргументация,  когда  в  прямом направлении  в  зависимости  от  состояния  слотов фреймов запускаются процедуры-демоны (неизвестно значение - "if-needed", известно значение -   "if-added",   удаляется   значение   -  "if-removed),  а  обратная аргументация срабатывает путем  запуска  присоединенных  процедур  при обращении  к  неизвестным значениям атрибутов.  Фреймовые модели позволяют более гибко комбинировать  прямой  и  обратный  вывод.   Пример описания фреймовой  модели  представления знаний для задачи заключения контрактов с поставщиками показан на рис. 2.7:






	КОНТРАКТ



Имя слота

Указатель

Тип

Значение 

IF-NEEDED

IF-ADDED

IF-REMOVED

Super-сlass

U

FRAME

ROOT







Sub-сlass

U

FRAME

Проект













Отвергнутый













Заключенный







Код изделия

U

String

101

Ввести

Проекти-ровать



Статус

U

Boolean

Y



Заключить

Отвергнуть

Код поставщика

U

String

123







Срок поставки

U

Date

01.06.96







Объем поставки

U

Real

2000







Стоимость

U

Real

10000









ПРОЕКТИРУЕМЫЙ КОНТРАКТ



Имя слота

Указатель 

Тип

Значение

IF-NEEDED

IF-ADDED

IF-REMOVED

Super-сlass

S

FRAME

Контракт







Sub-сlass

-

-









Код изделия

S

String

101



Выбор поставщика



Статус

S

Boolean

Y







Код поставщика

S

String

123



Надежность



Срок поставки

S

Date

01.06.96







Объем поставки

S

Real

2000







Стоимость

S

Process

Расчет









Рис.2.7. Пример фреймовой модели



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

	Рассмотрим пример объектно-ориентированной   модели   обработки заказов,  которые являются  динамическими  объектами,  меняющими  свое состояние в  течение  своего  жизненного  цикла.  Описание поведенческой модели для класса   объектов   "Заказ"   приведено   в таблице 2.5. Описание объектно-ориентированной модели  представлено  на  рис.2.8. Псевдокод основных методов класса объектов "Заказ" дается на рис.2.9.


         ЗАКАЗ                 ПРОДУКТ                      ПРОИЗВОДИТЕЛЬ

        Атрибуты             Атрибуты                        Атрибуты

   . Код покупателя       . Код продукта              . Код производителя

   . Код продукта           . Дата                              . Код продукта

   . Дата составления    . Остаток                        . Дата

   . Заказ. количество   Методы                           . Наличие

   . Состояние                - Выдать  остаток         Методы

                                         - Изменить остаток         - Отгрузить продукт

Методы                                 .............                              .............

   - Оформить         

   - Отложить                  ПОЛУЧАТЕЛЬ

   - Выполнить               Атрибуты

   - Оплатить                    . Код получателя

   - Создать                      . Дата

   - Уничтожить               . Состояние расч.счета

          .......                         Методы

                                          - Перечислить со счета

                                                    .................

                                     Рис.2.8. Объектно-ориентированная модель



Заказ.Оформить(Код покупателя, Код продукта, Дата, Количество):

{

Заказ.Создать(Код_покупателя,Код_продукта,Дата,Количество,Сост)

    	А = Продукт.Выдать_остаток(Код продукта, Остаток);

  	Если  Заказ.Количество >= А

	То        Заказ.Отложить(Код_покупателя,Код_продукта,Дата,

	                                            Количество);

	Иначе Заказ.Выполнить(Код_покупателя,Код_продукта,Дата,

                                                           Количество);

     Заказ.Состояние = "Оформлен". }

     Рис.2.9. Реализация метода "Оформить заказ"



2.5. Выбор инструментальных средств реализации экспертной системы

	На этапе реализации экспертной системы происходит физическое наполнение базы знаний и настройка всех программных механизмов в рамках выбранного инструментального средства, а при необходимости и допрограммирование специализированных модулей программного инструмента. 

	Особенности реализации  экспертной системы во многом определяются характером инструментального  средства,  в  качестве   которого   могут выступать программные оболочки  (shells),  генераторы (интегрированные среды), языки  представления  знаний  (языки  программирования).  Так, оболочки имеют реализованные механизмы вывода,  накопления, объяснения знаний, диалоговый  компонент,  что,   с   одной   стороны,   упрощает разработку программной   части   экспертной   системы,   поскольку  не требуется программирование,  а с другой стороны,  усложняет разработку базы знаний  вследствие  возможного несоответствия формализма системы  требованиям структуры.  Использование  языков  представления  знаний таких как: язык   логического    программирования     PROLOG, язык функционального программирования LISP,  язык объектно-ориентированного программирования SmallTalk,  язык  продукционных  правил  OPS5  и  др. повышает гибкость разрабатываемой системы  и одновременно увеличивает трудоемкость разработки. 

	Наиболее   приемлемыми   инструментальными средствами для создания  экспертных  систем  являются  генераторы  или интегрированные среды  разработки, например,  G2 (фирма Gensym, дистрибьютор фирма ArgusSoft),  ART-Enterprise (фирма Inference, дистрибьютор фирма Метатехнология),  GURU (фирма MDBS, дистрибьютор фирма ЦПС Тверь), которые позволяют  настраивать  программные  средства  на  особенности проблемных   областей,  при  необходимости  предоставляют  возможность программировать  на  встроенных   языках   четвертого   поколения   и осуществлять    эффективный    экспорт/импорт    данных    с   другими инструментальными средствами.

	Среди отечественных разработок следует отметить экспертную оболочку ЭКО (ArgusSoft) и программный комплекс SIMER - MIRAGE  (Исследовательский центр искусственного интеллекта ИПС РАН), который предоставляет инструментальные средства как  автоматизации  разработки, так и поддержки экспертных систем  [ 8 ].

	Инструментальные средства создания и поддержки экспертных  систем являются   дорогостоящими продуктами и стоят от тысяч до десятков тысяч долларов.  Однако, для готовых баз знаний инструментальные средства  могут поставляться в исполнительской версии (RUN-TIME) на порядок дешевле.

Цена предметно-ориентированных систем может быть на порядок выше универсальных, преимущество же  их  заключается  в более простой адаптации к конкретной предметной области,  а следовательно, и в сокращении затрат  на  разработку.  Например, интеллектуальная система для разработки финансовых приложений Cogensys Judgment Software (Cogensys Corp) стоит 200 тыс. долл.

	Среди специализированных  инструментальных средств интеллектуальных систем основной удельный вес занимают экспертные системы реального времени, позволяющие динамически управлять непрерывными процессами (70%  рынка). Бесспорным лидером в разработке экспертных систем реального времени  является фирма Gensym с инструментальным средством G2 (дистрибьютор в России - фирма ArgusSoft), имеющая внедрения в таких компаниях как IBM,  NASA,  General Electric,  Nissan и др. [ 5 ].  На базе G2, в свою очередь, созданы такие проблемно-ориентированные комплексы, как GDA для  решения задач диагностики,  ReThink для моделирования бизнес-процессов (бизнес-реинжиниринга),  NeurOnline для поддержки нейронной сети,  IPS для решения задач динамического планирования, FaultExpert для управления телекоммуникациями и др.

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

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

	Инструментальные средства,  в   свою   очередь,    характеризуются определенными  возможностями  по  реализации  этих  требований. В таблице 2.7. представлено выполнение требований для наиболее популярных инструментальных средств [ 5,8,9 ] (цифрой показывается номер места в упорядоченной последовательности).

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