УДК 519.85
ЗНАХОДЖЕННЯ МАКСИМАЛЬНОГО ПОТОКУ В МЕРЕЖ1 3 ДОДАТКОВИМИ КОМБ1НАТОРНИМИ ОБМЕЖЕННЯМИ
© бмець О. О., бмець G. М., Олексшчук Ю. Ф.
полтавський уншерситет економ1ки i торгшл1
бул. Коваля, 3, м. Полтава, 36014, Украша e-mail: yernetsliernail.ru, olexijchuk@grnail.com
Abstract. In article the task of a finding of the maximum flow in a network with additional combinatorial restrictions is delivered and solved. The mathematical model is constructed; the algorithm of its decision is stated. The considered task is generalization of the task of a finding of the maximum flow in a network.
Вступ
Розв'язання багатьох прикладних i теоретичних задач можна звести до модел1 знаходження максимального потоку в мережь Ця задача е добре дослщженою i роз-глядаеться, зокрема в [1, 2, 3, 4, 5, 6]. Для знаходження максимального потоку в мереж1 використовуються алгоритми Форда i Фалкерсона [1], Едмондса i Карпа [4], Дшща [5], Карзанова [6] та ш. Задача знаходження максимального потоку в мере-ж1 з додатковими комбшаторними обмеженнями в лтератур1 не розглядалася. Бона дозволяе розширити коло прикладних задач, що моделюються потоками в мережах. Водночас, перел1чеш алгоритми потребують суттево!' модифшацп або й взагал1 е неза-стосовними до розв'язання n,ieï задачь Отже, нова модель вимагае розробки метод1в ïï розв язувэ^ння.
1. Постановка задач1
Нехай задано транспортну мережу графом з множиною вершин {V,} та множи-ною дуг {eij}, де eij сполучае вершини Vi та Vj. Принайми! одна i3 вершин мае лише дуги, що виходять. Така вершина називаеться джерелом i иозначаеться Vs. Вершина, яка мае лише дуги, що входять, називаеться стоком i иозначаеться Vt. (Надал1 буде-мо розглядати лише мереж1 з одним джерелом i одним стоком.) Кожна з дуг ej мае пропускну сироможн1сть bij > Елемент ^^^^^ що вщповщае дуз1 eij иозначимо Vj 0 < yj < bj через деяю i3 дуг ej можна транспортувати продукт деякп-
ми порщями Xj = gi Е ^е G = {gi,g2, ■ ■ ■ ,gn} _ деяка мультимножина, причому вектор з xij е розмщенням елемент1в з G (Шд ^^^^етимножиною G будемо розу-mîth сукупнкть елемент1в, серед яких можуть бути й однаков1 (нерозр1зним1) [7].)
Тещ для таких дуг у^ < х^. Для будь-яко!' вершини г, окр1м джерела 1 стоку, суми елементав потоку на вхщнпх 1 внхщннх дугах мае бути однаковою:
^Угг = ^ УгзУг = 5; Уг = I. (1)
г 3
Також однаковою будемо вважати суми елементав потоюв на дугах, що виходять г;
ДЙКбрбЛсХ Тс1 ТДО ВХОДЯТЬ В СТ1К!
Х^У« = Х Ун = (2)
г з
Задача полягае у знаходженш за названих умов максимального потоку, тобто максимального значения и>.
Зауваження 1. В залежноста вщ ;,\ппу ;а.исп. що моделюеться, можна додавати обмеження вигляду хь < Ъц.
2. МАТЕМАТИЧНА МОДЕЛЬ ЗАДАЧ1
Введемо деяю означения. Будь-яку мультимножину А можна представити 11 основою S (А), тобто множиною вегх 11 р1зних елементав, та первинною специфжа-щею [А] - списком кратностей елементав основи мультимножини.
Розглянемо к - виб1рку з мультимножини О = {дг,д2, ■ ■ ■ , дп} такого вигляду:
д = (дгг,д*2,...,дгк), (з)
де gij Е О, Ь = Ч У^ь,4 Е Зп Е Зк. Тут Зп - множина п перших натуральиих чисел, тобто Зп = {1, 2,..., п}.
Множину Акп (О), елементами яко!' е р1зш упорядковаш к - виб1рки вигляду (3) з мультимножини О називають [7, 8, 9] евклидовою комбшаторною множиною розмь
Вщображення
Ф : Акт ^ Еф С Кк (4)
називають зануренням А^п в арифметичний евклщовий простар, якщо м1ж А^п та Еф шнуе взаемно однозначна вщповщшеть, встановлена правилом: для д = (дк ,дг2 ,...,дгк) Е А^, х = ф (д), х = (хг ,Х2,...,Хк) Е Еф маемо х^ = д^ У3 Е Зк-
Позначимо занурену евклщову комбшаторну множину розмщень Екп (О) або
Задачу знаходження максимального потоку в мереж! з додатковими комГ)1 на горними обмеженнями можна описати математичною моделлю:
Знайти
за обмежень
f (y) = Yl Уз* ^ max
Viz = V yzj ,z = t,z = s, ViVj (6)
/ J i)iz — / J
0 < Vij < bij, ViVj (7)
Vij < Xij, ViVj (8)
x (xiljl, • • • , xik jk) Е Enn> де (ii, ji), • • •, (ik,jk) _ дуги транспортно1 мережь
Зауваження 2. Зазначимо, що задача (5)-(7) е класичною задачею знаходження максимального потоку в мереж1 з обмеженими пропускними спроможностями дуг, що розглядаеться в [1, 2, 3, 4, 5, 6].
Зауваження 3. В щльовш функгщ шукаеться максимальний потак, що входить в сик. Формулу (2) легко вивести i3 сшввщношень (6).
Задача (5)-(9) е задачею евюпдово!' комбшаторно!' оптим1защ1 на розмщеннях [8, 9, 10]. Методи 'ii розв'язання розглядаються, зокрема, в [9] та [10].
Зауваження 4. Нульовий розв'язок е допустимим для задач1 (5)-(9). Тому мульти-множина G мае мктити елемент нуль i3 кратшстю, що не менша за кшыисть дуг, на як1 накладаються Koxioinaropni обмеження.
3. Алгоритм розв'язування
Ненульовпй вектор x Е Rk називаеться лексикограф1чно додатшм (позначен-няж У 0), якщо додатною е його перша вщмшна вщ нуля координата. Вектор x Е Rk лексикограф1чно бшыпий за вектор y Е Rk (позначення x У ^^що x — y У 0.
Щлою Ч¡ИСТИНОЮ ДШСНОГО ЧИСЛсХ а ^ПОЗНсХЧвННЯ [а]) називаеться найбшыпе цше число, що не перевищуе а. Дробовою частиною числа а (позначення {а}) називаеться р1зниця а — [а].
Розглянемо прямий метод комбшаторного В1ДС1К&ННЯ fiol ДЛЯ рОЗВ ЯЗсШНЯ зада-
4i (5)-(9).
Крок 0. Побудуемо симплекс-таблицю вщповщно!' до задач1 (5)-(9) задач1. liniii-ного програмування (без урахування комбшаторнпх умов): f ^ max за умов (6)-(8). До симплекс-таблищ приеднуеться рядок (дал1 L-рядок), який вщповщае обмежен-
ню, що виражае верхню межу небазисних змшнпх xL + ^^ xj = аьо, де J - множина
jJ
небазисних змшних, аь0 = хг, де хг - максимально можливе або бшыпе, шж мак-
г=1
симально можливе, значения змшно!' хг, за умови задач! (5)-(9), хь > 0 - базисна змшна, тдо введена для отрим&ння ршност1 з вввдвно1 нвршностч.
Крок 1. Перев1рити умову оптпма. 1ыюгп для розв'язку задач1 лшшного про-грамування (ЗЛП): якщо рядок ощнок х0^ > 0, то розв'язок оптимальный, зупинка; шакше - переход до кроку 2.
Крок 2. Вибрати напрямний стовпець з номером а, що задовольняе умо-
г\ • / г\ ( а01 а11 аП1
вам аЬа > 0 1 та Тз для вс 1х ] = а, ] Е ,] при аЬа > 0, де г^ = -,-,...,-
множини V (s) = < i 0 < aio
l . ai& _
aLj aLj aLj,
Крок 3. Впбрати номер тв1рного рядка v, за яким буде будуватися В1ДС1КЯННЯ^ 13
< >, де = min О0 за наступнпмн правилами: J aia >0 aia
А) Нехай Vt (а) - множина V (а), що вщповщае t - й симплекс-таблищ. Якщо Vt (а) мштпть бшыпе одного елемента: Vt (а) = {vi ,v2, ■ ■ ■ ,vm}, то впбнраемо рядок va, що в послщовноси V1 (а), V2 (а), ..., V (а) з'явився ранше (не шзнипе) шшнх vi Е V (а) i збер1гався до Vt (а). Перейти до Б)
Б) Послщовно вибирати рядок v, взятий в А), поки v Е V (а). Якщо v Е V (а), перейти до А).
Крок 4. Додати в симплекс-таблицю вщс1кання
xm+1
avo
+ £
j€J
bVj
(-Xj)
(10)
i перев1рити, чи задовольняе для настуиного допустимого розв'язку ново!' ЗЛП вектор x, що складений з координат, що ф1гурують в (9), комбшаториим обмежен-ням (x Е Ekn). Якщо так - перейти до кроку 7. 1накше - покласти d =1, перейти до кроку 5.
Крок 5. За,мшптп ni. Икания (10) наступнпм
xm+1
av0
- d) + £
7 j€J
vj
- d + ^ (-Xj)
(И)
[ avj \
1 I а,«0 I ^ . • А
де д = 1, якщо \ — > < <-}>, шакше д = 0.
) I аV
Перейти до кроку 6.
Крок 6. Перев1рити, чи задовольняе для наступного допустимого розв'язку но-х
обмеженням. Якщо так - перейти до кроку 7. 1накше - збшыпити d Нс1 одинидю. перейти до кроку 5.
a
a
a
a
Крок 7. Провести симплекс-перетворення, де розв'язувальним стовпцем е стов-пець з номером а, а розв'язувальним рядком - додане вущкання.
Крок 8. Викреслити рядок, тцо вщповщае введеному вщсжанню 1з симплекс-таблищ. Перейти до кроку 1.
4. Приклад
6 центральний склад (У^^, пункт перевантаження (У\) та магазини (У2, У3). Транспортна мережа задана графом (Рис. 1). В дужках вказана пропускна спро-можтсть дуги. Для дуг х3^ та х^ пропускна спроможтсть характеризуе кшьюсть товару, яку може продати магазин покупцям. для штттих дуг максимальну кыь-юсть товару, яку можна перевезти. 6 три одинитц транспорту вантажотдйомност1 2, 4 та 6 одиниць.
Знайти максимальну китьюсть товару, яку можна довезти до спожива^пв. Позначимо XI = хз1, х2 = хз2, х3 = Х12, х4 = Х13 - вантажотдйомтсть транспор-
vi [1 ] уз
V2
Рис. 1. Транспортна мережа
ту, призначеного на вщповщт маршрути, х5 = уз1, хб = уз2, х7 = у12, х8 = у13 -кшьюсть вантажу перевезеного по вущовущих маршрутах, х9 = у2^ х1о = у3г - кшь-юсть товару проданого магазинами.
Вщповщно до умов задачь складемо модель:
f (х) = х5 + хб ^ тах
обмеження на пропускну спроможтсть дуг:
х5 < 6;
хб < 3; х7 < 5;
Х8 < 1; Х9 < 5;
Х10 < 6;
обмеження на вантажошдйомшсть транспорту:
Х5 — Х1 < 0;
Хб — Х2 < 0; x7 — Х3 < 0; Х8 — Х4 < 0;
баланс у вузлах:
Х5 — Х7 — Х8 = 0; Хб + Х7 — Х9 = 0; Х8 — Х10 = 0;
Х{ > 0, i = 1, 2,..., 10;
комб1наторн1 обмеження:
(х1,х2,х3,х4) £ E44 (G), де G = {04, 2, 4, 6} . Для обмеженоста допустимо!' областа в ЗЛП доцшьно вести обмеження:
x1}x2,x3,x4 < maxQi,Qi £ G, i
тобто
x1 ,x2,x3,x4 < 6.
Зауваження 5. Умови балансу у вузлах можна ;a,\iiinmi на Hcpiisiiocri. оскшьки це не змшить щльово1 функщ1:
Х5 — Х7 — Х8 < 0;
хб + x7 — x9 < 0; Х8 — Х10 < 0.
Таблица 1. Початкова симплекс-таблиця
1 -xl -х2 -хЗ -х4 -х5 -хб -х7 -х8 -х9 -хЮ
хО 0 -1 -1
xll 6 1
х12 3 1
х13 5 1
х14 1 1
х15 5 1
х16 6 1
х17 0 -1 1
х18 0 -1 1
х19 0 -1 1
х20 0 -1 1
х21 6 1
х22 6 1
х23 6 1
х24 6 1
х25 0 1 -1 -1
х26 0 1 1 -1
х27 0 1 -1
xl 0 -1
х2 0 -1
хЗ 0 -1
х4 0 -1
х5 0 -1
хб 0 -1
х7 0 -1
х8 0 -1
х9 0 -1
хЮ 0 -1
xL 61 1 1 1 1 1 1 1 1 1 1
Побудуемо початкову симплекс-таблицю (Таб. 1, використовуються форма таб. iimi i позначення з [3]):
Застосувавши програмну резипзащю на мов1 Сф прямого методу вщсшання, розв'язок задач1 знайдено за 1174 кроки, використавши при цьому 0,02 секунди (на комп'ютер1 з процесором AMD Athlon х2 4200+ тактового частотою 2200 МГц).
Розв'язком е вектор x* = (6, 4, 2, 0, 2, 3, 2, 0, 0, 5, 0). Значения щльово! функцп f (x*) = 5 Це означае, що для досягнення максимального пот оку на маршрут! xs1 треба впкористатп транспорт вантажошдйомшстю 6 одпнпць i перевезти 2 одинищ товару, на маршрут! xs2 - транспорт вантажошдйомшстю 4 одинищ i перевезти 3 одинищ товару, на маршрут! x12 - транспорт вантажошдйомшстю 2 одинищ i перевезти 2 одинищ товару. До магазину v3 товар те потраиить, а магазин v2 зможе и рола гп 5 одпнпць товару.
Висновки
В робота розглянута задача знаходження максимального потоку в мереж1 з до-датковими комбшаторними обмеженнями та побудована вщповщна модель у вигляд1 лшшно! умовно! задач1 евклщово! комбшаторно! оитим1зацп на розмиценнях.
Розглянутий приклад застосування прямого алгоритму до поставлено!' задач1 по-казуе застосовшсть прямого методу ко,\ioiiiaгорного вщсшання в потоковпх задачах на розмиценнях.
В подалыному доцшьно дослщптп теоретичну ефектившсть алгоритму для розв'язаиня поставлено!' задачь
СПИСОК Л1ТЕРАТУРИ
1. Форд Л. Потоки в с6т.ях / Форд Л., Фалкереон Д. - М.: Мир, 1966. - 277 с.
2. Ху Т.Ч. Комбинаторные алгоритмы / Т. Ч. Ху, М. Т. Шинг - Нижний Новгород: Изд-во Нижегородского госуниверситета им. H.H. Лобачевского, 2004. - 330 с.
3. Ху Т. Целочисленное программирование и потоки в сетях / Т. Ху. — М.: «Мир», 1974. - 519 с.
4. Edmonds J. Theoretical Improvements in Algorithmic Efficiency for Network How Problems / Edmonds J., Karp R. M. //J. ACM. - 1972. - Vol. 19, №2. - P. 248-264.
5. Диниц E.A. Алгоритм решения задачи о максимальном потоке в сети со степенной оценкой / Е.А. Диниц // Докл. АН СССР. - 1970. - Т. 194, №4. - С. 754-757.
6. Карзанов А. А. Нахождение максимального потока в сети методом предпотоков / А. А. Карза-нов // Докл. АН СССР. - 1974. - Т. 215, №1. - С. 49-53.
7. Стоян Ю.Г. Теоргя i методи евклщово!' комбшаторно!' оптим1зацп / Ю.Г. Стоян, О.О. Смець. -К.: 1СДО, 1993. - 188 с.
8. Стоян Ю. Г. Оптим1защя на псшрозмщеннях: теоргя та методи / Ю. Г. Стоян, О. О. Смець, С. М. Смець. - Полтава: РВЦ ПУСКУ, 2005. - 103 с.
9. Емец О. А. Комбинаторная оптимизация на размещениях / О. А. Емец, Т.Н. Барболина. - К.: Наук, думка, 2008. - 159 с.
10. Смець О. О. Прямий метод вщсшання для задач евклщово!' комбшаторно!' оптим1зацп на розмь щ6ннях / О. О. Смець, С. М. Смець, Ю. Ф. Олексшчук //II всеукрашська науково-практична конференщя «1нформатика та системш науки», 17-19 березня 2011 року. - Полтава, 2011. -С. 104-107
Статья поступила в редакцию 28.05.2011