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


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




[186]

Заметим, что расстояния ограничены сверху значением V (кратчайший путь не проходит дважды через одну вершину), так что общее число таких чередований есть 0(V), как мы и обещали.

Подсчитаем теперь общее время работы алгоритма Эдмондса-Карпа. Каждая итерация требует времени О(Е), их будет 0(VE), поэтому всего будет 0(VE2).

В разделе 27.4 мы расскажем о другом подходе к поиску максимального потока, который позволяет сделать это за 0(V2E). Его усовершенствование позволяет ещё уменьшить время работы, получив оценку 0(V3) (раздел 27.5).

Упражнения

27.2-1

Найдите поток через разрез ({s, v2, V4}, {v\, v3, t}) на рис. 27.1 b). Чему равна пропускная способность этого разреза? 27.2-2

Проследите за выполнением лгоритма Эдмондса-Карпа для сети рис. 27.1 (а). 27.2-3

Укажите минимальный разрез на рис. 27.6, соответствующий нарисованному максимальному потоку. В каких случаях дополняющий путь уменьшал поток, идущий в обратном направлении?

27.2-4

Докажите, что для любых вершин и и v, любого потока / и пропускной способности с выполнено Cf(u, v)-\-cj(v, и) = с(и, v)-\-c(v, и). 27.2-5

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

27.2-6

Рассмотрим сеть с несколькими истоками и стоками, в которой каждый исток s4- производит ровно рг- единиц потока, а каждый сток tj потребляет ровно qj единиц, т.е. f(si, V) = pi и f(V, tj) = qj. При этом 2~}гРг = 2~}j Qj- Как узнать, возможен ли поток с такими ограничениями, сведя эту задачу к задаче о максимальном потоке?

27.2-7

Докажите лемму 27.3. 27.2-8

Покажите, что при поиске максимального потока в сети G = (V, Е) достаточно сделать \Е\ шагов, если только правильно выбрать дополняющие пути на каждом шаге. (Указание. Считая, что максимальный поток известен, покажите, как следует выбирать пути.)

27.2-9

Назовём запасом связности (edge connectivity) неориентирован-


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

Как узнать связность графа с помощью программы поиска максимального потока? Её следует применять не более чем к \V\ сетям, каждая из которых содержит 0(V) вершин и О(Е) рёбер.

27.2-10

Предположим, что для каждого ребра (и, v) сети обратное ему ребро (v, и) также входит в сеть Покажите, что алгоритм Эдмондса-Карпа требует не более \V\ \Е\/4 итераций. (Указание: для каждого ребра (и, v) проследите, как меняются S(s,u) и S(v,t) между теми моментами, когда ребро (и, v) критическое.)

27.3. Максимальное паросочетание в двудольном графе

Некоторые комбинаторные задачи (например, задача о сети с несколькими истоками и стоками из раздела 27.1) сводятся к разобранной нами задаче о максимальном потоке. Другой пример такого рода - задача о максимальном паросочетании в двудольном графе (см. раздел 5.4). В этом разделе покажем, как с помощью метода Форда-Фалкерсона можно решить эту задачу для графа G = (V, Е) за время 0(VE).

Задача о максимальном паросочетании

Пусть G = (V, Е) - неориентированный граф. Паросочетанием (matching) назовем множество рёбер М С Е, не имеющих общих концов (каждая вершина v £ V является концом максимум одного ребра из М). Будем говорить, что вершина v £ V входит в паросочетание М (is matched), если в М есть ребро с концом v; в противном случае v свободна (is unmatched). Максимальное паросочетание (maximum matching) - это паросочетание М, содержащее максимально возможное число рёбер (\М\ М для любого паросочетания М). Пример паросочетания приведён на рис. 27.8.

В этом разделе мы будем рассматривать паросочетания лишь в двудольных графах. Мы предполагаем, что множество V разбито на два непересекающихся подмножества L и R, и любое ребро из Е соединяет некоторую вершину из L с некоторой вершиной из R.

Для задачи о максимальном паросочетании в двудольном графе есть несколько метафор. Вот наиболее известная: L - женихи, R - невесты, наличие ребра (и, v) означает, что и и v согласны стать супругами. Максимальное паросочетание доставляет ЗАГСу

Рис. 27.8 27.8 Двудольный граф. Множество вершин разбито на две части L и R. (а) Паросочетание из двух рёбер. (Ь) Максимальное паросочетание состоит из трёх элементов.


Рис. 27.9 27.9 Сеть, соответствующая двудольному графу, (а) Двудольный граф рис. 27.8. Выделенные рёбра образуют максимальное паросочетание. (Ь) Соответствующая сеть G и максимальный поток в ней. Пропускная способность любого ребра равна единице; поток по выделенным рёбрам равен единице, по остальным - нулю. Выделенные рёбра, соединяющие вершины из L с вершинами из R, соответствуют максимальному паросочетанию в двудольном графе.

больше всего работы.

Поиск максимального паросочетания в двудольном графе Мы будем использовать метод Форда-Фалкерсона для поиска максимального паросочетания в двудольном графе G = (V, Е) за полиномиальное от \V\ и \Е\ время. Для этого рассмотрим сеть G = (V,E), соответствующую двудольному графу G (рис. 27.9). Эта сеть строится так: добавяляются две новые вершины, которые будут истоком (s) и стоком (t): V = V U {s,t}. Множество (направленных) рёбер сети G таково:

Е ={(s,u)\u £ L} U

U {(и, v)\u е L, v е R, (и, v) £ Е} и

{{v,t)\veR}.

(напомним, что через L и R обозначаются доли графа). Будем считать, что пропускная способность каждого ребра равна единице.

Следующая лемма устанавливает соответствие между потоками в G и паросочетаниями в G - но прежде дадим ещё одно определение.

Поток / в сети G = (V, Е) называется целочисленным (integer-valued), если все значения f(u,v) - целые. Лемма 27.10

Пусть G = (V, Е) - двудольный граф с долями L и R, и G = (V, Е) - соответствующая сеть. Пусть М - паросочетание в G. Тогда существует целочисленный поток в G со значением / = \М\. Обратно, если / - целочисленный поток в G, то в G найдется паросочетание из / элементов.

Доказательство

Сначала докажем, что паросочетание порождает поток, задав поток / следующим образом. Если (и, v) £ М, то f(s, и) = f(u, v) = f(v,t) = 1 и f(u,s) = f(v,u) = f(t,v) = -1. Для всех остальных рёбер (и, v) £ Е положим f(u, v) = 0. Неформально говоря, каждое ребро (и, v) £ М соответствует единичному потоку по пути s -> и -> v -> t. Никакие два таких пути не содержат общих вершин (кроме истока и стока) или рёбер.

Чтобы проверить, что / является потоком, достаточно заметить, что / представим в виде суммы потоков по этим путям. Поток через разрез (LL){s}, RL){t}) равен \М\, поэтому по лемме 27.5 значение потока / равно \М\.



[стр.Начало] [стр.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]