Методы представления знаний, основанные на аппарате фреймов.
Одна из разновидностей аппарата семантических сетей связана с концепцией фрейма. Основная идея фреймового подхода к представлению знаний — более жесткое, чем при подходе, основанном на семантической сети, выделение объектов и ситуаций проблемной среды и их свойств, т. е. все, что касается объекта или ситуации и важно с позиций решаемых задач, не «размывается по сети», а представляется во фрейме.
Название фрейм произошло от английского «frame», что означает «каркас, рамка». Фрейм состоит из слотов, получивших свое название от английского слова «дыра».Структура слота имеет следующий вид:
{<имя слота><f1> < V1>; < f2> < V2>; ... ; < fN > < VN>;
<q1>;<q2 >;...;<qm > }.
Где fi - имена атрибутов, характерных для данного слота;
V i - значения этих атрибутов или множества их значений;
qi - ссылки на другие слоты.
Рассмотрим пример слота:
{<автомобиль><номерной знак> < крт 20-70, мяу 65-79>; <состояние> < исправен, в ремонте>; < тип > < газ24, газ24>; <колонна>;<гараж>;<водитель > }.
имена слотов часто называют ролями или ролевыми метками.
Для упорядочивания информации, хранящейся в отдельных слотах , используется более крупная структурная единица - фрейм. Фрейм имеет следующую структуру:
{<имя фрейма><имя слота> < значение слота>
<имя слота> < значение слота> ... }.
Каждый фрейм - готовая структура, которая при том или ином заполнении слотов значениями превращается в описание конкретного факта, события, явления или процесса. Различают фрейма - прототипы, хранящие знания о предметной области и конкретные фреймы, заполняющие эти единицы знания конкретными знаниями.
Основная операция над фреймами - поиск по образцу. Образец или фрейм запроса - это фрейм, в котором заполнены не все структурные единицы, а только те, по которым среди фреймов, хранящихся в памяти ЭВМ будут отыскиваться нужные фреймы.
Продукционный подход
Данный метод представления знаний относится к процедурным методам. Он ориентирован на использование процедур и условий их применения. Знания представляются на языке продукций. Основным элементом языка является продукция представляющая следующую конструкцию ( следует заметить, что в разных системах синтаксис записи продукций может быть различным):
( i ), P; A Þ B; ( j ), Q
Словесно эта запись может быть интерпретирована так:
«Если выполняется условие P и имеет место А , то надо сделать В и изменить условие продукции с номером j на условие Q» . ( i ) - номер написанной продукции.
Рассмотрим конкретный пример. В организме человека щитовидная железа вырабатывает специальный гормон - тиреодин. Избыток этого гормона в организме влечет заболевание тиреотоксикоз (базедова болезнь), а недостаток вызывает другое заболевание - гипотериоз. В этом случае необходимо принимать в определенной дозе тиреодин в виде таблеток. При этом приему лекарства могут быть определенные противопоказания. При этом условие того что противопоказаний нет может быть записано в виде следующей логической функции:
P = ù (P1vP2v P3 v P4)
Где P1 - тиреотоксикоз;
P2 - сахарный диабет;
P3 - декомпенсированная форма аддиссоновой болезни (надпочечники) ;
P4 - тяжелая форма коронарной недостаточности.
Пусть также:
A - гипотериоз
В - прием тиреодина по 0.3 г.
Q - увеличение значения q 0.3 г.
Предикат P5 ( q< 1) оценивает допустимость очередного приема тиреодина, т.к. суточная норма q не должна превышать 1 г.
Тогда продукция в целом будет иметь вид:
( i ), P, P5 ; A Þ B; ( i ), Q.
Смысл данной продукции может быть сформулирован словесно:
«Если у больного гипотериоз, нет противопоказаний к приему лекарства, его суточная норма еще не достигнута, то необходимо принять 0.3 г. Тиреодина и учесть этот факт в суточной норме». Считается, что по истечению суток какая-то другая продукция, следящая за течением времени, возвращает значение q к нулю.
Представление знаний с использованием фреймов и продукций.
Каждый из способов представления знаний - фреймы и продукционный подход - имеют свои достоинства и недостатки. Так фреймы позволяют хорошо структурировать знания, но не позволяют описывать процедуры их обработки, Использование языка продукций наоборот, не позволяет задавать структуру знаний. Проблема может быть решена путем совместного использования фреймов и продукций. При этом продукции выступают как часть фрейма, т.е. его отдельные слоты, к которым может передаваться управление. Рассмотрим конкретный пример.
Пусть имеется информация о различных комплектующих устройствах, из- которых можно собрать компьютер определенной конфигурации с заданными свойствами, При этом из нескольких альтернативных вариантов решения должен быть выбран тот, который обеспечивает минимальную стоимость конфигурации компьютера. Конкретный фрейм, описывающий ситуацию может быть представлен в следующем виде:
Конкретный фрейм
{< компьютер >
{<начало>;<begin><_>;<установка>}
{< МАТ_ПЛАТА >;<name><start, M2N, M2N1394, GA-9456ZM-S2, finish>;
<частота><_ , 3800, 3000, 1800, _ >; <ОЗУ><_,4, 2, 2,_> <PRICE><_868,775,632,_>; <результат>}
{<hdd>>;<name><start, HD160hj, hd321KJ, HD501LJ, finish>;
<ЕМКОСТЬ><_,160, 320, 500, _>; <price><_,337,469,765, _>; <результат>}
{<монитор>;<name><start, L1753S-BF,L1950TR-F,206BF,finish>;
<size><_, 17, 19, 20, _>;
<price><_, 1148, 1658, 1632,_>; <результат>}
{<принтер>;<name><start,LBP2900, PIXMA IP1800,PIXMA IP3300, ML2015, finish>;
<тип><_, лазерный,струйный, струйный ,лазерный,_>;
<формат><_, а4, а4, а4,а4, _>;
<price><_, 653, 291, 398, 571, _>; <результат>}
{<окончание>;<end><_>;<завершение>}
{<установка>;<продукция1>< (1) true; true Þs:= 0. >}
{<результат>;<продукция2>
< (1) name= start; true Þpm:=10000; tname:=nil.
(2) price< pm; (name<> start)and(name<> finish) Þ
tname:= name; (2) pm:= price.
(3) name=finish;tname<> nilÞ print(tname, pm);s:=s+ pm. >}
{< завершение >;<продукция3>< (1) true; true Þ print(s) >}}.
В примере имя фрейма и ролевые метки - имена слотов выделены жирным шрифтом. Пусть компьютер состоит из:
· материнской платы, который характеризуется именем name (тип платы), тактовой частотой, объемом оперативной памяти, и ценой;
· жесткого диска, который характеризуется именем name (название HDD), емкостью, ценой
· монитора, который характеризуется именем name (название монитора), размером экрана, ценой.
· принтера, который характеризуется именем name (название принтера), его типом действия, форматом печати, ценой.
Кроме того, имеются слоты с ролевыми метками начало, окончание, установка, результат, завершение, которые с помощью продукций обеспечивают выбор конфигурации м минимальной ценой. Процесс извлечения знаний рассмотрим на примере следующего фрейма запроса:
фрейм запроса
{< компьютер >
{<начало>;<begin><_>;<установка>}
{< МАТ_ПЛАТА >;<name>< ?>;
<частота><? >; <ОЗУ><,4>; <price><?>; <результат>}
{<hdd>>;<name><?>;<ЕМКОСТЬ>< 320>; <price><?>; <результат>}
{<монитор>;<name><?>;<size><?>; <price><?>; <результат>}
{<принтер>;<name><?>;
<тип><струйный>;<формат>< а4>; <price><?>; <результат>}
{<окончание>;<end><_>;<завершение>}
В этом фрейме не все значения атрибутов слотов имеют конкретные значения, указаны лишь те, по которым согласно требованиям будет определяться оптимальная конфигурация компьютера. Пусть эти требования следующие:
· объем оперативной памяти -4Gb;
· емкость жесткого диска -320 Gb;
· тип принтера -струйный;
· формат печати - А4.
Значения атрибутов, которые подлежат определению, обозначены знаком вопроса.
Процесс извлечения знаний происходит следующим образом:
В начале по имени фрейма запроса компьютер ищется соответствующий ему конкретный фрейм. Затем идет последовательная обработка слотов и их атрибутов. Слот начало обеспечивает начальные установки. Он состоит из атрибута begin с безразличным значением (обозначается знаком подчеркивания). Этот атрибут не несет в себе никакой информации и служит лишь для формального соблюдения структуры слота. Далее следует ссылка на другой слот с именем установка. Управление передается слоту с этим именем. Значением атрибута этого слота с названием продукция1 есть продукция, которая безусловно (условия выполнения продукции определены как true) обнуляет цену с именем S.
Обработка слота МАТ_ПЛАТА состоит в последовательном выборе значений атрибутов. Сначала выбираются и анализируются все первые по порядку значения, затем - вторые и так далее, пока не будет рассмотрено все множество значений. У атрибута name начальным и конечным значениями являются соответственно константы start и finish. Эти константы имеют вспомогательное значение. Рассмотрим их использование для этого слота, для других принцип остается аналогичным. Наложением слота МАТ_ПЛАТА из фрейма запроса на слот конкретного фрейма происходит попытка последовательного согласования значений атрибутов обоих фреймов. Первые значения будут безусловно согласованы, т.к. в конкретном фрейме стоят символы подчеркивания, указывающие на безразличность значений. При этом значение name будет конкретизировано константой start. Происходит обращение к ссылке на слот с именем результат. Этот слот вызывается и анализируется атрибут с именем продукция2. Значением этого атрибута является множество продукций, которые последовательно выполняются. Поскольку значением name является start , то выполняется продукция с меткой (1). При этом текущему значению минимальной цены устройства присваивается заведомо максимальное значение pm:=10000, а текущему имени устройства с минимальной стоимостью присваивается значение константы «ничего» : tname:=nil. Это указывает на то , что имя устройства пока не найдено. Очевидно, что продукции с метками (2) и
( 3) выполнять в данном случае не будут т.к. ложно условие применения этих продукций. Система извлечения знаний опять возвращается к слоту МАТ_ПЛАТА и продолжает попытку согласования. Множество вторых по порядку значений атрибутов конкретного фрейма будет удовлетворять условиям фрейма запроса и неизвестные ранее атрибуты фрейма запроса получают конкретные значения:
name= M2N
частота=3800
price=868
После этого удачного согласования происходит аналогично описанному выше обращение к продукциям слота результат. При этом будет выполняться продукция с меткой (2). Параметрам будут присвоены следующие значения:
pm:= 868
tname:= = M2N
Нетрудно заметить, что в данной продукции происходит вычисление минимального значения, т.е. выбирается устройство минимальной стоимости из тех которые удовлетворяют заданным требованиям, указанным во фрейме запроса.
Другие атрибуты слота МАТ_ПЛАТА указанным требованиям не удовлетворяют, поэтому обращения к продукции (2) происходить не будет. Обработка значения
name= finish будет происходить аналогично случаю start , только здесь будет выполняться продукция (3), которая суммирует с общей суммой набора стоимость выбранного устройства и выводит на печать выбранное устройство и его стоимость. Условием выполнения этой продукции будет tname<> nil, т.е. если ни одно из устройств не выбрано, то суммирование не выполняется.
Обработка слотов с именами HDD, монитор и принтер будет выполняться аналогично обработке слота МАТ_ПЛАТА. В завершение с помощью слота окончание (аналогично слоту НАЧАЛО) управление передается продукции3 слота завершение, которая выводит на печать суммарную стоимость оптимальной конфигурации компьютера.
0 коммент.:
Отправить комментарий