Научная статья на тему 'Нахождение максимального потока сети с дополнительными комбинаторными ограничениями'

Нахождение максимального потока сети с дополнительными комбинаторными ограничениями Текст научной статьи по специальности «Математика»

CC BY
25
6
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по математике, автор научной работы — Емец О.А., Емец Е.М., Олексейчук Ю.Ф.

Статье поставлена и решена задача нахождения максимального потока в сети с дополнительными комбинаторными ограничениями. Построена математическая модель, изложен алгоритм ее решения. Рассмотренная задача является обобщением задачи нахождения максимального потока в сети.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Знаходження максимального потоку в мережi з додатковими комбiнаторними обмеженнями

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.

Текст научной работы на тему «Нахождение максимального потока сети с дополнительными комбинаторными ограничениями»

УДК 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. Транспортна мережа

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

ту, призначеного на вщповщт маршрути, х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

i Надоели баннеры? Вы всегда можете отключить рекламу.