VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta strojního inženýrství

Podobné dokumenty
4. Přednáška: Kvazi-Newtonovské metody:

MULTIKRITERIÁLNÍ ROZHODOVÁNÍ VEKTOROVÁ OPTIMALIZACE

Obsah přednášky. 1. Principy Meta-learningu 2. Bumping 3. Bagging 4. Stacking 5. Boosting 6. Shrnutí

Hodnocení přesnosti výsledků z metody FMECA

Reprezentace problému rozvrhování zakázkové výroby disjunktivním grafem

6 5 = 0, = 0, = 0, = 0, 0032

3. Mocninné a Taylorovy řady

f (k) (x 0 ) (x x 0 ) k, x (x 0 r, x 0 + r). k! f(x) = k=1 Řada se nazývá Taylorovou řadou funkce f v bodě x 0. Přehled některých Taylorových řad.

Datové struktury 2: Rozptylovací tabulky

(iv) D - vybíráme 2 koule a ty mají různou barvu.

Shluková analýza, Hierarchické, Nehierarchické, Optimum, Dodatek. Učení bez učitele

Grafové algoritmy. Programovací techniky

Učební texty k státní bakalářské zkoušce Matematika Základy lineárního programování. študenti MFF 15. augusta 2008

Příklady: - počet členů dané domácnosti - počet zákazníků ve frontě - počet pokusů do padnutí čísla šest - životnost televizoru - věk člověka

Metoda konjugovaných gradientů

Návrh vysokofrekvenčních linkových transformátorů

TGH06 - Hledání nejkratší cesty

TGH06 - Hledání nejkratší cesty

( ) Příklady na otočení. Předpoklady: Př. 1: Je dána kružnice k ( S ;5cm)

Buckinghamův Π-teorém (viz Barenblatt, Scaling, 2003)

MATEMATIKA II V PŘÍKLADECH

Metody lineární optimalizace Simplexová metoda. Distribuční úlohy

Grafové algoritmy. Programovací techniky

4EK213 LINEÁRNÍ MODELY

NEJKRATŠÍ CESTY I. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Algoritmizace prostorových úloh

5 Orientované grafy, Toky v sítích

OPTIMALIZACE PARAMETRŮ PID REGULÁTORU POMOCÍ GA TOOLBOXU

Algoritmus pro hledání nejkratší cesty orientovaným grafem

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

KMA/P506 Pravděpodobnost a statistika KMA/P507 Statistika na PC

Úloha ve stavovém prostoru SP je <s 0, C>, kde s 0 je počáteční stav C je množina požadovaných cílových stavů

7. přednáška Systémová analýza a modelování. Přiřazovací problém

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25

Příklady modelů lineárního programování

= je prostý orientovaný graf., formálně c ( u, v) 0. dva speciální uzly: zdrojový uzel s a cílový uzel t. Dále budeme bez

MĚŘENÍ MOMENTU SETRVAČNOSTI Z DOBY KYVU

13. Lineární programování

1 Úvod do celočíselné lineární optimalizace

Operační výzkum. Síťová analýza. Metoda CPM.

12. Globální metody MI-PAA

Geometrická zobrazení

Parametrické programování

1. července 2010

Metody síťové analýzy

SPOTŘEBITELSKÝ ÚVĚR. Na začátku provedeme inicializaci proměnných jejich vynulováním příkazem "restart". To oceníme při opakovaném použití dokumentu.

Neuronové časové řady (ANN-TS)

3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

G( x) %, ν%, λ. x, x, N, N nezáporné přídatné proměnné, ( ) 2 Matematické programování

Vzdálenost uzlů v neorientovaném grafu

Reprezentace přirozených čísel ve Fibonacciho soustavě František Maňák, FJFI ČVUT, 2005

9 Stupně vrcholů, Věta Havla-Hakimiho

TGH10 - Maximální toky

Optimalizace. Obsah přednášky. DÚ LP - Okružní problém. Lineární optimalizace. DÚ LP - Okružní problém. DÚ LP - Okružní problém

3.2.9 Věta o středovém a obvodovém úhlu

Kombinace s opakováním

Dynamické programování

Globální matice konstrukce

Základním pojmem v kombinatorice je pojem (k-prvková) skupina, nebo také k-tice prvků, kde k je přirozené číslo.

20 - Číslicové a diskrétní řízení

4EK213 Lineární modely. 12. Dopravní problém výchozí řešení

1.5.7 Prvočísla a složená čísla

4EK213 Lineární modely. 10. Celočíselné programování

FIT ČVUT MI-LOM Lineární optimalizace a metody. Dualita. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost

Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT

Třídy složitosti P a NP, NP-úplnost

VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE. Optimalizace trasy při revizích elektrospotřebičů


3.2.9 Věta o středovém a obvodovém úhlu

TOKY V SÍTÍCH II. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Ekonomická formulace. Matematický model

Zpětnovazební učení Michaela Walterová Jednoocí slepým,

ALGORITMY A DATOVÉ STRUKTURY

6 Simplexová metoda: Principy

Úvod do optimalizace, metody hladké optimalizace

4 všechny koeficienty jsou záporné, nedochází k žádné změně. Rovnice tedy záporné reálné kořeny nemá.

F6180 Úvod do nelineární dynamiky. F6150 Pokročilé numerické metody FX003 Plánování a vyhodnocování experimentu. F7780 Nelineární vlny a solitony

Analýza a zpracování signálů. 5. Z-transformace

THE POSSIBILITY OF RELOCATION WAREHOUSES IN CZECH-POLISH BORDER MOŽNOSTI RELOKACE SKLADŮ V ČESKO-POLSKÉM PŘÍHRANIČÍ

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Dynamika populací s oddělenými generacemi

Měření indukčností cívek

3.3.4 Thaletova věta. Předpoklady:

Stromy, haldy, prioritní fronty

Kombinatorická minimalizace

20 - Číslicové a diskrétní řízení

OPTIMALIZAČNÍ ÚLOHY. Modelový příklad problém obchodního cestujícího:

3. Optimalizace pomocí nástroje Řešitel

NP-úplnost problému SAT

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

Kombinace s opakováním

12. Lineární programování

Rozdělování dat do trénovacích a testovacích množin

1 Gaussova kvadratura

Úlohy krajského kola kategorie A

Projekční algoritmus. Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění. Jan Klíma

Simplexové tabulky z minule. (KMI ZF JU) Lineární programování EMM a OA O6 1 / 25

Přednáška 3: Limita a spojitost

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Transkript:

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Faulta strojního inženýrství Ing. Petr Palubjá VÍCEPRODUKTOVÉ TOKY V SÍTÍCH MULTICOMMODITY NETWORK FLOWS Zrácená verze Ph.D. Thesis Obor: Technicá ybernetia Šolitel: doc. RNDr. Ing. Miloš Šeda, Ph.D. Oponenti: prof. Ing. Vladimír Straoš, DrSc. doc. Ing. Radim Farana, CSc. doc. Ing. Čestmír Ondrůše, CSc. Datum obhajoby: 12. 12. 2003

KLÍČOVÁ SLOVA víceprodutové toy, stochasticé heuristiy, toy s minimálními nálady, maximální toy, nejratší cesty KEYWORDS Multicommodity Flows, Stochastic heuristics, Minimum Cost Flows, Maximum Flows, Shortest Paths MÍSTO ULOŽENÍ PRÁCE Oddělení pro vědu a výzum Faulty strojního inženýrství Vysoého učení technicého v Brně Petr Palubjá, 2004 ISBN 80-214- 2551-2 ISSN 1213-4198

Obsah 1 Úvod...... 5 1.1 Cíle disertační práce... 6 2 Nejratší cesty... 6 2.1 Matematicý model... 7 2.2 Výsledy empiricých testů a vyhodnocení.. 8 3 Maximální toy..... 8 3.1 Matematicý model... 9 3.2 Výsledy empiricých testů a vyhodnocení.. 9 4 Toy s minimálními nálady.. 11 4.1 Matematicý model. 11 4.2 Podmíny optimality 11 4.3 Pseudopolynomiální a polynomiální algoritmy... 12 4.4 Výsledy empiricých testů a vyhodnocení 13 5 Víceprodutové toy.. 14 5.1 Matematicé modely víceprodutových toů. 14 5.2 Metody řešení.. 15 5.3 Heuristicé metody.. 17 5.4 Testy heuristicých algoritmů. 19 6 Závěr. 20 Literatura.. 22 Publiace autora.. 25 Summary... 26 Curriculum vitae.. 27 3

1 Úvod 1 Úvod A journey of a thousand miles starts with a single step and if that step is the right step, it becomes the last step Lao Tzu Kamoliv se v dnešním světě podíváme, najdeme nějaé sítě. Eletricé a energeticé sítě nám přináší světlo, teplo a zábavu do našich domovů. Telefonní sítě nám umožňují vzájemně omuniovat, dálniční, železniční a letecá síť nám dovolují přeonávat velé zeměpisné vzdálenosti, abychom se dostali do práce, abychom mohli navštívit své blízé či abychom mohli navštívit nová místa a zísat nové zušenosti. Výrobní a distribuční sítě nám posytují prostředy životu potraviny a spotřební výroby. A počítačové sítě doonce změnily způsob, jaým sdílíme informace nebo realizujeme obchody. Ve všech těchto oblastech a v mnoha dalších chceme zpravidla přemístit nějaé entity (eletřinu, spotřební výroby, osoby, vozidla nebo zprávy) z jednoho místa na jiné místo v dané síti a udělat to co možná nejefetivněji. Naším cílem je posytovat nejen dobré služby uživatelům sítě, ale i použít záladní (zpravidla náladné) přenosové zařízení efetivně. Tento typ úloh je dobře popsán matematicým modelem známým jao úloha víceprodutových toů v sítích. Víceprodutové toy (VT) představují velmi omplexní typ úlohy (NP-těžý problém [Khul94]), terým jsme schopni řešit řadu problémů z praxe. Ja vidíme z obrázu 1.1, VT jsou nejobecnější formou něolia jednodušších typů úloh. Poud budeme pracovat pouze s jedním produtem (tzv. jednoprodutové úlohy), úloha se velmi zjednoduší a pro řešení tohoto typu úloh již existují speciální pseudopolynomiální a polynomiální algoritmy. Vidíme, že na úlohu tou s minimálními nálady opět můžeme pohlížet jao na obecnější případ dvou jiných úloh nejratší cesty a maximálního tou. Ja pomocí VT, ta i pomocí jejich jednodušších modelů jsme schopni řešit mnoho praticých úloh. Přehled něterých apliací najdete v tabulce na obrázu 1.2. Poznamenejme ještě, že jednoprodutové úlohy můžeme řešit i pomocí (univerzálního) síťového simplexového algoritmu ([Ahuj93], [Hoch98]). Produt n Produt 3 Produt 2 Produt 1 Úloha maximálního tou Úloha nejratší cesty Úloha tou s minimálními nálady Úloha víceprodutových toů Obráze 1.1 Model víceprodutových toů. Tato práce se zaměřuje nejen na úlohu VT, ale i na její tři speciální případy. I dyž s pomocí existujících algoritmů pro VT ([Dant61, Geof74, Kenn80, Arro86]) bychom byli schopni řešit i jednoprodutové úlohy, nebylo by to příliš smysluplné. Existující přesné VT algoritmy jsou pouze exponenciální a pro řešení jednoprodutových úloh již existuje řada efetivnějších polynomiálních algoritmů. Výpočetní náročnost exponenciálních algoritmů je enormní a umožňuje nám nalézt optimum pouze u úloh malého rozsahu. Jejich použitelnost pro praxi je ta velmi omezená. Z tohoto důvodu tady existuje snaha vývojářů o vytváření různých heuristicých algoritmů, teré nám sice nezaručí nalezení optima, ale na druhou stranu nám umožní v rozumném čase řešit mnohem rozsáhlejší problémy. Většina heuristi je určena pro řešení onrétního problému (tzv. problémově specificé heuristiy) a nelze zpravidla zobecnit (např. [Agga95]). 5

2 Nejratší cesty Heuristicé algoritmy navržené v této práci byly inspirovány stochasticými heuristicými metodami ([Mich96], [Reev93]) a jejich použití je univerzální. Pojmenování úlohy (autor) rozvržení ontrolních stanovišť ve výrobní lince ([White69]) aproximace po částech lineární funce ([Imai86]) úloha o batohu ([Ful66]) model městsé dopravy ([Zawa87]) návrh přepojovaných počítačových sítí ([Jane96]) rozvrhování výroby na více shodných strojích ([Fede86]) maticové zaorouhlování ([Bach66]) distribuovaný výpočet na dvouprocesorovém počítači ([Ston77]) distribuční úloha ([Glov77]) reonstruce levé srdeční omory z rentgenu ([Slum82]) optimální vytížení letadla na trase s mezipřistáními ([Gupt85]) evauační plán budovy ([Chal82]) sladování sezónní produce ([Jewe57]) návrh VLSI čipů ([Kort88]) úloha obměny výrobního zařízení ([Agga95]) Druh algoritmu nejratší cesty nejratší cesty nejratší cesty nejratší cesty maximální toy maximální toy maximální toy maximální toy toy s minimálními nálady toy s minimálními nálady toy s minimálními nálady toy s minimálními nálady víceprodutové toy víceprodutové toy víceprodutové toy 1.1 Cíle disertační práce Obráze 1.2 Přílady praticého využití VT. Cílem disertační práce bylo podrobné studium VT a navržení stochasticého heuristicého algoritmu pro jejich řešení. V rámci studia VT jsme se zaměřili i na jejich speciální jednoprodutové verze, protože navržený heuristicý algoritmus rozládá omplexnější úlohu VT na posloupnost jednoprodutových úloh. Jedním z hlavních ritérií při návrhu heuristicého algoritmu byla jeho výpočetní rychlost. Ta byla značně ovlivněna především rychlostí použitých (přesných) algoritmů pro řešení jednoprodutových úloh. Proto byl podrobně zoumán i aždý typ jednoprodutové úlohy. Toto zoumání zahrnovalo vždy: definici matematicého modelu dané jednoprodutové úlohy zoumání oblastí použití dané jednoprodutové úlohy popis a programovou implementaci vybraných algoritmů porovnání algoritmů a určení nejvhodnějšího algoritmu pro použití v heuristicém VT algoritmu Poté, co jsme nalezli vhodné jednoprodutové algoritmy, jsme se mohli zaměřit na analýzu a řešení samotné víceprodutové úlohy, teré zahrnovalo: definici matematicých modelů zoumání oblastí použití VT možnosti řešení VT pomocí exatních a aproximativních algoritmů návrh něolia stochasticých heuristicých algoritmů pro řešení VT implementaci vybraných stochasticých heuristicých algoritmů porovnání implementovaných heuristicých algoritmů 2 Nejratší cesty Úloha nejratší cesty je jednou ze záladních úloh toů v sítích. Je stavebním amenem mnoha dalších algoritmů (viz obráze 1.1). Velmi často se objevuje v praxi při mnoha činnostech bychom chtěli poslat nějaý materiál mezi dvěma určenými body v síti co možná nejrychleji, co možná nejlevněji, co možná nejspolehlivěji. Ačoliv úloha nejratší cesty je relativně snadno řešitelná (záladními algoritmy), návrh a analýza nejefetivnějších algoritmů již vyžaduje značné znalosti a přehled v problematice. 6

2 Nejratší cesty Úloha nejratší cesty se často objevuje v teleomuniacích či v dopravě, dyoliv chceme poslat zprávu či automobil mezi dvěma geograficými místy co možná nejrychleji či co nejlevněji. Významným příladem využití je plánování městsé dopravy ([Zawa87]). Ve většině algoritmů pro hledání modelu městsé dopravy se řeší jao podproblém v hlavním algoritmu velé množství úloh nejratší cesty (pro aždou dvojici počátečních a oncových uzlů v síti zvlášť). Jmenujme ještě něoli dalších příladů známých z literatury: aproximace po částech lineární funce ([Imai86]), řešení tzv. úlohy o batohu ([Ful66]), plánování počtu telefonních operátorů ([Bart80]), optimální rozložení ontrolních stanovišť v rámci výrobní liny ([Whit69]) atd. 2.1 Matematicý model Uvažujme orientovanou síť G = (N, A), de N je množina uzlů (n = N ) a A je množina hran (m = A ), s délou (nálady) c ij, teré jsou asociovány s aždou hranou (i, j) A. Síť obsahuje jeden význačný uzel s, terý budeme označovat jao uzel zdrojový (source). Nechť A(i) reprezentuje sousední hrany uzlu i a nechť C = max {c ij : (i, j) A}. Budeme definovat délu orientované cesty jao součet déle jednotlivých hran na cestě. Úloha nejratší cesty stanoví pro aždý nezdrojový uzel i N orientovanou cestu s nejratší délou z uzlu s do uzlu i. Alternativně bychom mohli úlohu vidět jao poslání jedné jednoty tou (nejlevněji, ja je to jen možné) z uzlu s do aždého z uzlů N {s} v apacitně neomezené síti. Z tohoto hledisa můžeme formulovat úlohu nejratší cesty jao úlohu lineárního programování následujícím způsobem: za podmíne Minimalizuj c ij x ij (2.1a) ( i, j) A n 1 pro i = s x x = (2.1b) ij ji ( j:( i, j) A) ( j:( j, i) A) 1 pro všechna i N { s} x ij 0 pro všechny (i, j) A (2.1c) Aby byla úloha nejratší cesty řešitelná pomocí dále uvedených algoritmů, musí síť definující problém splňovat něoli předpoladů: Všechny dély hran jsou celočíselné. Síť obsahuje orientovanou cestu z uzlu s do všech zbylých uzlů v síti. Síť neobsahuje záporný cylus (úloha nejratší cesty v síti se záporným cylem je NP-úplný problém). Síť je orientovaná. Ovšem, ja se můžeme přesvědčit např. v [Ahuj93], tato omezení nás při řešení problémů ve sutečnosti nija neomezují. Pomocí různých transformací sítí (viz [Palu03c]) jsme vždy schopni splnit požadavy modelu. Algoritmy řešící úlohu nejratší cesty můžeme rozdělit do něolia ategorií. Na algoritmy, teré: Naleznou nejratší cestu z jednoho uzlu do všech ostatních uzlů, přičemž dély hran jsou nezáporné (např. Dijstrův algoritmus [Dij59]). Naleznou nejratší cestu z jednoho uzlu do všech ostatních uzlů sítě, jejíž dély hran jsou libovolné (tedy i záporné např. Bellmanův algoritmus [Bell58]). Naleznou nejratší cestu z aždého uzlu do všech ostatních uzlů (např. Floydův algoritmus [Ahuj93]). Nás budou zajímat pouze algoritmy z první supiny, protože by nám doonce stačilo nalezení nejratší cesty mezi určenou dvojicí uzlů. Taový algoritmus ale neexistuje. Můžeme vša stávající algoritmus upravit ta, že po nalezení cesty do cílového uzlu uončí svůj běh. 7

3 Maximální toy V literatuře [Ahuj93], [Coo98], [Core91] se algoritmy první supiny označují též jao značy nastavující (label setting). Záladním algoritmem tohoto typu je Dijstrův algoritmus. Dijstra byl jedním z lidí, teří nezávisle na sobě tento algoritmus publiovali [Dij59]. Původní Dijstrův algoritmus pracuje v čase O(n 2 ). Časové omezení O(n 2 ) pro Dijstrův algoritmus je nejlepší možné v případě úplných hustých sítí (tj. m = Ω(n 2 )), ale může být lepší pro řídé sítě, teré se v praxi vysytují mnohem častěji. Úzým místem Dijstrova algoritmu je volba uzlu s minimální distanční značou. Byly proto vyvinuty sofistiované datové strutury a postupy ([Dial69], [John77], [Fred84]), teré nám umožňují efetivnější volbu uzlu. Podařilo se nám ta buď dramaticy snížit dobu běhu algoritmu, nebo zlepšit časovou složitost ([Dvor02]). My se zaměříme onrétně na Dialův algoritmus [Dial69], terý by podle [Ahuj93] měl dosahovat výborných výsledů v praxi a na haldové modifiace původního Dijstrova algoritmu jmenovitě s binární haldou ([John77]), d-haldou ([John77]) a Fibonacciho haldou ([Fred84]). 2.2 Výsledy empiricých testů a vyhodnocení Mezi výše jmenovanými algoritmy jsme hledali nejvýonnější implementaci v Delphi ([Teix02]). Rozhodnutí bylo provedeno na záladě empiricé analýzy. V tabulce na obrázu 2.1 najdete srovnání algoritmů z hledisa časové složitosti. Nejlepší omezení počtu operací pro nejhorší případ sítě má Dijstrův algoritmus s Fibonacciho haldou. Časová složitost vša může být ovlivněna nějaou patologicou instancí problému a sutečný výon algoritmu pro většinu instancí může být mnohem lepší. Výsledy empiricé analýzy jsou shrnuty v tabulce na obrázu 2.2. Kompletní testy a popis algoritmů a datových strutur najdete v [Palu03c], zde nám postačí dosažené pořadí jednotlivých algoritmů na testovaných sítích. Sítě byly vygenerovány pomocí programu GVS (příloha [Palu03c]). Vidíme, že přesvědčivě nejlepších výsledů dosahoval právě Dialův algoritmus, jehož časová složitost je pouze pseudopolynomiální. Název algoritmu Publiován Časová složitost Dijstr 1959 O(n 2 ) Dial 1969 O(m + nc) Dijstr s binární haldou 1977 O(m log n) Dijstr s d-haldou 1977 O(m log d n ), d = m/n Disjstr s Fibonacciho haldou 1984 O(m + n log n) Obráze 2.1 Algoritmy nejratší cesty. Označení sítě Relace uzlů a Binární Fibonacciho Dijstr Dial d-halda hran halda halda Mesh m ~ 3n 5 1 3 2 4 DEL m ~ 6n 5 1 3 2 4 RandomMesh m ~ 20n 5 1 3 2 4 Obráze 2.2 Přehled dosažených umístění algoritmů nejratší cesty v jednotlivých testech. Bohužel rychlost Dialova algoritmu je velmi závislá od hodnoty C. Proto byla provedena i další série testů (viz [Palu03c]) tentorát jen na jednom typu sítě o stejném rozsahu, ale s rostoucí hodnotou C. Porovnávány byly již jen dva nejlepší algoritmy z minulého testu Dial a Dijstr s d-haldou. Měřením bylo zjištěno, že přibližně do hodnoty C = 25000 je Dialův algoritmus stále nejrychlejší. Pro vyšší hodnoty C ale rychle ztrácí a stává se brzo nejpomalejším algoritmem v testu. Proto pro použití v praxi nebo v rámci jiných omplexnějších algoritmů je mnohem vhodnější použít variantu Dijstrova algoritmu s d-haldou, jehož výonnost není ovlivněna hodnotou C. 3 Maximální toy Úloha maximálního tou (tj. přepravy maximálního množství hmoty při omezené propustnosti přepravních line) je speciálním případem obecnější úlohy tou s minimálními nálady. Záladní teorie a algoritmy maximálních toů jsou dobře popsané v literatuře ([Ples83], [Ahuj93], [Goem94]). Pro řešení úlohy maximálního tou existují výonné polynomiální algoritmy (Goldbergův [Gold85]). Vybrané 8

3 Maximální toy algoritmy byly opět implementovány v Delphi ([Teix02]) a empiricou analýzou jsme hledali nejvýonnější implementaci, terou pa použijeme v omplexnějších algoritmech. Algoritmy pro řešení maximálního tou můžeme využít i pro řešení úloh minimálního řezu ([Ples83], [Ahuj93], [Goem94]). Mezi oběma úlohami totiž existuje zajímavý vztah, terý je pojí dohromady. Oba typy úloh jsou použitelné pro řešení řady praticých problémů. Přímo s úlohou maximálního tou se můžeme setat při rozvrhování výroby pro více strojů stejného typu ([Fede86]), při distribuovaných výpočtech na dvouprocesorovém počítači ([Ston77]), při zaorouhlování racionálních prvů matic a součtů sloupců a řad ([Bach66]), při návrhu počítačových přepojovaných sítí ([Jane96]) atd. 3.1 Matematicý model Nechť G = (N, A) je síť s nezápornou apacitou u ij asociovanou s aždou hranou (i, j) A. Nechť U = max {u ij : (i, j) A}. Podobně jao jsme uvedli dříve, seznam sousedních hran A(i) = {(i, ): (i, ) A} obsahuje všechny hrany vycházející z uzlu i. Abychom mohli definovat úlohu maximálního tou, rozlišujeme v síti G dva speciální uzly: zdrojový (source) uzel s a spotřební (destination) uzel t. Ja už napovídá název úlohy, snažíme se najít maximální to ze zdroje do spotřebiče, terý splňuje apacitní omezení hran a rovnováhu tou u všech uzlů (co do uzlu přiteče, musí z uzlu i odtéct). Úlohu můžeme obecně formulovat následovně: Maximalizuj v (3.1a) za podmíne: { j:( i, j) v pro i = s, xij x ji = 0 pro všechny i N { s, t}, (3.1b) A} { j:( j, i) A} v pro i = t. 0 x ij u ij pro aždou (i, j) A. (3.1c) Vetor x = {x ij } splňující (3.1b) a (3.1c) budeme označovat jao to (přesněji jao s t to) a odpovídající hodnotu salární proměnné v (value) jao veliost tou. Aby byla úloha maximálního tou řešitelná pomocí prezentovaných algoritmů, musí síť splňovat něoli předpoladů: Síť je orientovaná. Všechny apacity jsou nezáporné a celočíselné. Síť neobsahuje orientovanou cestu z uzlu s do uzlu t složenou pouze z hran s neonečnou apacitou. Kdyoliv hrana (i, j) náleží do A, ta i hrana (j, i) náleží do A. Síť neobsahuje paralelní hrany (tzn. dvě nebo více hran se shodným počátečním a oncovým uzlem). Podobně jao u úlohy nejratší cesty neznamenají ani tentorát tato omezení žádnou ztrátu na obecnosti modelu. Pomocí vhodných úprav a transformací ([Palu03c]) můžeme tato omezení odstranit. Spojení mezi úlohou maximálního tou a úlohou minimálního řezu vyjadřuje následující věta zformulovaná a doázána Fordem ([Ford56]). Věta 3.1 Veliost maximálního s t tou se rovná apacitě minimálního s t řezu. 3.2 Výsledy empiricých testů a vyhodnocení Algoritmy řešící úlohu maximálního tou můžeme rozdělit do dvou záladních supin. První supinu tvoří algoritmy založené na myšlence zlepšující cesty. Patří sem většina zde testovaných algoritmů 9

3 Maximální toy (Ford-Fulerson ([Ford56]), Edmonds-Karp ([Ples83]), Dinic ([Dini99])). Druhá supina algoritmů, známa jao předto šířící algoritmy, je zastoupena Algoritmem tří Indů ([Palu01a]) a Goldbergovým algoritmem ([Gold85], [Palu01b]). Algoritmy patřící do druhé supiny jsou mnohem obecnější, výonnější a flexibilnější než algoritmy zlepšujících cest. Nejlepší předto šířící algoritmy přeonávají nejlepší algoritmy zlepšujících cest ja teoreticy, ta praticy. Již z časové složitosti jednotlivých algoritmů (obráze 3.1) vidíme, že omezení počtu iterací je příznivější pro předto šířící algoritmy. Tato sutečnost se potvrdila i při empiricých testech (obráze 3.2). Původní verze Goldbergova algoritmu byla autorem upravena ([Palu01b]) do výonnější podoby. Při programové realizaci původního Goldbergova algoritmu se uázalo, že přeznačovávat postupně jednotlivé uzly není příliš efetivní, že je mnohem lepší po nějaém vhodně zvoleném počtu iterací provést hromadné přeznačování všech uzlů. Následně provedenými testy byla tato sutečnost potvrzena. Touto úpravou se významně zlepšilo empiricého chování algoritmu, přičemž ale časová složitost algoritmu zůstala stále O(n 3 ). Jao nejvhodnější se naonec uázalo provádět hromadné přeznačování po provedení (0.5 0.7)n iterací, de n je počet uzlů. Modifiovaná verze Goldbergova algoritmu dosáhla nejlepších výsledů v testech a byla proto zvolena pro použití v omplexnějších algoritmech. Kompletní testy a popis algoritmů najdete v [Palu00] a [Palu03c]. Název algoritmu Publiováno Časová složitost Ford-Fulerson (F-F) 1956 qo(m), q (0, ) Edmonds-Karp (nejratší cesta) (E-K) 1972 O(nm 2 ) Edmonds-Karp (cesta s maximální apacitou) (E-K2) 1973 O(n 2 m ln v) Dinic (D) 1972 O(n 2 m) Algorimus tří Indů (A3I) 1978 O(n 3 ) Goldbergův algoritmus (G) 1985 O(n 3 ) Modifiovaný Goldbergův algoritmus (MG) 2000 O(n 3 ) Obráze 3.1 Algoritmy maximálních toů. Všechny současné nejlepší algoritmy pracují na podobném principu jao Goldbergův algoritmus, ale modifiují jeho slabé místo, což je práce s frontou FIFO při výběru ativního uzlu. Jedna z dalších modifiací Goldbergova algoritmu nejdříve prozoumává ativní uzly s největší hodnotou distanční značy (highest-label preflow algorithm [Gold93]), v jiné modifiaci se naopa upřednostňují ativní uzly s dostatečně velým přebytem a v rámci této supiny uzlů se volí uzel s nejmenší hodnotou distanční značy (excess scaling algorithm [Ahuj89]) a v poslední existující modifiaci se pro uládání ativních uzlů využívá speciální datové strutury dynamicých stromů ([Slea83]). Tyto nové algoritmy zpravidla přináší zlepšení ve formě lepší časové složitosti, ale jejich praticý přínos ve formě sutečného zvýšení rychlosti výpočtu je sporný. Označení Relace uzlů Název algoritmu sítě a hran F-F E-K E-K2 D A3I G MG Cheryian m ~ n 6 2 7 3 4 5 1 Gold m ~ n 6 5 7 4 2 1 3 Řídý m ~ 2n 7 2 4 5 6 3 1 Síť m ~ 3n 6 7 5 3 2 4 1 Random m ~ 3n 5 7 4 2 3 6 1 Čtverec m ~ 6n 6 7 5 4 3 2 1 DoubleExp m ~ 8n 7 6 5 4 3 2 1 Bipart m ~ n 2 /4 5 7 6 3 4 1-2 1-2 Hustý m ~ n 2 /2 7 6 5 1 3 4 2 Obráze 3.2 Přehled dosažených umístění jednotlivých algoritmů maximálních toů. V rámci této práce realizovaná implementace modifiovaného Goldbergova algoritmu patří nejrychlejším ve své třídě a umožňuje řešit rozsáhlé úlohy (tisíce uzlů a hran) v rátém čase (v řádu seund). V [Ahuj97] se tatéž věnovali podrobnému testování doposud vyvinutých algoritmů pro úlohu maximálního tou a relaci mezi sutečným výonem v praxi a časovou složitostí. Nejlepších výsledů dosáhla highest label 10

4 Toy s minimálními nálady verze Goldbergova algoritmu ([Gold93]) těsně následována FIFO verzí, terá byla použita i v této práci. Ostatní algoritmy následovaly už s větším odstupem. 4 Toy s minimálními nálady Jedná se o variantu úlohy víceprodutových toů pouze s jedním produtem. Je to záladní úloha toů v sítích ([Ples83, Ahuj93]). Sama je opět obecnějším případem již popsaných úloh (maximální to a nejratší cesta). Problém, terý tato úloha řeší, je následující: Chceme najít nejlevnější přenos produtu srz síť ta, abychom naplnili poptávu po produtu u něterých uzlů při využití nabídy produtu u jiných uzlů. Tento model má řadu použití v praxi. Úloha tou s minimálními nálady se objevuje téměř ve všech oblastech průmyslu. Rozhodně úlohy toů s minimálními nálady proniají do praxe. S problémy řešitelnými pomocí algoritmů hledajících to s minimálními nálady se setáme při projetování distribučních systémů, v léařsé diagnostice, při přepravě zboží, při výrobě zboží, při apacitním plánování, řízení lidsých zdrojů atd. Konrétně jmenujme napřílad reonstruci levé srdeční omory z rentgenových snímů ([Slum82]), návrh evauačního plánu budovy ([Chal82]), optimální vytížení letadla na trase s mezipřistáními ([Gupt85]) a nejčastěji se vysytující distribuční úlohu ([Glov77]). 4.1 Matematicý model Nechť G = (N, A) je orientovaná síť s nálady c ij a apacitami u ij asociovanými s aždou hranou (i, j) A. Dále s aždým uzlem i asociujeme číslo b(i), teré určuje jeho zásobu (supply) nebo požadave (demand) po produtu podle toho, zda b(i) > 0 nebo b(i) < 0. Úlohu tou s minimálními nálady můžeme stanovit následovně: za podmíne Minimalizuj xij x ji = { j:( i, j) A} { j:( j, i) A} z(x) = c ij x ij ( i, j) A b( i) pro všechny i N, (4.1a) (4.1b) 0 x ij u ij pro všechny (i, j) A (4.1c) Nechť C je označení pro největší nálady na teréoliv hraně. Dále nechť U je označení pro největší hodnotu zásoby/požadavu nebo apacity hrany (mimo ). Předpoládáme, že dolní hranice l ij pro to hranou jsou nulové. Dále zavedeme ještě něoli předpoladů: Všechna data (nálady, zásoba/požadave, apacita) jsou celočíselná. Síť je orientovaná. Když zásoby/požadavy u uzlů splňují podmínu i N b ( i) = 0, pa úloha tou s minimálními nálady má přípustné řešení. Předpoládáme, že aždá síť G obsahuje orientovanou cestu s neomezenou apacitou (tj. aždá hrana na cestě má neonečnou apacitu) mezi aždou dvojicí uzlů. Všechny nálady na hranách jsou nezáporné. Podobně jao u předchozích úloh neznamenají uvedené předpolady žádné omezení na obecnosti modelu. Lze je obejít vhodnými transformacemi sítě([palu03c]). 4.2 Podmíny optimality Definování podmíne, za terých je řešení úlohy tou s minimálními nálady optimální, je pro nás užitečné z něolia důvodů. Posytuje nám ontrolu, zda zísané řešení je sutečně optimální. Často jsme schopni na záladě podmíne optimality navrhnout algoritmus pro řešení dané úlohy. Uažme si nyní něoli různých (ale evivalentních) podmíne optimality pro úlohu tou s minimálními nálady. Důazy následujících vět najdete např. v [Ahuj93]. 11

4 Toy s minimálními nálady Věta 4.1 (Podmíny optimality záporného cylu) Přípustné řešení x * je optimálním řešením úlohy tou s minimálními nálady tehdy a pouze tehdy, dyž splňuje podmíny optimality záporného cylu, tzn. že residuální síť G(x * ) neobsahuje (orientovaný) cylus se zápornou cenou. Věta 4.2 (Podmíny optimality reduovaných náladů) Přípustné řešení x * je optimálním řešením úlohy tou s minimálními nálady tehdy a pouze tehdy, dyž nějaá množina potenciálů uzlů π splňuje následující podmíny optimality reduovaných náladů: π c ij 0 pro aždou hranu (i, j) v G(x * ). (4.2) Věta 4.3 (Komplementární podmíny optimality) Přípustné řešení x * je optimální řešení úlohy tou s minimálními nálady tehdy, dyž pro nějaou množinu potenciálů uzlů, reduovaných náladů a hodnot tou splňuje následující omplementární podmíny optimality pro aždou hranu (i, j) A: Je-li π c ij >0, potom Je-li 0 < x * ij < u ij, potom Je-li π c ij <0, potom * x ij = 0. π c ij = 0. * x ij = u ij. (4.3a) (4.3b) (4.3c) Na podmínách optimality záporného cylu je založen algoritmus stornovaných cylů ([Klei67]), na omplementárních podmínách optimality je založen cenově-zjemňující algoritmus [Röc80], ostatní algoritmy jsou založeny na podmínách optimality reduovaných náladů (algoritmus postupných nejratších cest [Busa61], primárně-duální algoritmus [Ford62], apacitně-zjemňující [Orli93], relaxační algoritmus [Bert88]). 4.3 Pseudopolynomiální a polynomiální algoritmy Úloha tou s minimálními nálady je již natoli složitá, že pro její řešení uvažujeme již i pseudopolynomiální algoritmy, jejichž doba řešení může s veliostí úlohy růst exponenciálně, ale na druhou stranu jejich strutura bývá velmi jednoduchá ([Palu03a]). Podle [Ahuj93] by měl nejlepším algoritmům patřit právě pseudopolynomiální relaxační algoritmus založený na myšlence Lagrangeovy relaxace ([Fish81]). V duchu teorie o výpočetní složitosti není použití pseudopolynomiálního algoritmu úplně uspoojivé. Nemáme dobré teoreticé záruy, že algoritmus bude řešit dostatečně rychle všechny typy problémů, se terými bychom se mohli setat. V této situaci se nabízí otáza, zda můžeme vymyslet algoritmy, teré jsou polynomiální v běžných parametrech problému, tj. v počtu uzlů n, počtu hran m, logu a logc. Ja zísáme polynomiální algoritmus? K zísání algoritmu pracujícího v polynomiálním čase použijeme myšlenu známou jao zjemňování (scaling, [Edmo72]), onrétně použijeme zjemňování dat s apacitou a zjemňování dat s cenou. Vytvoříme ta dva algoritmy pracující v polynomiálním čase: (1) apacitně zjemňující algoritmus, terý je zjemňující verzí algoritmu postupných nejratších cest a (2) cenově zjemňující algoritmus, terý je zobecněnou verzí Goldbergova algoritmu pro hledání maximálního tou v síti. Zjemňování je významná idea, pomocí teré byla vylepšena řada algoritmů v ombinatoricé optimalizaci včetně algoritmů řešících úlohu tou s minimálními nálady ([Röc80], [Gabo85], [Ahuj93], [Palu03b]). Na zjemňovací algoritmy se můžeme dívat následujícím způsobem. Začneme s podmínami optimality pro úlohu sítových toů, terou zoumáme, ale místo přesného vyjádření těchto podmíne, generujeme aproximativní řešení, teré může porušit jednu (nebo více) podmíne o maximální množství. Na začátu tím, že zvolíme dostatečně velé, napřílad C nebo U, snadno můžeme najít počáteční řešení, teré splňuje uvolněné podmíny optimality. Potom změníme parametr na /2 a provedeme reoptimalizaci, aby aproximativní řešení nyní porušovalo podmíny optimality nanejvýše o /2. Opaujeme tento postup opět reoptimalizujeme, doud aproximativní řešení neporušuje podmíny optimality o maximálně /4 atd. Tato strategie řešení je docela flexibilní a vede různým algoritmům v závislosti na tom, teré podmíny optimality jsme uvolnili a ja jsme provedli reoptimalizaci. 12

Z pseudopolynomiálních algoritmů byly zoumány a implementovány následující: algoritmus stornovaných cylů ASC ([Klei67]) algoritmus postupných nejratších cest APNC ([Busa61]) primárně-duální algoritmus P-DA ([Ford62]) relaxační algoritmus RA ([Bert88]) Z polynomiálních algoritmů jsme se zaměřili na: apacitně zjemňující algoritmus KZA (polynomiální verze APNC [Orli88]) cenově zjemňující algoritmus CZA (zobecnění Goldbergova algoritmu [Röc80]) 4.4 Výsledy empiricých testů a vyhodnocení 4 Toy s minimálními nálady Oproti dřívějším testům jsou již algoritmy hledající to s minimálními nálady omplexnější a jejich součástí mohou být i jiné jednodušší algoritmy, jao je algoritmus pro nalezení nejratší cesty nebo algoritmus pro nalezení maximálního tou. Těmito algoritmy jsme se zabývali v předchozích apitolách. Jejich volbou můžeme značně ovlivnit výslednou výonnost hlavního algoritmu. Protože se můžeme opřít o výsledy testů supiny algoritmů pro maximální to (apitola 3.2) i pro nejratší cestu (apitola 2.2), byl pro nalezení maximálního tou použit modifiovaný Goldbergův algoritmus (O(n 3 )) a pro nalezení nejratší cesty Dijstrův algoritmu pracující s d-haldou (O(mlog d n), de d = m/n). Název algoritmu Publiováno Časová složitost Algoritmus stornovaných cylů (ASC) 1967 O(nm 2 CU) Algoritmus postupných nejratších cest (APNC) 1961 O(nmUlog d n), d = m/n Primárně-duální algoritmus (P-DA) 1962 O(n 4 min{c, U}) Relaxační algoritmus (RA) 1988 O(m 2 ncu 2 ) Kapacitně zjemňující algoritmus (KZA) 1988 O(m 2 log d n logu), d = m/n Cenově zjemňující algoritmus (CZA) 1980 O(n 2 mlog(nc)) Obráze 4.1 Přehled testovaných algoritmů. Z hledisa využití jiných algoritmů můžeme algoritmy řešící úlohu tou s minimálními nálady rozdělit do tří supin. První supinu tvoří algoritmy, teré nepotřebují žádný jiný algoritmus e své činnosti (RA, CZA), do druhé supiny řadíme algoritmy obsahující řešení úlohy nejratší cesty (APNC, KZA) a do třetí supinu patří algoritmy požadující ja nalezení nejratší cesty, ta i maximálního tou (ASC, P-DA). Přibližný odhad chování algoritmu můžeme zísat z jeho časové složitosti. Přehled časových složitostí testovaných algoritmů najdete v tabulce na obrázu 4.1. Bude zajímavé onfrontovat tyty údaje s reálnými výsledy v testech. Jao vodíto nám může posloužit tabula na obrázu 4.2, terá shrnuje dosažené pořadí jednotlivých algoritmů v testech. Kompletní výsledy testů naleznete v [Palu03c]. Cílem testů bylo najít vhodného andidáta pro řešení víceprodutového tou s minimálními nálady. Z naměřených dat je zřejmé, že při řešení VT s minimálními nálady použijeme APNC. Označení sítě Relace Název algoritmu uzlů a hran ASC APNC P-DA RA KZA CZA Cheryian m ~ n 1-2 1-2 3 5 4 6 Mesh m ~ 3n 6 1 3 4 2 5 SquareMesh m ~ 6n 6 1 2 4 3 5 DoubleExpLine m ~ 10n 6 1 3 5 2 4 RandomMesh m ~ 20n 6 1 2 4 3 5 Dense m ~ n 2 /2 6 2 3 4 1 5 Obráze 4.2 Přehled dosažených umístění algoritmů řešících úlohu toů s minimálními nálady. 13

5 Víceprodutové toy 5 Víceprodutové toy Úloha víceprodutových toů je speciální třídou lineárního programování a může být použita jao model pro řešení mnoha praticých problémů, z nichž něteré vyžadují, aby to byl celočíselný. Ja jsme viděli v předchozích apitolách, pro řešení jednoprodutových toových úloh byly vyvinuty velmi efetivní algoritmy. Navíc je u nich i garantována celočíselnost optimálního tou, poud jsou celočíselné i zásoby/požadavy u uzlů a apacity u hran. Avša v důsledu složitější strutury omezení u víceprodutové úlohy nemůžeme použít lasicé metody lineárního programování pro nalezení celočíselného optima. Pro obrovsou výpočetní náročnost se nehodí ani použití existujících celočíselných programovacích techni. Jao schůdné řešení se jeví v současné době použití heuristicých metod. V této práci se zaměříme hlavně na stochasticé heuristicé metody ([Mich96], [Reev93]), mezi teré řadíme mimo jiné geneticé algoritmy, simulované žíhání a tabu search (zaázané prohledávání). V předchozích apitolách jsme vždy řešili úlohy s jediným produtem, terý jsme chtěli poslat ze zdroje do spotřebiče nějaým optimálním způsobem, např. podél nejratší cesty nebo s minimálními nálady. V praxi se ale většinou vysytuje něoli fyzicých produtů, dopravních prostředů nebo zpráv, aždý z nich má své vlastní omezení pro to v síti a společně sdílejí pouze síť. Napřílad v teleomuniačních apliacích telefonní hovor mezi danou dvojicí uzlů definuje jeden produt v záladní síti. Kdyby se produty vzájemně nija neovlivňovaly, řešili bychom aždou úlohu samostatně s využitím již popsaných algoritmů. V opačném případě ale nebudou jednotlivé jednoprodutové úlohy nezávislé. Poud tedy chceme najít optimální to, musíme úlohy řešit ve vzájemném souladu. Úloha víceprodutových toů může být použita pro řešení mnoha praticých problémů jao jsou např. distribuční problémy ([Kenn80]), multiperiodicý přiřazovací problém ([Arro86]), problém obměny zařízení ([Agga95]), úlohy v teleomuniačních sítích ([Riou92]), při návrhu VLSI čipů ([Kort88]), při sladování sezónních výrobů ([Jewe57]). Zatímco v něterých apliacích není celočíselnost tou nutná [Kenn80], v jiných je naopa požadována [Arro86]. 5.1 Matematicé modely víceprodutových toů Úloha víceprodutových toů má dvě záladní formy: maximální víceprodutový to víceprodutový to s minimálními nálady Nejdříve si uveďme model pro úlohu maximálního víceprodutového tou. Předpoládejme, že s a t pro = 1, 2,, K představují zdroj a spotřebič pro produt. Potom úlohu víceprodutového maximálního tou (ve formě s uzly a hranami) můžeme definovat následujícím způsobem: za podmíne { j:( i, j) Maximalizuj v 1 K v i = s i N x ij x ji = 0 i ( s, t ) = 1, 2,..., K A} { j:( j, i) A} v i = t 1 K 0 x ij u x ij ij (i, j) A (5.1a) (5.1b) (5.1c) u ij (i, j) A a = 1, 2,, K (5.1d) Ve výše uvedené formulaci x ij je to produtu přes hranu (i, j) a v je celový to produtu, terý opustí zdrojový uzel s a dosáhne spotřebiče t. Pro aždou hranu (i, j) je taé zavedeno společné omezení apacity u ij. Kapacita u ij představuje množství nějaého společného zdroje (např. apitálu, práce, zařízení, 14

5 Víceprodutové toy místa atd.), terý je společně využíván všemi produty. Kromě toho je zavedena i apacita u ij, terá reprezentuje maximální povolenou hodnotu tou -tého produtu přes hranu (i, j) danou specificými omezeními daného produtu (omezené zdroje, technologicé limity). Dále musí být pro aždý produt a pro aždý uzel rozdíl přítou a odtou uzlu s výjimou zdrojů a spotřebičů nulový. Podobně je definována i úloha víceprodutového tou s minimálními nálady: za podmíne ij x ji ( j:( i, j) A) ( j:( j, i) A) ij 1 K Minimalizuj c i 1 K x (5.2a) x = b i N a = 1, 2,..., K, (5.2b) 0 x u x ij ij (i, j) A, (5.2c) u ij (i, j) A a = 1, 2,..., K. (5.2d) V této formulaci c je vetor jednotových náladů produtu a b i > 0 ( b i < 0 ) je zásoba (požadave) produtu u uzlu i. Poznamenejme, že musí platit bi = 0 pro = 1, 2,, K. i N Na rozdíl od formulace víceprodutového maximálního tou (5.1) se může v této formulaci vysytnout více zdrojů a spotřebičů u aždého produtu. Není ovšem problém zonstruovat novou síť s doplňovými uzly a hranami, terá bude představovat evivalentní úlohu víceprodutového tou s minimálními nálady s jedním zdrojem a spotřebičem pro aždý produt. Stačí přidat do sítě 2m uzlů (S, T ) pro = 1, 2,, K a hrany (S, i) s apacitou bi pro všechna i s bi > 0 a hrany (i, T ) s apacitou b i pro všechna i s b i < 0. Uzel S budeme označovat jao super zdroj a uzel T jao super spotřebič. Jednotové nálady na těchto hranách budou pro produt nulové a neonečné pro ostatní produty. Nechť N je množina nových uzlů a A je množina nových přidaných hran. Nechť V je celový to, terý by měl opustit uzel S pro = 1, 2,, K, určený tato: V = b = ( b ), i D i i D' i de D je množina uzlů i s bi > 0 a D je množina uzlů s b < 0. Odpovídající síťový model pro síť G = (N N, A A ) je: i za podmíne { j:( i, j) Minimalizuj c 1 K x V i = S i ( N N' ) x ij x ji = 0 i ( S, T ) = 1, 2,..., K A} { j:( j, i) A} V i = T xij uij (i, j) A, 0 1 K x ij (5.3a) (5.3b) (5.3c) u ij (i, j) (A A ) a = 1, 2,..., K. (5.3d) 5.2 Metody řešení Pro jednoprodutové úlohy byly již vyvinuty velmi efetivní metody (ja jsme poznali v předchozích apitolách) pro nalezení optimálního tou. Díy jejich speciální strutuře (unimodulární matici omezení) je garantováno, že optimální to bude celočíselný, poud i apacity na hranách budou celočíselné. Úloha 15

5 Víceprodutové toy víceprodutových toů má ale složitější struturu omezení a optimální to nemusí být nutně celočíselný. Poud toy nejsou celočíselně omezeny, jedná se o tzv. úlohy nepřetržitého tou. Tento typ úloh můžeme řešit pomocí tří záladních typů algoritmů, teré byly vyvinuty: Rozdělující algoritmy (partitioning algorithms) Algoritmy s deompozicí podle ceny (price-directive decomposition) Algoritmy s deompozicí podle apacity (capacity-directive decomposition) Rozdělující algoritmy jsou založeny na speciálně upravené simplexově metodě a neprovádí deompozici na jednoprodutové úlohy. Byla vyvinuta celá řada algoritmů tohoto typu. Zájemcům o tento způsob řešení úlohy víceprodutových toů doporučuji [Kenn80]. Algoritmy provádějící deompozici podle ceny jsou založeny na nejznámějším algoritmu tohoto typu Dantzing-Wolfeho deompoziční metodě [Dant61], terá rozdělí úlohu na hlavní (řídící) část, do teré jsou zahrnuta společná (ompliující) omezení na hranách a na podprogram, terý zahrnuje jednotlivé jednoprodutové úlohy. Nejdříve řídící část algoritmu stanoví doplňové ceny pro hrany se společným omezením apacity a potom se použije podprogram pro jednotlivé produty. Zísané výsledy se předají zpět řídící části algoritmu, terá provede vhodnou úpravu cen. Podstatné je, že algoritmus udržuje stále přípustnost řešení. Do této supiny algoritmů můžeme zařadit i aproximační Lagrangeův algoritmus ([Ahuj93], [Fish81]), ve terém celovým omezením tou přiřadíme tzv. Lagrangeovy operátory a přeneseme tyto omezení do účelové funce. Dostaneme ta nový problém, jehož optimální řešení bude odpovídat původnímu problému. Algoritmy provádějící deompozici podle apacity ([Geof74]) eliminují omezení společné hranové apacity rozdělením této apacity mezi jednotlivé produty. Výsledem je množina vzájemně nezávislých jednoprodutových úloh. Bohužel nalezení optimálního rozdělení apacity mezi jednotlivé produty je obtížnou úlohou a doposud nebyla nalezena žádná efetivní metoda. K řešení tohoto problému byly vyvinuty iterační algoritmy, teré se liší v tom, ja testují optimalitu řešení a ja stanovují rozdělení společné apacity mezi produty. Existují i algoritmy pro řešení celočíselného víceprodutového tou. Arronson navrhl speciální víceprodutový model pro řešení multiperiodicého přiřazovacího problému pomocí algoritmu větví a mezí ([Arro86]). Pro řešení speciální třídy víceprodutových toů definované planárními sítěmi navrhli Hassin a Lomonosov algoritmy a stanovili jisté vlastnosti týající se celočíselnosti ([Hass84], [Lomo83]). Protože úloha víceprodutových toů patří mezi tzv. NP-těžé úlohy (s lineárním růstem rozsahu problému roste její výpočetní náročnost exponenciálně), můžeme výše uvedenými metodami řešit pouze úlohy malého rozsahu a s nízým počtem produtů. Chceme-li řešit i rozsáhlejší úlohy, musíme použít něterý z heuristicých algoritmů. Zaplatíme za to ale ztrátou jistoty nalezení optima. Deterministicou heuristiu inspirovanou metodou rozladu podle apacit navrhl pro řešení celočíselných víceprodutových toů A. K. Aggarwal et al. ([Agga95]). My se v této práci zaměříme na použití stochasticých heuristi pro nalezení celočíselného víceprodutového tou. Je zřejmé, že víceprodutový to závisí na pořadí, v terém je přidělována volná apacita sítě jednotlivým produtům. Nalezení optimálního pořadí produtů je vša složitý ombinatoricý problém a nebyl doposud ještě efetivně vyřešen. My jsme použili pro nalezení optimálního pořadí algoritmy založené na vybraných stochasticých heuristicých metodách. Poud bychom použili silový přístup řešení a pousili se prohledat prostor všech možných řešení, terý je v našem případě dán permutací indexu K, rostl by počet nutných výpočtů s počtem produtů exponenciálně. Např. uvažujme síť typu Mesh (m ~ 3n) s 3000 uzlů a s 1, 6 a 10 produty. Když vezmeme jao zálad dobu výpočtu maximálního tou pro jeden produt při použití nejvýonnějšího modifiovaného Goldbergova algoritmu (výsledy převzaty z [Palub03], AMD Athlon 1900+), ta pro 1 produt je doba výpočtu přibližně 187 ms, pro 6 produtů je to již 13.5 minuty a pro 10 produtů 78 dní. 16

5 Víceprodutové toy 5.3 Heuristicé metody V operačním výzumu můžeme heuristicé metody charaterizovat jao metody pro hledání dobrých řešení (tj. řešení blízých optimálnímu) pomocí intuitivního postupu a při rozumných výpočetních náladech. Heuristiy proto používáme pro řešení složitých optimalizačních úloh (jao je i úloha víceprodutových toů), u terých nejsme schopni při dnešní úrovni výpočetní techniy rozumně uplatnit existující exatní algoritmy (poud existují). Heuristicé metody nám nezaručují nalezení optimálního řešení a obvyle ani možnost stanovení, ja daleo je určité přípustné řešení od optimálního řešení. Výhodou heuristicých metod je, že jsou velmi obecně formulované, a tudíž snadno apliovatelné na široou šálu optimalizačních problémů. Samotné heuristicé metody jsou poměrně snadno naprogramovatelné (na rozdíl od samotného problému, terý řeší). Heuristicé optimalizační metody se používají pro optimalizaci mnohoparametrových funcí s divoým průběhem, tj. s mnoha extrémy nebo neznámým gradientem. Standardní gradientové metody (např. nejprudšího spádu, sdružených gradientů, proměnné metriy) nebo negradientové metody (např. simplexová) nejsou vhodnými přístupy, protože požadujeme nalezení globálního extrému funce s mnoha loálními extrémy. Tyto metody obvyle onvergují jen extrému blízo startovního bodu a tento extrém už nejsou schopné opustit. Tento nedostate lze odstranit jejich randomizací ta, že se opaovaně spustí z různého počátečního řešení a za výsledné optimum se vezme nejlepší výslede. Stochastičnost tohoto postupu spočívá pouze v náhodném výběru počátečního řešení, ale následovně použitý optimalizační algoritmus je stritně deterministicý. Stochasticé heuristicé optimalizační metody si obvyle zachovávají svoji stochastičnost v celém průběhu optimalizačního procesu a ne jen ve výběru počátečního řešení. Evoluční proces prohledávání prostoru potenciálních řešení vyžaduje rovnováhu dvou cílů: co nejrychleji najít nejbližší (většinou loální) optimum v oolí výchozího bodu, co nejlépe prohledat prostor všech řešení. Pro řešení úlohy víceprodutových toů byly navrženy tři heuristicé algoritmy založené na třech záladních stochasticých heuristicých metodách tabu search, simulované žíhání a geneticé algoritmy (popsány v [Reev93], [Mich96], [Klap01], [Šeda98], [Glov97], [Otte89], [Gold89], [Holl75]). Význačným rysem těchto metod je, že jsou založeny na myšlence simulace něterých v přírodě se vysytujících procesů. Tato myšlena se při řešení složitých problémů uázala jao velmi cenná. Simulované žíhání bylo původně zavedeno jao analogie termodynamicých procesů. Tabu search nachází něteré ze svých motivací v pousech imitovat inteligentní procesy při využití jistého druhu paměti. Geneticé algoritmy oncipují proces řešení problémů jao analogii vývoje geneticých strutur. Pro úplnost ještě dodejme, že existuje ještě jedna metoda z této oblasti, terá ale nebyla uplatněna v této práci, a to neuronové sítě. Objevují se taé úspěšné pousy o onstruci hybridních metod, teré nějaým způsobem ombinují myšleny něolia heuristicých přístupů. Přípustná řešení, účelová funce a relace sousedství Pro problém víceprodutových toů je přípustným řešením jistá posloupnost jednoprodutových problémů, ve teré se aždý produt může vysytnout pouze jednou. Tato forma vyjádření přípustného řešení odpovídá permutačnímu ódování. Posloupnost je zde tvořena permutací indexu K, de K je počet produtů. Pro aždé přípustné řešení lze vypočítat hodnotu účelové funce. Účelová funce stanovuje pro danou posloupnost ohodnocení nalezeného tou. Pořadí produtů v přípustném řešení (chromozomu) bude určovat sled, ve terém budeme řešit jednoprodutové úlohy odpovídající danému produtu. Hodnota účelové funce potom bude odpovídat součtu nalezených jednoprodutových řešení. Účelová funce je tedy ritériem vality aždého přípustného řešení. Cílem optimalizace pomocí heuristicých metod je najít taové přípustné řešení, teré má nejlepší hodnotu účelové funce. 17

5 Víceprodutové toy Pro použití heuristicých metod potřebujeme definovat určitou relaci sousedství, terá pro aždé přípustné řešení x umožňuje pomocí množiny transformací S(x) stanovit jeho jisté oolí U(x) jao množinu přípustných řešení sousedících s x. Napřílad přípustným řešením je sevence jednoprodutových úloh 123456. Relaci sousedství můžeme jednoduše definovat napřílad jao prohození pořadí dvou sousedních úloh. Potom by naše řešení 123456 mělo pět sousedních řešení: 213456, 132456, 124356, 123546, 123465. Způsobů, ja definovat relaci sousedství, lze vymyslet mnoho (výměna libovolných dvou, prohození tří, otočení pořadí části řetězce, atd.). Při stanovení množiny sousedních řešení je důležité splnění podmíny dosažitelnosti, terá požaduje, aby aždé řešení bylo dosažitelné z libovolného jiného řešení postupnou apliací vztahu sousednosti. 1 2 1 2 3 3 s 4 s 4 9 8 7 6 5 9 8 7 6 5 V práci bylo použito celem 11 různých způsobů definování relace sousedství. Jeden z nich Lin-2-Opt change je naznačen na obrázu 5.1. Popis zbylých relací a implementační detaily jednotlivých heuristicých algoritmů najdete v [Palu03c]. Na záladě provedených testů s různým nastavením parametrů heuristicých algoritmů bylo jao nejlepší shledáno následující nastavení jednotlivých heuristicých algoritmů [Palu03]: Tabu search Obráze 5.1 Definice sousedství pomocí transformace Lin-2-Opt. Déla tabu listu: polovina počtu produtů (K/2) Počet iterací: smluvně stanoven Relace sousedství: Swap Aspirační ritérium: zapnuto Řešení jednoprodutové úlohy: modifiovaný Goldbergův algoritmus Simulované žíhání Výchozí teplota: 1700 1800 Konečná teplota: 12 290 Reduční funce teploty: f(t) = t / (1 + at), de a = 0.000008; Relace sousedství: FullSwap Řešení jednoprodutové úlohy: modifiovaný Goldbergův algoritmus Geneticý algoritmus Veliost populace: 2 počet produtů Selece: ruleta Křížení: jednobodové Pravděpodobnost mutace: 0.01 18

5 Víceprodutové toy Operátor mutace: 1stSwap Generování nové populace: iterační Vyřazený jedinec z populace: jiný než nejlepší Počet generací: smluvně stanoven Zamezení duplicitě chromozomů v populaci: zapnuto Řešení jednoprodutové úlohy: modifiovaný Goldbergův algoritmus Abychom mohli jednotlivé algoritmy srovnávat, byl u všech metod počet iterací stejný (přesné nastavení viz [Palu03c]). Jina při běžném výpočtu bychom použili spíše vyšší počty iterací (dle našich časových možností). 5.4 Testy heuristicých algoritmů Chceme-li zjistit, terý z navržených stochasticých algoritmů je nejvýonnější, musíme jednotlivé algoritmy podrobit sérii testů. Celem bylo testováno 21 různých zadání. Testy probíhaly na třech různých typech sítí se 100 uzly: (1) Mesh s počtem hran 300; (2) DoubleExponencialLine (DEL) s počtem hran 600 a (3) RandomMesh (Random) s počtem hran 900. Každá síť byla ještě vygenerována pro 5 až 11 produtů. Sítě byly vygenerovány pomocí programu GVS (příloha [Palu03c]). Výpočty byly provedeny na následující sestavě: AMD Athlon XP 1900+ 512 MB RAM Windows XP Aby bylo možné jednotlivé algoritmy porovnat, byly všechny výpočty uončeny po prozoumání stanoveného počtu prvů. Prozoumáním prvu rozumíme výpočet hodnoty účelové funce pro vygenerované řešení. Pro aždou vstupní síť proběhl výpočet 30-rát. Kompletní záznam naměřených hodnot najdete v [Palu03c]. Důležitým hledisem pro vyhodnocení testů je úspěšnost algoritmu při hledání optima a nalezená průměrná hodnota účelové funce. Pro lepší názornost jsou průměrné dosažené hodnoty účelové funce shrnuty v tabulce na obrázu 5.2. Poud jao hlavní hodnotící ritérium budeme brát úspěšnost při nalezení optima, pa nejlepších výsledů dosahoval algoritmus SA. Když jao hlavní hlediso vezmeme valitu průměrného nalezeného řešení, vychází jao nejlepší opět algoritmus SA. Všimněme si ale, že rozdíly mezi jednotlivými algoritmy jsou opravdu minimální. Počet Mesh DEL Random produtů TS SA GA TS SA GA TS SA GA 5 89836 89852 89868 15767 15767 15767 35071 35143 35143 6 95500 95495 95315 17191 17181 17159 44195 44301 44241 7 97639 97644 97627 17577 17578 16509 47367 47368 47356 8 96964 96965 96998 19747 19757 19735 53098 53083 53054 9 87700 87700 87700 18849 18818 18791 54554 54555 54547 10 90558 90625 90618 15868 15875 15816 40779 40847 40705 11 105111 104923 105215 17313 17324 17236 55399 55430 55357 Obráze 5.2 Průměrné hodnoty nalezených řešení heuristicými algoritmy. Neméně důležitým hledisem je rychlost heuristicého algoritmu. Vidíme, že i dyž se testy prováděly s malým počtem produtů a na sítích s malým počtem uzlů a hran, přesáhla i ta doba jednoho výpočtu mnohdy 20 minut. V praxi budeme řešit mnohem rozsáhlejší problémy (ja ve veliosti sítě, ta i v počtu produtů) a doba výpočtu se úměrně veliosti úlohy protáhne. Rozdíly v rychlosti jednotlivých algoritmů, teré se jeví nyní jao nevýznamné, ta mohou nabýt na důležitosti. Přehled časových nároů jednotlivých 19

6 Závěr algoritmů je shrnut v tabulce na obrázu 5.3. Vidíme, že doba výpočtu v podstatě odpovídá složitosti algoritmů. Nejrychleji počítá algoritmus TS, následuje SA a poslední sončil GA. Že GA především u sítí s menším počtem produtů zaostával jde především na vrub sledování duplicit jedinců v populaci. Poud tuto ontrolu vypneme, zvýší se rychlost GA téměř na úroveň ostatních algoritmů. Důvodem zavedení této ontroly byla postupná degenerace populace (onvergence populace jedinému řešení). Náchylnost tomuto jevu lesá s veliostí populace, taže pro řešení úloh s více než 9 produty nemá zavedení této ontroly již příliš opodstatnění. Počet Mesh DEL Random produtů TS SA GA TS SA GA TS SA GA 5 4 4 26 6 6 21 7 6 19 6 11 13 44 14 15 36 23 17 41 7 80 86 89 111 210 243 150 168 350 8 197 209 279 246 275 486 154 406 659 9 310 338 599 442 478 781 631 581 689 10 384 455 453 620 640 801 781 820 1091 11 631 695 718 565 587 764 1087 1190 1397 Obráze 5.3 Průměrné časy řešení heuristicých algoritmů (v seundách). Z naměřených výsledů vidíme, že rozdíly mezi algoritmy nejsou významné. Máme-li se pousit o vyhodnocení algoritmů, potom jao nejlepší algoritmus musíme označit SA, jao druhý TS a třetí GA. Z pohledu dalšího možného vývoje a zdoonalení heuristicých algoritmů vidíme, že nejmenší prostor pro zlepšení máme v případě TS algoritmu. O něco větší možnosti se srývají v případě algoritmu SA. Největší potenciál pro další zlepšení (modifiace) je srytý v GA. Směrem na GA by měl být zaměřen i další výzum. 6 Závěr Účelem této práce bylo podrobné studium úlohy víceprodutových toů včetně speciálních případů s jedním produtem a navržení stochasticého heuristicého algoritmu pro její řešení. Úloha víceprodutových toů představuje nejomplexnější typ úlohy mezi úlohami síťových toů. Navzdory častému výsytu této úlohy v praxi není úloha víceprodutových toů příliš předmětem zájmu výzumníů. Přes velý význam je úloha víceprodutových toů v česé literatuře dost opomíjena. Zpravidla se autoři věnují jen jednoprodutovým úlohám anebo pouze dvouprodutovému tou, terý ale nelze zobecnit na víceprodutový. Ostatně i ze seznamu odazů je zřejmé, že se bylo nutné opřít především o zahraniční literaturu. Úloha víceprodutových toů je nejčastěji se vysytující úlohou síťových toů v praxi. Protože se jedná o NP-těžou úlohu, jsme při použití exatních (přesných) algoritmů v dnešní době (při úrovni počítačů používaných dnes a v blízé budoucnosti ve firmách) schopni řešit pouze úlohy definované malými sítěmi a s nízým počtem produtů. Poud chceme optimalizovat problémy definované rozsáhlejšími sítěmi s více produty, musíme se vzdát jistoty nalezení optima a použít něterou ze stochasticých heuristicých metod anebo problémově specificou heuristiu, poud ale pro náš problém nějaá existuje. Tato práce byla zaměřena na řešení ja obecných víceprodutových úloh pomocí stochasticých heuristicých metod, ta i na řešení jednoprodutových úloh (úloha nejratší cesty, úloha maximálního tou, úloha tou s minimálními nálady) pomocí (pseudo-) polynomiálních algoritmů. V rámci této práce bylo vypracováno pět programů, teré mimo jiné umožnily testování jednotlivých algoritmů (celem 20) a mohou být tatéž použity přímo pro řešení onrétních síťových úloh. Vlajovou lodí mezi realizovanými programy je program nazvaný VíceprodutovéToy, de byly uplatněny vešeré znalosti nabyté studiem víceprodutových a jednoprodutových úloh. Program umožňuje řešit úlohu celočíselných víceprodutových toů něterým ze tří stochasticých heuristicých algoritmů. Při jejich návrhu se vycházelo z následujících heuristicých strategií: tabu search, simulovaného žíhání a geneticých algoritmů. Samotné heuristicé strategie jsou definovány velmi obecně a jejich běh je závislý na množství 20