Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Базы данных, знаний и экспертные системы Калабухов ЕВ, БГУИР 2007 (Мет пособие)

.pdf
Скачиваний:
43
Добавлен:
15.06.2014
Размер:
1.77 Mб
Скачать

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

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

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

имя пользователя, определяющего фрейм;

дату определения или модификации фрейма;

комментарий.

Также дополнительно со слотом может быть связан указатель

наследования и указатель типа данных.

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

S (тот же) - слот наследуется с теми же значениями данных;

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

I (независимый) - слот не наследуется.

Типом данных, включаемых в слот, могут быть:

FRAME (указатель) - указывает имя фрейма верхнего уровня.

ATOM (переменная);

TEXT (текстовая информация);

LIST (список);

LISP (процедура).

Таким образом, существует возможность ссылки из одного фрейма в один

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

241

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

СЛУЖАЩИЙ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IS_A

 

ОТЧЕТ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

автор

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

тема

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

АВТОР

 

 

 

 

 

 

 

 

 

 

 

 

 

 

дата

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

фио

 

агрегат

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Фам. Имя Отч.)

объем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

отдел

 

диапазон

 

 

 

 

 

ТЕМА

 

(производство,управление)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

наименов.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

период

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

заказчик

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЗАКАЗЧИК

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 42. Сеть фреймов.

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

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

пуст.

Эти процедуры могут следить за приписыванием информации к данному

242

узлу и проверять, что при изменении значения производятся соответствующие действия.

Пример организации знаний с использованием фреймов приведен на рисунке 42.

Для создания нового отчета (например, по запросу, «Иванову И.И. создать отчет «Отчет 2» по теме «А» объемом 2 страницы») в такой сети будут выполнены следующие действия:

создается новый экземпляр фрейма-прототипа «Отчет», который будет называться «Отчет 2»; слоты этого экземпляра заполняются либо значениями по умолчанию (например, объем отчета равен 2 страницы), либо с использованием присоединенных процедур;

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

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

для слота «Дата» фрейма «Отчет 2» процедура «если-добавлено» анализирует значение даты в запросе и если оно не задано, то активизируется процедура «если-нужно» слота «Дата», которая формирует необходимое значение (например, устанавливается ближайшая допустимая дата - 01.06.2006);

243

если для слота «Объем» фрейма «Отчет 2» не заданы присоединенные процедуры, то из слота «Объем» фрейма-прототипа «Отчет» будет выбрано значение по умолчанию (например, 2 страницы);

при успешном выполнении всех выше указанных действий, формируется уведомление для автора отчета «Иванов И.И., подготовьте отчет «Отчет 2» по теме «А» к 30.06.2006 объемом 2 страницы», если по каким-либо причинам фамилия Иванов будет удалена из слота «Автор», то система

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

представления знаний.

Кдостоинствам фреймового представления знаний следует следующее:

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

возможность логических скачков, т.е. немонотонного вывода;

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

обеспечение хорошего соответствия реальной действительности;

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

Кнедостаткам фреймового представления относят:

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

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

244

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

иерархии фреймов и их заполнения.

Своё наиболее яркое выражение представление знаний в виде фреймов получило в системах объектно-ориентированного программирования, поэтому очень часто языки фреймового типа называют объектно-ориентированными. Примерами таких языков является Smalltalk, языки FMS, FRL, KRL, являющиеся надстройками над LISP-системами.

8.1.4. Продукционные модели

Если проследить за построением фраз у человека, то можно заметить, что значительная часть мыслей оформляется в виде правил типа

«Если (некоторое условие), то (некоторое следствие)».

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

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

ЕСЛИ - ТО (явление - реакция).

245

Термин «продукция» был введен американским логиком Е. Постом в 40-х годах в работах по обоснованию и формализации алгоритмических систем. Продукцией называется правило вида

t1 ,t2 ,...,tn

t

,

 

где

t1, t2,

...,tn – посылки, а t – заключение, при этом t1, t2, ...,tn, t - слова

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

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

<(i), Q, N, P→A, D>, где:

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

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

N – условие применимости ядра продукции (если N принимает значение «истина», то ядро продукции активизируется, в противном случае продукция не может быть применена);

Р A – ядро продукции; допускается форма: «если Р, то А, иначе В»; ядра могут быть детерминированными (могут быть либо однозначными, либо альтернативными (связка «или») - нужен свой механизм выбора альтернативы из нескольких возможных (например: если Р, то чаще надо делать А1, реже А2)) или недетерминированными (т.е. А может и не выполняться при истинности D; ядро продукции в этом случае интерпретируется: «если Р, то, возможно, А», а для формирования оценок используется вероятностный или какие-либо другие подходы (например,

246

«если Р, то с вероятностью p реализовать А»;

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

Состав продукционной системы, необходимый для вывода на знаниях, задают следующие компоненты:

база правил - набор правил, используемых как БЗ; фактически это модель предметной области;

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

механизм логического вывода – порядок использования правил БЗ в соответствии с содержимым рабочей памяти (аналог рассуждениям

человека).

Таким образом, обобщенный механизм работы продукционной машины можно описать следующим образом:

задание модели текущего состояния предметной области;

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

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

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

процедур, рекомендованных в послесловиях.

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

сопоставление - образец правила из базы правил сопоставляется с имеющимися фактами в рабочей памяти;

247

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

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

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

Основных стратегий вывода в продукционной машине две:

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

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

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

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

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

248

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

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

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

Пример №1 прямого вывода на продукциях:

Исходная база правил состоит из следующих правил, пронумерованных в порядке размещения в БЗ:

1)если «вода в реке поднимается», то «рыба выходит на мель»;

2)если «вода в реке опускается», то «рыба уходит в глубину»;

3)если «лето влажное», то «вода в реке поднимается»;

4)если «лето сухое», то «вода в реке опускается»;

5)если «рыба выходит на мель», то «следует применять легкую блесну»;

6)если «рыба уходит в глубину», то «следует применять тяжелую

блесну».

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

Шаг 0) в рабочую память помещаются исходные условия: «лето влажное»

Шаг 1) первый просмотр базы правил – срабатывание правила №3: «лето влажное» «вода в реке поднимается»

Шаг 2) второй просмотр базы правил – срабатывание правила №1: «лето влажное» «вода в реке поднимается»

«рыба выходит на мель»

249

Шаг 3) третий просмотр базы правил – срабатывание правила №5: «лето влажное» «вода в реке поднимается»

«рыба выходит на мель» «следует применять легкую блесну»

Шаг 4) четвертый просмотр базы правил – нет сработавших правил – останов вывода:

«лето влажное» «вода в реке поднимается»

«рыба выходит на мель» «следует применять легкую блесну»

Шаг 5) вывод и интерпретация результатов – рекомендовано «следует применять легкую блесну», т.к. «рыба выходит на мель», т.к. «вода в реке поднимается», т.к. задано «лето влажное».

Пример №2 прямого вывода на продукциях:

Исходная база правил состоит из следующих правил, пронумерованных в порядке размещения в БЗ:

1)если «намерение – отдых» и «дорога ухабистая», то «использовать

джип»;

2)если «место отдыха – горы», то «дорога – ухабистая».

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

Шаг 0) в рабочую память помещаются исходные условия: «намерение – отдых» «место отдыха – горы»

Шаг 1) первый просмотр базы правил – срабатывание правила №2: «намерение – отдых» «место отдыха – горы» «дорога – ухабистая»

Шаг 2) второй просмотр базы правил – срабатывание правила №1:

250