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

Оптимальные иерархические структуры - Воронин А.А., Мишин С.П

..pdf
Скачиваний:
39
Добавлен:
24.05.2014
Размер:
1.49 Mб
Скачать

той области, в которой он не является ни выпуклым, ни вогнутым.

Сделаны эмпирические выводы о величине средней и максимальной погрешности, о нарастании погрешности при росте n (см. таблицы 3.7, 3.8, 3.9, рис. 3.7, 3.8). В результате тестирования можно сделать выводы о том, какой алгоритм предпочтительнее использовать для конкретного функционала. Еще раз подчеркнем, что проведенный эмпирический анализ относится к функционалу (II). Аналогичным образом

эвристические алгоритмы могут тестироваться и для других функционалов, но выводы могут отличаться от полученных для

(II).

Кроме того, в таблице 3.9 приведен пример эмпирического анализа самого функционала на классе деревьев D( f ). Из таблицы можно сделать вывод о том, насколько отличается стоимость деревьев, оптимальных на D2 ( f ) и Op ( f ) , от стоимости

оптимального на D( f ) дерева. Отличие стоимости веерной организации от стоимости оптимального на D( f ) дерева

иллюстрирует, насколько организация наиболее простого видаможет быть дороже оптимальной. То есть приведен пример

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

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

141

Глава IV. Алгоритмы поиска оптимальной последовательной организации.

В данной главе рассматриваются методы решения задачи об оптимальной на Op (f) последовательной организации

произвольного набора групп f = { f1,K, fm }.

Согласно теореме 1.7 существует оптимальная на Op (f )

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

графы будут оптимальными и

на первоначальном

множестве

Op (f ). Таким образом, для

любой

вершины

g V \ NG

произвольной

организации

G = (V, E) Op (f)

выполнено

QG (g) = {h,{a}},

где h = g \ {a},

{a} –

некоторая элементарная

подгруппа (см. лемму 1.4). В последовательной организации одной группы элементы присоединяются друг к другув некотором порядке (см. опр. 1.33, рис. 1.8).

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

найденное алгоритмами решение будет оптимальной организацией

ина множествах O(f ), Or (f), O~(f ), O~r (f).

В§1 оценивается сложность и строятся алгоритмы решения

задачи об оптимальной последовательной организации для функционала общего вида. В конце параграфа приводится пример, поясняющий изложенный материал. В §2 построенные алгоритмы модифицируются для решения задачи c функционалом вида P( g1 ,K, gk , g ) , который зависит не от состава подгрупп

g1,K, gk , организуемых в группу g , а лишь от их мощностей g1 ,K, gk , g . Например, для определенного в §2 главы II анонимного функционала с функцией сложности вида (2.2) требование P(C(g1),K,C(gk ),C(g)) = P( g1 ,K, gk , g ) эквивалентно условию равенства сложностей элементов: C(a1 ) = K = C(an ).

Также в §2 оценивается сложность задачи об оптимальной

последовательной организации с функционалом вида P( g1 ,K, gk , g ) (доказывается NP -полнота).

142

§1. Алгоритм решения общей задачи.

1.Эквивалентность задач о поддереве минимального веса

иоб оптимальной на Op (f ) организации.

Напомним, что вершинами графов G Op (f) могут быть произвольные группы элементов. Все множество групп обозначается через F (см. опр. 1.13). Выполнено F = 2N \ {Æ}, где

N = {a1,K, an } = f1 K fm ,

f

= { f1,K, fm }

 

набор

групп,

которые обязательно должны

присутствовать

в

 

каждом

графе

G Op (f). Определим вспомогательный граф.

 

 

 

 

 

Определение 4.1. Графом задачи об оптимальной на Op (f )

последовательной

организации

 

назовем ориентированный граф

H = (VH , EH ) :

VH = F { },

 

 

 

′′

′′′

где

EH = EH EH EH ,

 

 

 

 

 

 

 

′′

 

 

 

 

= {(Æ,{ai }) : i = 1, n},

 

 

}) :1 ≤ i < j n},

EH

EH = {({ai },{ai , a j

′′′

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= {(g, g È{ai }) : g ÎV ,

g

³ 2, ai Ï g,i = 1, n}.

 

 

 

 

EH

 

 

 

 

Определение 4.2. Назовем весом ребер графа H = (VH , EH ) функцию λ : EH ® R+ , которая определяется следующим образом.

 

 

положим вес равным нулю. Для любого ребра из

Для ребер из EH

′′

′′′

вида e

= {g, g {ai }} положим λ(e) = P(g,{ai }) .

EH EH

На рис. 4.1 приведена схема графа задачи. Рассмотрим некоторое ребро e = (g, h) EH ′′ EH ′′′ , то есть любое ребро, кроме n нижних ребер. Тогда ребро e ведет из группы g в группу h = g {a}, где {a} – некоторая элементарная группа, не входящая

вg . То есть ребро e соответствует организации подгрупп {a} и g

вгруппу h . Вес λ(e) ребра e равен стоимости P({g},{a}) такой организации. Любой путь из вершины в некоторую группу g в

графе задачи соответствует некоторой последовательной организации одной группы g (определяет последовательность

элементов, см. опр. 1.33). Причем суммарный вес ребер пути равен стоимости организации.

143

 

 

 

 

 

{a1, a2 ,K, an−1 ,an }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P({a1 ,a2 ,K, an−2 , an−1},{an })

P({a1 , a3 ,K, an−1, an },{a2})

 

 

 

 

 

 

 

 

 

 

 

 

 

P({a1 , a2 ,K, an−2 , an },{an−1})

 

P({a2 , a3 ,K, an−1 , an },{a1})

{a1, a2 ,K, an−2 , an−1} {a1, a2 ,K, an−2 , an }

{a1, a3 ,K, an−1 , an } {a2 , a3 ,K,an−1 , an }

 

 

 

 

{a1, a2}

{a1 , a3}

{a1, a4}

{an−2 , an−1}

 

{an−2 ,an }

{an−1, an }

P({a1},{a2 }) P({a1},{a4 }) P({an−2 },{an })

P({a1},{a3}) ......................................................................................

....................................................................................................

.................................................................................. P({an−2 },{an−1})

P({an−1},{an })

{a1}

{a2}

 

{a3}

{an−2}

{an−1}

{an }

 

0

0

0

0

0

0

 

Рис. 4.1. Граф H = (VH , EH ) задачи об оптимальной последовательной организации.

Рассмотрим поддерево D графа задачи H с корнем в ,1 содержащее неэлементарные группы из f1,K, fm , листья которого

содержатся среди неэлементарных групп из f1,K, fm .2 Далее, если

не оговорено противное, под поддеревом понимаем поддерево указанного вида, не оговаривая каждый раз требования к поддереву.

Определение 4.3. Задачу поиска поддерева минимального веса назовем задачей об оптимальном поддереве в H . Под весом λ(D) поддерева D будем понимать сумму весов ребер D .

1Под поддеревом H с корнем в понимается подграф, в каждую вершину которого, кроме корня , входит ровно одно ребро.

2Считаем, что в наборе f1 ,K, f m есть хотя бы одна неэлементарная группа, иначе

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

144

Теорема 4.1. Для структурного функционала общего вида задача об оптимальной последовательной организации эквивален- тна1 задаче об оптимальном поддереве в графе задачи H .

Доказательство. Пусть G = (V, E) Op (f ) – последователь- ная организация набора групп f = { f1,K, fm }. Построим поддерево

D = (VD , ED ) графа H .

 

 

VD следующим

 

Определим множество

вершин

образом

′′

 

 

g

 

′′

 

 

 

 

 

VD = VD

VD { }, где VD = {g ÎV ,

 

³ 2}, VD = {{ai}: j > i,

 

 

все группы графа G , мощность

{ai , a j} V}. То есть включим в VD

которых больше или равна

двум.

В

G каждая группа

{ai , a j }

мощности два организуется из подгрупп {ai } и {a j }, i < j . Тогда для каждой группы {ai , a j } в VD включаем только подгруппу {ai }

с меньшим номером элемента.

Определим множество ребер ED следующим образом.

Рассмотрим g V , g ³ 3, тогда QG (g) = {h,{ai }}, g, h VD . Включим ребро e = (h, g) в ED , при этом имеем P(QG (g)) = λ(e) .

Рассмотрим g = {ai , a j } V ,

i < j , тогда

g,{ai } VD . Включим

ребро e = ({ai }, g) в

ED . Снова имеем

P(QG (g)) = λ(e) .

Для

{ai } VD включим

ребро

e = ( ,{ai })

в ED ,

λ(e) = 0.

По

построению в каждую вершину D , кроме корня,

входит ровно

одно ребро. Все неэлементарные группы из набора f = { f1,K, fm }

входят в D . Все терминальные вершины G содержатся среди набора групп f = { f1,K, fm }. Следовательно, все листья D также

содержатся среди f1,K, fm . В итоге получим поддерево D графа H , причем выполнено P(G) = λ(D) (см. опр. 4.3).

Обратно, пусть D = (VD , ED ) – поддерево H . Построим последовательную организацию G = (V , E) Op (f) набора групп

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

145

f ={ f1,K, fm} следующим образом. Определим множество вершин

V = (VD {{a1},K{an }}) \ { }. В вершину g V , g ³ 2 в дереве

D входит одно ребро e = (h, g). Добавим к E ребра (h, g), (g \ h, g).

Вершина g \ h элементарна,

то есть входит в V . Выполнено

P(QG (g)) = λ(e) . Очевидно,

что получим последовательную

организацию набора групп f = { f1,K, fm }, причем P(G) = λ(D) .

Итак, каждому поддереву D графа задачи H соответствует одна и только одна последовательная организация G Op (f ),

причем стоимость организации равна весу соответствующего дерева. То есть задачи о последовательной организации

минимальной стоимости о поддереве минимального веса эквивалентны. Теорема доказана.

 

Следствие 1. Задача об оптимальной на Op ( f )

последовательной организации одной

группы f эквивалентна

задаче поиска кратчайшего пути из в

f в графе H .

 

Доказательство. Поддерево H с корнем в , содержащее

f

, единственным листом которого является f , есть путь из в

f

в графе H . Следствие доказано.

 

Следствие 2. Алгоритм, решающий задачу об оптимальной на Op ( f ) последовательной организации одной группы f ,

f = n ³ 3, для структурного функционала P общего вида должен

проанализировать n(2n−1 - (n +1) / 2) значений P. Доказательство. Выполнено f = N , так как организуется

только одна группа. По следствию 1 задача эквивалентна задаче о кратчайшем пути из в f в графе H . Вес каждого ребра

соответствует значению функционала, причем вес каждого ребра может быть выбран независимо от других, так же как и

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

алгоритм должен в общем случае проанализировать веса всех ребер H , кроме ребер вида ( ,{a}) .

Предположим, что существует алгоритм, решающий задачу и не анализирующий веса всех вышеуказанных ребер. Положим их

146

стоимости равными 1. Любой путь из Æ в f в H содержит ровно n ребер, вес любого пути равен n -1 (вес первого ребра вида ( ,{a}) нулевой). Алгоритм найдет некоторый путь, не проанализировав хотя бы одного ребра e. Если e не принадлежит пути, изменим его стоимость на 0, иначе на 2. В измененном графе будет найден тот же путь, что и в первом случае, так как измененное значение не анализировалось. Но он не будет

оптимален.

Условие n ³ 3

необходимо

для того,

чтобы

существовали как минимум два пути из Æ в f .

 

 

Количество ребер H , за исключением ребер вида ( ,{a}) ,

можно вычислить следующим образом: n(n −1)/ 2 + å

 

Cni

(n i) =

 

= n(2n−1 − (n +1) / 2)

 

 

i=2,n

 

 

(последнее

равенство

получено

с

учетом

соотношения

iCni

= nCni11).

То есть

алгоритм

 

должен

анализировать не менее n(2n−1 − (n +1) / 2) значений функционала. Алгоритм, который решает задачу, анализируя стоимости всех ребер, кроме ребер вида ( ,{a}) , строится очевидным образом.

Имея стоимости кратчайших путей до всех вершин данной мощности и просмотрев все выходящие из них ребра, найдем

стоимости кратчайших путей до всех вершин следующей мощности. И так далее. Следствие доказано.

Следствие 2 дает алгоритм решения задачи об оптимальной на Op ( f ) последовательной организации одной группы, требую-

щий n(2n−1 − (n +1) / 2) вычислений функционала стоимости, и показывает, что более эффективного алгоритма не существует.

Для решения задачи об оптимальной последовательной организации произвольного набора групп необходимо найти оптимальное поддерево H (см. теор. 4.1). Следующие два пункта посвящены решению этой задачи.

2. Нормализация графа задачи.

Преобразуем граф задачи H (см. опр. 4.1) в так называемый нормализованный граф задачи, из каждой вершины которого выходит не более двух ребер. После этого докажем

эквивалентность задач об оптимальном поддереве в исходном и

147

нормализованном графах. Алгоритм решения задачи об

оптимальном поддереве на нормализованном графе строится в следующем пункте.

Определение

4.4.

Нормализованным

графом

задачи

H norm = (Vnorm , Enorm )

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

задачи H = (VH , EH ) в результате следующей процедуры. Пусть

g VH , k =

 

R(g)

 

³ 3,

R(g) = {g1,K, gk },

где через

R(g)

 

 

обозначено множество вершин, в которые идут ребра из g в графе

H . Удалим ребра (g, gi ),

i =

 

. Добавим k1 = ë(k +1) / 2û вершин,

1, k

обозначив их g1,K, g1

, и ребра (g1

 

 

, g ), i =

 

, вес которых

 

û

1, k

 

 

 

 

 

 

1

1

 

ë

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

(i+1) / 2

 

 

 

 

 

 

 

 

 

 

равен

весу удаленных ребер (g, gi ).

Если k1 ³ 3,

то

 

добавим

k

2

= (k

 

+1) / 2

û

вершин,

обозначив

их

 

g 2 ,K, g

2 ,

 

и ребра

 

ë

1

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

k2

 

 

 

 

(g 2

 

 

, g1,),

i =

 

 

нулевого веса. И так далее, на очередном

 

û

1,k

 

 

ë

 

i

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(i+1) / 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

шаге добавим две вершины g1q , g2q

и ребра (g, g1q ), (g, g2q )

нулевого веса. Проделав такие шаги для всех g ÎVH ,

 

R(g)

 

³ 3,

 

 

придем к графу H norm ,

из вершин которого выходит не более двух

ребер.

 

 

Для

 

H norm = (Vnorm , Enorm )

 

определим

задачу об

оптимальном поддереве аналогично определению 4.3.

Рис. 4.2. Приведение к нормализованному графу задачи.

Описанное перестроение для k = 2q+1 изображено на рис. 4.2. Суть его состоит в следующем. “Вилкуиз k ³ 3 ребер, выходящих из g , мы заменяем на вилкуиз двух ребер, идущих в дополнительные вершины, из которых в свою очередь выходит не

148

более двух ребер, и так далее, в итоге дойдемдо вершин g1,K, gk , в которые в первоначальном графе шли ребра из g . То

есть каждое ребро (g, gi ) , i = 1, k заменилось на некоторый путь из g в gi , проходящий через добавленные вершины. Причем вес пути равен весу первоначального ребра (g, gi ) .

Утверждение 4.1. Задача об оптимальном поддереве в H

эквивалентна

задаче

об

оптимальном

поддереве

в

нормализованном графе задачи H norm .

 

 

 

 

 

Доказательство. Рассмотрим поддерево D = (VD , ED )

графа

H = (VH , EH ).

Построим

поддерево D

¢

 

¢ ¢

графа

 

= (VD , ED )

 

 

 

 

 

 

 

¢

 

 

 

 

Для

H norm = (Vnorm , Enorm ) . Добавим в VD все вершины из VD .

g ÎVD ,

 

R(g)

 

≤ 2

 

¢

выходящие из g

ребра. Рассмот-

 

 

 

 

 

добавим в ED

рим g ÎVD , R(g) = {g1,K, gk }, k ³ 3. Тогда в H norm есть вершины

g j ,K, g j , j =

 

(см. опр. 4.4). Пусть в поддереве D из g выход-

1, q

1

k j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ят

l £ k ребер в gi

,K, gi

¢

1

+1) / 2

 

, а в

. Добавим в VD

вершины g

(i

û

 

1

1

 

 

l

 

 

 

ë

s

 

 

¢

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+1) / 2

 

, gi

 

),

s = 1,l . Для добавленных вершин добав-

ED

ребра (g

(i

û

s

 

ë

s

 

 

 

 

 

 

 

 

 

 

 

 

им ведущие в них в графе H norm ребра 1 и соответствующие вер- шины, и так далее, пока не добавим идущие из g ребра. Получим

поддерево D

графа H norm , причем по построению λ

 

(D ) = λ(D).

Обратно, рассмотрим поддерево D

¢

¢

¢

графа H norm .

 

= (VD

, ED )

Построим поддерево

D = (VD , ED )

графа

 

H .

Добавим в VD все

 

 

¢

 

 

¢

 

 

 

 

R(g)

 

≤ 2

добавим в D

 

 

 

 

 

 

 

 

 

вершины из VD ÇVH . Для

 

g ÎVD ÇVH ,

 

 

ребра, выходящие из

 

 

¢

 

 

 

 

 

R(g) = {g1,K, gk },

g в D

. Для g ÎVD ÇVH ,

 

 

k ³ 3 некоторые 0 £ l £ k

вершин

gi ,K, gi

 

 

 

¢

 

 

принадлежат VD .

 

 

 

 

 

 

1

 

 

l

 

 

 

 

Тогда добавим в ED

ребра (g, gi ),

s =

 

. Получим поддерево D

1,l

 

 

 

 

 

s

 

 

 

 

 

 

 

 

 

графа H , причем по построению λ(D′) = λ(D).

Итак, каждому поддереву H norm соответствует поддерево H такого же веса и наоборот, что и доказывает утверждение.

1 В каждую такую вершину ведет ровно одно ребро по построению H norm .

149

3. Построение алгоритма. Оценка сложности.

Доказательство следующей теоремы представляет собой алгоритм решения задачи об оптимальном поддереве в нормализованном графе H norm = (Vnorm , Enorm ) . Как и для графа

задачи H , через R(g) будем обозначать вершины H norm , в которые идут ребра из g Vnorm .

Теорема 4.2. Существует алгоритм, решающий задачу об оптимальном поддереве в H norm = (Vnorm , Enorm ) путем сравнения

менее V2 (Hnorm )3m

 

весов различных

поддеревьев,

где

V2 (H norm ) =

 

{g Vnorm :

 

R(g)

 

= 2}

 

число

вершин H norm ,

из

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

которых выходит ровно два ребра.

Доказательство. Искомое поддерево должно содержать все группы набора f = { f1,K, fm }. Обозначим L = 2f \ { }. То есть L

множество непустых поднаборов набора { f1,K, fm}. Поднаборы будем обозначать через s L. Рассмотрим s L и g Vnorm . Через λ(g,s) обозначим минимальный вес поддерева графа H norm с корнем в g , которое содержит все вершины набора s, листья которого содержатся среди вершин s. Если соответствующего дерева не существует, положим λ(g,s) = +¥ .

Пусть R(g) = 0, то есть из g ребер не выходит. Если g f , то λ(g,s) = +¥ для любого s L. Если g f , то λ(g,{g}) = 0, λ(g,s) = +¥ для любого s ¹ {g}.

Пусть

 

R(g)

 

= 1, то есть из g выходит одно ребро e = (g, h).

 

 

Если g f ,

 

то для любого s L имеем λ(g,s) = λ(h,s) + λ(e).

Соответствующее λ(g,s) поддерево строится как объединение ребра e и поддерева веса λ(h,s). Если g f , то для любого s L, g s имеем λ(g,s) = λ(h,s) + λ(e); а для любого s L, g s , s ¹ {g} имеем λ(g,s) = λ(h,s\{g}) + λ(e), так как g уже содержится в корне дерева. Для оставшегося случая s = {g} имеем λ(g,{g}) = 0.

Пусть

 

R(g)

 

= 2, то есть из g выходит два ребра e1 = (g, h1) и

 

 

e2 = (g, h2 ) .

 

Рассмотрим s L. В поддереве, соответствующем

величине λ(g,s), некоторый набор s1 s содержится в поддереве с корнем в h1, набор s2 = s \ s1 (или s2 = s \ (s1 {g}), если g s )

150

Соседние файлы в предмете Экономика