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

Практическое занятие № 4

Фреймовые экспертные системы

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

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

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

(Имя фрейма:

Имя слота 1 (значение слота 1)

Имя слота 2 (значение слота 2)

………………………………….

Имя слота К (значение слота К)).

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

Совокупность фреймов, моделирующая какую-либо предмет­ную область, представляет собой иерархическую структуру, в которой фреймы соединяются с помощью родовидовых связей. На верхнем уровне иерархии находится фрейм, содержащий наиболее общую информацию, истинную для всех остальных фреймов. Фреймы обладают способностью наследовать значения характерис­тик своих родителей, находящихся на более высоком уровне иерар­хии. Так, фрейм АФРИКАНСКИЙ СЛОН наследует от фрейма СЛОН значение СЕРЫЙ характеристики ЦВЕТ. Значения харак­теристик фреймов могут передаваться по умолчанию фреймам, на­ходящимся ниже них в иерархии, но если последние содержат собственные значения данных характеристик, то в качестве истин­ных принимаются именно они. Это обстоятельство позволяет легко учитывать во фреймовых системах различного рода исключения. В частности, во фрейме АЗИАТСКИЙ СЛОН значением слота ЦВЕТ будет КОРИЧНЕВЫЙ, а не СЕРЫЙ, которое могло бы в нем находиться, если бы предпочтение при выборе отдавалось не собст­венному значению, а наследуемому от фрейма СЛОН.

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

Фреймы иногда делят на две группы – фреймы-описания и ролевые фреймы. Фрейм-описание:

(Фрукты:

виноград (болгарский, 20 т)

яблоки (джонатан, 10 т)

вишня (владимирская, 200 кг)).

Ролевой фрейм:

(Перевезти:

что (прокат, 200кг)

откуда (Алчевск)

куда (Москву)

чем (железнодорожным транспортом)

когда (в ноябре 2002 г.))

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

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

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

Процедура-слуга запускается по запросу при обращении к слоту. Например, при обращении к слоту «оплата» будет активизирована процедура «Prise», которая определит стоимость проживания в номере за сутки.

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

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

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

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

Во фреймовых системах используется три способа управления выводом: с помощью механизма наследования; с помощью процедур-демонов; с помощью присоединенных процедур.

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

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

Более сложная ситуация возникает, если фрейм имеет несколько is_a или ako связей. В этом случае говорят о множественном наследовании.

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

Процедура «если-нужно» вызывается, когда поступает запрос, требующий установления значений для соответствующего слота. Данная процедура, как и значение слота, наследуется подклассами и экземплярами классов. Поэтому связывание ее с одним из суперклассов может оказать влияние на значение соответствующих слотов фреймов, расположенных ниже по иерархии. При этом процедура непосредственно не меняет значений слота, а каждый раз вычисляет его заново, учитывая определенные условия. В частности для слота «рост» экземпляра фрейма «пингвин» процедура может устанавливать рост пингвина в зависимости от значения слота «вид». Например. если значением слота «вид» является «императорский пингвин», то вернуть значение 100-120 см, иначе вернуть значение 40-50 см.

Процедуры «если-добавлено» и «если-удалено» активизируются при записи и удалении значений из слота. Например, процедура «если-добавлено» может активизироваться, когда слот «вид» получит значение. Если новое значение – «галапагосский пингвин», то записать в слот «красная книга» значение «да». Таким образом, процедуры «если-добавлено» и «если-удалено» устанавливают зависимость значений одного слота от значений другого.

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

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

Соседние файлы в папке Практические занятия по ИИ