Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[193]

Рис. 27.10 27.12 Задача о выходе. Начальные точки чёрные, остальные - белые, (а) Выход есть (выделены пути, его обеспечивающие). (Ь) Выхода нет.

Задачи

27-1 Задача о выходе

Имеется, граф вершины которого образуют решётку из га строк и га столбцов (рис. 27.12). Обозначим черезвершину на пере-

сечении г-го столбца и j-ой строки. Все вершины такой решётки (га X га grid), не считая граничных [г = 1, г = га, j = 1 или j = га) имеют четырёх соседей. В задаче о выходе (escape problem) требуется выяснить, существуют ли т попарно непересекающихся (не имеющих общих вершин) путей от данных т га2 начальных точек решётки (х\, у\), (х2, у2),..., (хт, ут) к т различным граничным точкам. Например, для задачи о выходе рис. 27.12(a) ответ положителен, а для рис. 27.12 (Ь) - отрицателен.

(a)Рассмотрим сеть, в которой пропускные способности имеют не только рёбра, но и вершины. Это означает, что поток, входящий в данную вершину, не может превосходить некоторого числа (пропускной способности вершины). Покажите, что задача о максимальном потоке в такой сети сводится к обычной задаче о максимальном потоке для сети несколько большего размера.

(b)Укажите алгоритм, решающий задачу о выходе. Чему равно время его работы?

27-2 Минимальное покрытие путями

Покрытием путями (path cover) ориентированного графа G = (V, Е) назовём множество путей Р с таким свойством: каждая вершина из V принадлежит ровно одному пути из Р. Пути могут начинаться и заканчиваться где угодно, и иметь любую длину, в том числе нулевую. Покрытие наименьшим возможным числом путей назовём минимальным покрытием путями (minimum path cover).

(a)Постройте эффективный алгоритм, находящий минимальное покрытие путями графа G = (V,E). (Указание. Пусть V = {1, 2,..., га}. Построим граф G = (V, Е), где

V = {х0, xi,..., хп} U {у0, у!,..., уп},

Е= {{x0,xl)\iev}\j{{yl,y0)\i е V}u{(Xl,yj}\(i,j) е Е},

и решим для этого графа задачу о максимальном потоке.)

(b)Правильно ли работает этот алгоритм, если у графа есть циклы? Ответ объясните.

27-3 Эксперименты в космосе

Институт космических исследований планирует серию Е = {Е\, Е2, , Ет} экспериментов в космосе. За результат эксперимента Е{ спонсоры выплачивают рг- долларов. Для этих экспериментов требуются приборы из множества / = {1\, 12, , 1п}] Для проведения эксперимента Ej необходимо множество Rj С / прибо-


ров. Стоимость доставки прибора 1к составляет ск долларов. Требуется выяснить, какие эксперименты следует проводить, чтобы прибыль (доход от экспериментов минус стоимость доставки нужных приборов) была максимальной.

Для решения этой задачи рассмотрим сеть G с истоком s, стоком t, вершинами 1\, 12, , 1п и Е\, Е2, , Ет. Сеть имеет также рёбра (s, 1) пропускной способности Ck (для всех к = 1,2,... , га); (Ej, t) пропускной способности pj] (для всех j = 1, 2,... , то); (Ik, Ej) бесконечной пропускной способности, если 1к £ Ej (для к = 1, 2,... , га и j = 1,2,... ,то).

(a)Рассмотрим разрез (S, Т) с конечной пропускной способностью для построенной сети. Пусть Ej £ Т. Покажите, что 1к £ Т для всех Ik £ Rj.

(b)Как, зная все pj и пропускную способность минимального разреза сети G, найти максимальную прибыль от экспериментов?

(c)Постройте алгоритм, определяющий, какие эксперименты следует проводить [для получения наибольшей прибыли] и какие для этого нужны приборы. Оцените время его работы как функ-

27-4 Максимальный поток в изменённой сети

Предположим, нам известен максимальный поток в сети G = (V,E), в которой все пропускные способности рёбер - целые числа.

(a)Пусть пропускная способность некоторого ребра (и,v) £ Е увеличилась на единицу. Приведите алгоритм, находящий максимальный поток (для изменённой сети) за время 0(V + Е).

(b)Пусть пропускная способность некоторого ребра (и,v) £ Е уменьшилась на единицу. Приведите алгоритм, находящий максимальный поток (для изменённой сети) за время 0(V + Е).

27-5 Масштабирование

Рассмотрим сеть G = (V, Е) с истоком s и стоком t. Пусть пропускная способность с(и, v) любого ребра (и, v) £ Е - целое число. Положим С = max с(и, v).

(a)Докажите, что пропускная способность минимального разреза сети G не превосходит С£.

(b)Докажите, что при любом заданном К можно за время 0(E) найти дополняющий путь с пропускной способностью не меньше К или установить, что такого пути нет.

Алгоритм Max-Flow-By-Scaling вычисляет максимальный поток в сети G с помощью масштабирования. Это одна из реализаций метода Форда-Фалкерсона.

\textsc{Max-Flow-By-Scaling}($G,s,t$)

1$C\leftarrow\max\limits {(u,v)\in E}{c(u,v)}$

2сделать поток $f$ нулевым

m

цию от то, га и г = 2 \Rj

3 = 1

(u,v)eE


3$K\leftarrow 2~{\lfloor\log C\rfloor>$

4while $K\ge 1$

5do while существует дополняющий путь $p$ пропускной способности не менз

6do дополнить $f$ вдоль $р$

7$K\leftarrow К/2$

8return $f$

(c)Докажите, что программа Max-Flow-By-Scaling вычисляет максимальный поток.

(d)Докажите, что в момент проверки условия цикла в строке 4 пропускная способность минимального разреза остаточной сети не превосходит 2К\Е\.

(e)Докажите, что цикл в строках 5-6 выполняется О(Е) раз для любого значения К.

(f)Докажите, что время работы алгоритма Max-Flow-By-Scaling равно О(Е2 log С).

27-6

Двусторонние границы

Рассмотрим сеть G = (V,E). Предположим, что ограничения на поток в этой сети двусторонние. Именно, для потока / и для каждого ребра (и, v) мы требуем, чтобы b(u, v) f(u, v) с(и, v), где с и Ь - заданные функции на рёбрах. (Возможно, что эти ограничения противоречивы - тогда потока не существует.)

(a)Пусть / - поток в сети G. Докажите, что / c(S,T) - b(T,S) для любого разреза (S,T).

(b)Пусть в сети G максимальный поток существует. Докажите, что его значение равно минимальной (по всем разрезам (S,T)) разности c(S, Т) - b(T, S).

Рассмотрим сеть G = (V, Е) с двусторонними границами с истоком s и стоком t. Обозначим верхнюю и нижнюю границы cub соответственно. Построим обычную сеть G = (V, Е) с верхней границей (пропускной способностью) с, истоком s и стоком t, положив

V = V U {s,t}

Е = Е U {(s, v)\v £ V} U {(и, t)\u £ V} U {(s, t), (t, s)}.

Для рёбер (u,v) G E положим c(u,v) = c(u,v) - b(u,v); для всех вершин и G V положим c(s,u) = b(V,u), а также c(u,t) = b(u,V). Кроме того, положим c(s,t) = c(t,s) = оо.

(c)Докажите, что поток в сети G существует тогда и только тогда, когда для максимального потока в сети G все рёбра, входящие в t, насыщены.

(d)Постройте алгоритм, который выясняет, существует ли поток в данной сети с двусторонними границами, и если да, то находит этот поток. Оцените время работы этого алгоритма.

Замечания



[стр.Начало] [стр.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] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120] [стр.121] [стр.122] [стр.123] [стр.124] [стр.125] [стр.126] [стр.127] [стр.128] [стр.129] [стр.130] [стр.131] [стр.132] [стр.133] [стр.134] [стр.135] [стр.136] [стр.137] [стр.138] [стр.139] [стр.140] [стр.141] [стр.142] [стр.143] [стр.144] [стр.145] [стр.146] [стр.147] [стр.148] [стр.149] [стр.150] [стр.151] [стр.152] [стр.153] [стр.154] [стр.155] [стр.156] [стр.157] [стр.158] [стр.159] [стр.160] [стр.161] [стр.162] [стр.163] [стр.164] [стр.165] [стр.166] [стр.167] [стр.168] [стр.169] [стр.170] [стр.171] [стр.172] [стр.173] [стр.174] [стр.175] [стр.176] [стр.177] [стр.178] [стр.179] [стр.180] [стр.181] [стр.182] [стр.183] [стр.184] [стр.185] [стр.186] [стр.187] [стр.188] [стр.189] [стр.190] [стр.191] [стр.192] [стр.193] [стр.194] [стр.195] [стр.196] [стр.197] [стр.198] [стр.199] [стр.200] [стр.201] [стр.202] [стр.203] [стр.204] [стр.205] [стр.206] [стр.207] [стр.208] [стр.209] [стр.210] [стр.211] [стр.212] [стр.213] [стр.214] [стр.215] [стр.216] [стр.217] [стр.218] [стр.219] [стр.220] [стр.221] [стр.222] [стр.223] [стр.224] [стр.225] [стр.226] [стр.227] [стр.228] [стр.229] [стр.230] [стр.231] [стр.232] [стр.233] [стр.234] [стр.235] [стр.236] [стр.237] [стр.238] [стр.239] [стр.240] [стр.241] [стр.242] [стр.243] [стр.244] [стр.245] [стр.246] [стр.247] [стр.248] [стр.249] [стр.250] [стр.251] [стр.252] [стр.253] [стр.254] [стр.255] [стр.256] [стр.257] [стр.258] [стр.259] [стр.260] [стр.261] [стр.262] [стр.263] [стр.264] [стр.265] [стр.266] [стр.267] [стр.268] [стр.269] [стр.270] [стр.271] [стр.272] [стр.273] [стр.274] [стр.275] [стр.276] [стр.277] [стр.278] [стр.279] [стр.280] [стр.281] [стр.282] [стр.283] [стр.284] [стр.285] [стр.286] [стр.287] [стр.288] [стр.289] [стр.290] [стр.291] [стр.292] [стр.293] [стр.294]