Рис. 10.16. Выполнение оператора КEA

При этом значение d (gA) увеличивается на единицу. Данную трансформацию да­лее будем рассматривать как реализацию оператора:

КEA : { g(к)A, Фea} { gA(к+1),gC} (10.76).

Объединение gbj с Фeb представляет в результате остовное дерево класса С (рис. 10.17) и может рассматриваться как реали­зация оператора:

КEB : { g(к)B, Фeb} { gB(к+1),gC} (10.77).

Рис. 10.17. Выполнение оператора КEB

Заметим, что остовные деревья класса D в рассмотренных слу­чаях никак не фигурируют. Эти деревья получаются как резуль­тат анализа остовов класса С на выполнение условия (10.41), когда в роли g(L2) выступает gC, а в роли g (L1) — объединение gA и gB. В результате этого анализа gC расчленяется на подмно­жества класса В и D (рис. 10.18).

Рис. 10.18. Выполнение оператора КC (©- элементы ;

- элементы)

Данное членение будем произ­водить следующим образом:

1) вначале определим на gC вершины-связи такие, что со­держащиеся в них переменные пересекаются с gA или gB, т. е.

Ø};

2) выделим из вершины, каждая из которых является бли­жайшей к единственной на gC терминальной вершине-связи; обозначим и

;

3) каждая ветвь из gC, начинающаяся с вершины-связи из и лежащая по другую сторону от терминальной вершины-связи, отделяется от gC, и если переменные, содержащиеся в , пере­секаются с gB, то «пристыковывается» к gB в соответствующей вершине; если переменные, содержащиеся в , пересекаются с gA, тo образует совместно с линейным участком из gai gA, со­держащим соответствующую вершину, остов класса В;

НЕ нашли? Не то? Что вы ищете?

4) далее, учитывая, что при выполнении действий 1)—3) множество переменных, входящих в остовы класса В, попол­няется, процедура повторяется, начиная с первого действия.

В результате выполнения приведенной итерационной про­цедуры оставшееся от gC подмножество, т. е. не перешедшее в со­став gB, удовлетворяет условию (10.51) и пополняет остовы класса D. Рассмотренная операция может быть представлена как реализа­ция следующего оператора:

КC : { gC, g(к)A , g)B } {gB(к+1), gD(к+1), gA(к+1)}. (10.78)

Приведенные операции (10.65), (10.68)—(10.70), (10.73), (10.74), (10.76)—( 10.78) обеспечивают выполнение объединения всех, кроме ФD, элементов множества Фн с исходным графом модели, представленным остовными деревьями рассмотренных классов. Вершины ФD согласно их определению могут быть объединены исключительно с осто­вами класса D. Соответствующие операции будут рассмотрены в п. 10.1.2.5.

10.1.2.5. Структура оператора КОN

Структура оператора КОN может быть представлена тремя процедурами. Первая из них связана с максимизацией функции дефицита или, что то же самое, с выделением из информацион­ного графа модели критического множества. В результате выпол­нения этой процедуры определяется — характеристика, сви­детельствующая о корректности, недоопределенности или избы­точности анализируемого вектора J. Вторая и третья процедуры связаны с преобразованиями переопределенного и недоопределенного, соответственно, вектора J в корректный или, что то же самое, с определением таких характеристик, как ФSt, USt и . Ос­тальные генерируемые оператором КОN данные: σ (L0, J0), L0 — перечень переменных, которые могут быть определены через компоненты вектора J, и связи модели, через которые это опреде­ление должно быть произведено, получаются как результат фор­мирования критического множества с нулевым дефицитом в ре­зультате выполнения указанных процедур.

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

На начальном этапе (на первом шаге) этот граф представим осто­вами класса А, что, очевидно, можно сделать всегда, т. е.

σ (0)A = σ(LN);

g(0)B = g(0)D= g(0)C

Фн(0)=Ф(LN)\ ФA(0).

Задачу построения остова gA(0) возложим на некоторый опера­тор:

КOST :G(LN) { gA(0), Фн(0)},

выполнение которого является началом исполнения рассматрива­емого алгоритма выделения критического множества .

На каждом последующем (к-м) шаге, как правило, считаются известными g(к)A , g(к)B, g(к)D Выполнение этого шага начинается с выбора элемента из Фн (к), обозначаемого Ф* (к):

Ф*(к) = Фн(О)\ .

Выбранный элемент Ф* далее классифицируется по условиям (10.59)—( 10.63), (10.64), (10.66), (10.67), (10.71), (10.72), (10.75) и далее в зависимости от полученных результатов выполняется соответствующий из раcсмотренных выше операторов.

Согласно приведенным выше условиям классификации эле­ментов Ф*Фн эти элементы в ряде случаев могут быть отне­сены к различным классам. Например, условия (10.59) и (10.70) не ис­ключают отнесение одного и того же элемента как к ФA, так и к Фв.

Отнесение Ф*Фн к тому или иному классу определяет последующую операцию его объединения с соответствующими остовами. При этом в результате выполнения одних операций ос­товы класса С порождаются, а других — нет. Порождение gC требует выполнения оператора КC, т. е. проведения дополнитель­ных операций, целью которых является выделение из gC подмно­жеств gD.

Рис. 10.19. Структура процедуры выделения критического множества из исходного графа модели

Если некоторый элемент Ф* может быть отнесен к двум клас­сам и в одном случае соответствующая операция его объединения с тем или иным остовом порождает gC, а в другом нет, то из поро­жденного gC выделение подмножества gD невозможно. Данное утверждение основывается:

1) на показанной в п. 10.1.2.3 единственности результатов решения рассматриваемой задачи, т. е. единственности ;

2) на безусловности включения остовов в класс D (подмно­жества gD в рассматриваемом методе перейти в состав остовов других классов не могут)

3) на условии gD g ( ).

Учитывая сказанное, можно дать рекомендации о наиболее це­лесообразной последовательности проведения анализа Ф*Фн на принадлежность тому или иному классу. Эта последовательность должна быть таковой, чтобы отнесение Ф* к классам (ФВ1, ФеВ, ФеA, Фab), приводящим к порождению элементов gC, производилось в последнюю очередь.

Отнесение рассматриваемого элемента Ф* Фн к тому или иному классу определяет конкретную операцию его объединения с тем или иным остовом. В результате ее выполнения происходит изменение отдельных остовов, в том числе возможно появление остовов класса С. В случае появления остова класса С на нем про­веряется возможность выделения из него элементов gD, что сво­дится к реализации оператора КC.

Таким образом, на каждом шаге производится объединение одного элемента из Фв с известными остовами, в результате чего эти остовы трансформируются соответствующим образом, оста­ваясь в рамках названных классов А, В, D.

Условием окончания рассматриваемой процедуры является ус­ловие

Фн (к+1) = ФD, свидетельствующее о «присоединении» всех вершин из Фн к остовам gA и gB. Итогом при этом являются совокупности остовов gA, gB, gD, а также вершины ФD, свя­занные исключительно с gD. При этом

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106