Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по СИИ.doc
Скачиваний:
175
Добавлен:
02.05.2014
Размер:
3.54 Mб
Скачать

3.3. Управление процессом решения задачи

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

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

Рис. 3.1

Вершины сети соответствуют состояниям системы и образуют множество {начало, S2, S3, конец}. Переходы между состояниями по­меченыTR1, TR2, TR3, TR4иTR5. ПереходуTRi приписан предикатTi(). Кроме того, с некоторыми из переходов связываются операто­рыAi, которые выполняются при активации перехода. Допустим, что все предикатыT1, ..., T5оказались истинными. В этом случае все маршруты, связывающие вершину-начало и вершину-конец, будут разрешены и все операторыА2, А3, А4, А5будут выполнены. При этом оговаривается, что порядок выполнения операторов устанавливается согласно возрастанию их индексов. С другой стороны, если, например, ложен предикатТ2, то будет активирован единственный маршрут(TR1, TR5)и возможно единственное действиеA5. Таким образом, уп­равление выводом вRTNреализуется посредством включения уп­равляющей структуры в модель знаний.

Сеть RTNявляется примером модели знаний со встроенной детерминированной процедурой управления. В графе И-ИЛИ проце­дура управления является недетерминированной. Пустьx1, x2, ..., xN- объекты некоторой предметной области, причем для каждого объектаxiизвестна одна или несколько процедур его вычисления через другие объекты. Обозначим черезi (xi1, xi2, ..., xit)процедуру вычисления объектаiчерез объектыxi1, xi2, ..., xit. Каждый из объектовxi1, xi2, ..., xitв свою очередь вычисляется аналогичным образом через другие объекты и т.д. Таким образом, имеется следующее функциональ­ное отношение

xi = i (xi1, xi2, ..., xit) (3.3)

Очевидно, что если процедураiне имеет входных данных, то объ­ектхiпредставляет некоторое фиксированное значение, или запрашивается у пользователя. В этом случае

xi = i ( ) (3.4)

Соотношению (3.3) соответствует графический фраг­мент, представленный на рисунке 3.3. Двойная дужка на рис. 3.3 соответствует конъюнктивной связке вершин (связке типа "И"). Очевидно, что вполне допустимо более одной процедуры вычисления объектаxi, причем в процедуреjмогут участвовать иные аргументы, чем в процедуреi; графически это соот­ветствует рис. 3.4.

Рис. 3.3 Рис. 3.4

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

Формализуем задачу управления на функциональном "И - ИЛИ" графе. Пусть x1, x2, ..., xN- множество объектов предметной области. Пусть даны процедуры

вычисления одних объектов через другие с числом аргументов, равным соответственно n1, n2, ..., nk.

Определим состояние системы Siкак множество переменных, значения которых известны на шагеi. ПустьS0- начальное состояние,Se- конечное состояние, причем конечное состояние в общем случае будет обозначаться как

Se = {xe1, xe2, ..., xez, *}, (3.5)

где *- любое, заранее не оговариваемое множество переменных (возможно пустое), аxe1, xe2, ..., xez- множество переменных, которые обязательно должны быть определены в конечном состоянии.

Говорим, что процедура k (xk1, xk2, ..., xkm)валидна (применима) в состоянииSj, если

(xk1, xk2, ..., xkm) Sj. (3.6)

Кратко тот факт обозначается как

Sj  . (3.7)

В интересах общности далее положим, что каждая процедураiвы­числяет в целом более одной переменной. Ясно, что применениеi- про­цедуры в состоянииSj, в котором она валидна, приводит в общем слу­чае к новому состояниюSj+1, содержащему результирующие перемен­ные процедуры i.

Задача управления заключается в построении цепочки процедурC = <i0, i1, ..., iz >такой, которая обеспечивает достижение конеч­ного состоянияSeиз начального состоянияS0в результате последова­тельного выполнения процедур изСв указанном порядке.

Рассмотрим решение этой задачи на конкретном примере. Предва­рительно договоримся, что обозначение

i <xi1, xi2, ..., xin|xin+1, xi+2, ..., xim> (3.8)

означает, чтоxi1, xi2, ..., xin- это входные объекты-переменные проце­дуры, на основании которых вычисляются выходные объекты-перемен­ныеxin+1, xin+2, ..., xim.

Пусть задана следующая система функций:

1: <x1, x3|x4>,

2: <|x1, x2, x5>,

3: <x1, x3|x4, x6>,

4: <x2, x5|x4, x6>,

5: <x2, x7|x4>,

6: <x1, x3, x4|x6, x8>,

7: <x3, x6|x5, x7>,

8: <x5, x6|x9>.

Поставим в соответствие ей функциональный граф "И - ИЛИ", по­казанный на рис. 3.5. Вершины графа соответствуют объектам предмет­ной области, а дуги маркированы таким образом, что над дугой, исходящей из вершины xiи заходящей в вершинуxj, стоят индексы функций, в которыхxiявляется входным аргументом, аxjвыходным результатом. Например, дуга(x1, x4)помечена1,3, поскольку в этих функцияхx1является входным аргументом, аx4- выходным. ПустьS0 = <x1, x3, x5>, а Se = <x7, x9, *>. Построение цепочки функцийС, вы­полняющей переход

(3.10)

осуществляется в два этапа.

Этап 1. Нормализация функционального графа.

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

1)удаление пометок всех тех функций, для которых удалены од­на или более входных вершин-переменных;

2)удаление всех входных дуг, инцидентных вершинам изS0;

3)удаление вершинxiи инцидентных им дуг таких, чтоxi Se, и не имеют выходных дуг;

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

5)если удалена дуга, помеченная, входящая в вершинуx, то по­меткаснимается со всех дуг, входящих вx, если таковые есть;

6)удаление (последовательное)альтернативных вершин и ин­цидентных им дуг. Эта операция - основная. Вершинаxявляется аль­тернативной, если в результате ее удаления и инцидентных ей дуг каждая вершина, в которую заходила дуга изх, может быть вычислена некоторой цепочкойСiиз состоянияS0.

Рис. 3.5.

Рассмотрим рис.3.5. Так, удаляем вершину х8согласно операцииO3. Удаляем далее входные дуги вершиныx5 S0. Получаем граф на рис.3.6, а. Вершинах2альтернативная и может быть удалена вместе с инцидентными ей дугами. Получаемый в итоге граф на рис. 3.6, б. В нем вершинах4также альтернативная. Это последнее удаление приводит к полностью нормализованному графу на рис 3.6, в.

Рис. 3.6, а Рис. 3.6, б

Рис. 3.6, в

Этап 2. Построение уровнейL0, L1, ..., Lk. ВL0войдут все верши­ны, которые не имеют входных дуг.

В уровеньLi (i > 0)войдут все те и только те вершиныхi, которые не вошли в уровниL0, L1, ..., Li-1и которые вычислимы произвольной функцией (ями)z, выполнимой в состоянииSi = L0L1...Li-1, т.е.

Si  z. (3.11)

Так, из рис. 3.6, в устанавливаем непосредственно, что

L0 = {x1, x3, x5},

L1 = {x6},

L2 = {x7, x9}.

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

Окончательно интересующая нас цепочка Сстроится так, чтобы любая функцияt, принадлежащая уронюLm, стояла левее любой функцииq, принадлежащейLn, еслиm < n; еслиm = n, то взаимный порядок расположения функцийtиqвСроли не играет. Из этого правила, устанавливаем, например, что

C = <3, 7, 8>

суть интересующая нас цепочка.

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

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