Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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



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

Рассмотрим модель процедурных знаний, известную как рекурсивная сеть переходов (recursive transition network (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 известна одна или несколько процедур его вычисления через другие объекты. Обозначим через ji (xi1, xi2, ..., xit) процедуру вычисления объекта i через объекты xi1, xi2, ..., xit. Каждый из объектов xi1, xi2, ..., xit в свою очередь вычисляется аналогичным образом через другие объекты и т.д. Таким образом, имеется следующее функциональ­ное отношение

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

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

xi = ji ( ) (3.4)

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

 

 

Рис. 3.3 Рис. 3.4

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

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

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

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

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

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

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

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

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

Sj |¾ . (3.7)

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

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

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

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

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

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

j1: < x1, x3|x4>,

j2: < |x1, x2, x5>,

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

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

j5: < x2, x7|x4>,

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

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

j8: < x5, x6|x9>.

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

(3.10)

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

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

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

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

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

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

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

5) если удалена дуга, помеченная j, входящая в вершину x, то по­метка j снимается со всех дуг, входящих в 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 и которые вычислимы произвольной функцией (ями) jz, выполнимой в состоянии Si = L0È L1È...È Li-1, т.е.

Si |¾ jz. (3.11)

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

L0 = {x1, x3, x5},

L1 = {x6},

L2 = {x7, x9}.

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

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

C = < j3, j7, j8>

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

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

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


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-03-17; Просмотров: 933; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.037 с.)
Главная | Случайная страница | Обратная связь