Смекни!
smekni.com

Интеллектуальные информационные системы 3 (стр. 9 из 10)

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

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

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

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

В программном средстве 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, дистрибьютор фирма ЦПС Тверь), которые позволяют настраивать программные средства на особенности проблемных областей, при необходимости предоставляют возможность программировать на встроенных языках четвертого поколения и осуществлять эффективный экспорт/импорт данных с другими инструментальными средствами.