VUT Brno Fakulta informačních technologií Simulační nástroje a techniky (SNT) 2014/2015 Vehicle routing problem Ant colony

Podobné dokumenty
Ant Colony Optimization 1 / 26

Metaheuristiky s populacemi

Optimalizační algoritmy inspirované chováním mravenců

Ant Colony Optimization

Swarm Intelligence. Moderní metody optimalizace 1

Úvod do úloh plánování rozvozu (Vehicle Routing Problems)

PŘEDNÁŠKA 03 OPTIMALIZAČNÍ METODY Optimization methods

Use of ant colony optimization for vehicle routing problem. Použití metody mravenčích kolonií pro úlohy okružních jízd

CLARKEOVA-WRIGHTOVA METODA ŘEŠENÍ ÚLOHY VRP

Optimalizační algoritmy inspirované chováním mravenců

OPTIMALIZAČNÍ ALGORITMY V LOGISTICKÝCH

Seminář z umělé inteligence. Otakar Trunda

Dijkstrův algoritmus

Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky

State Space Search Step Run Editace úloh Task1 Task2 Init Clear Node Goal Add Shift Remove Add Node Goal Node Shift Remove, Add Node

Vzdálenost uzlů v neorientovaném grafu

4. Na obrázku je rozdělovací funkce (hustota pravděpodobnosti) náhodné veličiny X. Jakou hodnotu musí mít parametr k?

PLÁNOVÁNÍ CESTY MOBILNÍHO ROBOTU POMOCÍ MRAVENČÍCH ALGORITMŮ MOBILE ROBOT PATH PLANNING BY MEANS OF ANT ALGORITHMS

Úvod do mobilní robotiky AIL028

Číselné charakteristiky

Algoritmy pro spojitou optimalizaci

Markov Chain Monte Carlo. Jan Kracík.

Algoritmizace prostorových úloh

Úvod do stochastických optimalizačních metod (metaheuristik) Moderní metody optimalizace 1

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

7. Rozdělení pravděpodobnosti ve statistice

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

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

11. Tabu prohledávání

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

8. Simulované ochlazování Simulated Annealing, SA

Ing. Tomáš MAUDER prof. Ing. František KAVIČKA, CSc. doc. Ing. Josef ŠTĚTINA, Ph.D.

Metody síťové analýzy

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

jednoduchá heuristika asymetrické okolí stavový prostor, kde nelze zabloudit připustit zhoršují cí tahy Pokročilé heuristiky

FACULTY OF MECHANICAL ENGINEERING INSTITUTE OF AUTOMATION AND COMPUTER SCIENCE

SIMULAČNÍ MODEL ČINNOSTÍ VEŘEJNÉHO LOGISTICKÉHO CENTRA

Optimizing Limousine Service with AI. David Marek

Evolučníalgoritmy. Dále rozšiřována, zde uvedeme notaci a algoritmy vznikléna katedře mechaniky, Fakulty stavební ČVUT. Moderní metody optimalizace 1

ŘADY KOMPLEXNÍCH FUNKCÍ

Základy umělé inteligence

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ MRAVENČÍ KOLONIE DIPLOMOVÁ PRÁCE

Navrženy v 60. letech jako experimentální optimalizační metoda. Velice rychlá s dobrou podporou teorie

Optimalizace & soft omezení: algoritmy

UNIVERZITA PARDUBICE. 4.4 Aproximace křivek a vyhlazování křivek

Užití systému Matlab při optimalizaci intenzity tepelného záření na povrchu formy

Hledání optimální cesty v dopravní síti

ČVUT FEL X36PAA - Problémy a algoritmy. 5. úloha - Seznámení se se zvolenou pokročilou iterativní metodou na problému batohu

Binární vyhledávací stromy pokročilé partie

Řízení projektů. Konstrukce síťového grafu pro řízení projektů Metoda CPM Metoda PERT

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

VISUAL BASIC. Přehled témat

Matice sousednosti NG

Paralelní grafové algoritmy

České vysoké učení technické v Praze Fakulta elektrotechnická. Diplomová práce Přepínání metaheuristik. Aleš Kučík

Úvod do teorie grafů

Zpracování neurčitosti

Simulace pohybu chodců pomocí celulárních modelů

Analytické metody v motorsportu

Static Load Balancing Applied to Time Dependent Mechanical Problems

Cluster Analysis based on Bio-Inspired Algorithms

OPTIMALIZACE A MULTIKRITERIÁLNÍ HODNOCENÍ FUNKČNÍ ZPŮSOBILOSTI POZEMNÍCH STAVEB D24FZS

Genetické programování

Teorie náhodných matic aneb tak trochu jiná statistika

Zobrazte si svazy a uspořádané množiny! Jan Outrata

Návrh a vyhodnocení experimentu

Numerické metody a programování. Lekce 8

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

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

bfs, dfs, fronta, zásobník, prioritní fronta, halda

MOŽNOSTI OPTIMALIZACE VE STAVEBNICTVÍ

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

Délka (dny) terénní úpravy (prvotní) příprava staveniště (výstavba přístřešku pro materiál)

Řízení projektů Simulační projekt

STANOVENÍ PROPUSTNOSTI OBALOVÝCH MATERIÁLŮ PRO VODNÍ PÁRU

Problém obchodního cestujícího pomocí metody Mravenčí kolonie

Hledání správné cesty

Ú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ů

Umělá inteligence I. Roman Barták, KTIML.

Evoluční algoritmy. Podmínka zastavení počet iterací kvalita nejlepšího jedince v populaci změna kvality nejlepšího jedince mezi iteracemi

Jaroslav Tuma. 8. února 2010

KNIHOVNA MODELŮ TECHNOLOGICKÝCH PROCESŮ

Testování prvočíselnosti

Analýza spolehlivosti tlakové nádoby metodou Monte Carlo

xrays optimalizační nástroj

Algoritmy na ohodnoceném grafu

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Základy informatiky. Teorie grafů. Zpracoval: Pavel Děrgel Úprava: Daniela Szturcová

Modelování a simulace Lukáš Otte

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

I. D i s k r é t n í r o z d ě l e n í

Jak se matematika poučila v biologii

odlehlých hodnot pomocí algoritmu k-means

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

p(x) = P (X = x), x R,

bfs, dfs, fronta, zásobník

Návrh a vyhodnocení experimentu

Kapitola 11. Vzdálenost v grafech Matice sousednosti a počty sledů

= 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

Transkript:

VUT Brno Fakulta informačních technologií Simulační nástroje a techniky (SNT) 2014/2015 Vehicle routing problem Ant colony František Němec (xnemec61) xnemec61@stud.fit.vutbr.cz 19. července 2015 1 Úvod Práce řeší Capacited Vehicle Routing Problem (CVRP) a je založena na článku s řešením pomocí Ant Colony System techniky [1]. Článek je z velké části zaměřen na detailní popis základu algoritmu a poté základní model rozšiřuje o řešení multi-compartment problému a využití k-means algoritmu pro tzv. clustering. Experimenty v článku jsou provedeny na několika často v literatuře používaných problémech [2]. V následujících kapitolách je popsán hlavní koncept Ant Colony techniky s její implementací, která je ověřena experimenty, jenž jsou následně vyhodnoceny a porovnány s výsledky uvedené v článku. 2 Vehicle Routing Problem Vehicle Routing Problem je optimalizační problém, který lze definovat jako hledání nejkratší cesty v grafu. V základním formátu se jedná o hledání nejkratší cesty, ale existuje několik rozšíření, která kladou další omezení. Mezi některá patří: Capacitated Vehicle Routing Problem (CVRP), kde jsou vozidla limitována svojí kapacitou nebo Vehicle Routing Problem with Time Windows (VRPTW), kde každý zákazník obsahuje časový interval kdy může být obsloužen. Vehicle Routing Problem má praktické využití např. v logistice pro minimalizaci nákladů na provoz vozidel nebo šetření životního prostředí snížením objemu výfukových plynů. Existuje mnoho metod pro jejich řešení, mezi která např. patří Particle Swarm Optimization [4], genetické algoritmy, simulované žíhání, Tabu Search [3] nebo Ant Colony [1]. 3 Koncept Ant Colony Existují mnohé varianty a rozšíření Ant Colony metody, ale tato práce (a článek) je založen na základní metodě Ant Colony Optimization (ACO), kterou dále rozšiřuje a která se nazývá Ant Colony System (ACS). 3.1 Ant Colony Optimization ACO algoritmus má dvě hlavní fáze: konstrukce trasy a obnova feromonových stop. Při konstrukci trasy mravenci souběžně budují cesty, přičemž začínají z náhodně zvolených uzlu (zákazníku). V každém kroku mravenec k aktuálně na uzlu i provede rozhodnutí k jakému dalšímu uzlu jít. Rozhodnutí je ovlivněno dvěma základními hodnotami: Heuristická funkce η ij, která vyjadřuje atraktivnost přechodu z uzlu i do uzlu j. Obvykle je tato funkce definována jako inverze ceny/vzdálenosti hrany mezi danými uzly. Úroveň feromonu na hraně (i, j) označena τ ij, která určuje jak moc byla v minulosti hrana používána. 1

Pravděpodobnost výběru uzlu n pro následující přechod mravence je následující: N k i p k in = (τ in ) α (η in ) β l N k i (τ il ) α (η il ) β (1) je množina přípustných uzlů (uzly do kterých lze přistoupit z uzlu i a zároveň ještě nebyly navštíveny) a α, β jsou heuristické parametry. Pokud však n / Ni k, pak je pravděpodobnost pk in = 0, neboli do nepřístupných uzlu je pravděpodobnost přechodu nulová. Jakmile všichni mravenci dokončí tvorbu tras je provedena aktualizace feromonových stop. To je provedeno snížením úrovně stopy na všech hranách (to reprezentuje vypaření a má za následek zapomenutí některých přechodů a podnícení prohledávání nových cest) a zvýšení úrovně feromonu na hranách, které byly překročeny. 3.2 Ant Colony System Ant Colony System (ACS) vylepšuje ACO v následujících aspektech: Konstrukce trasy: Při konstrukci trasy mravenec k na uzlu i přechází do uzlu n podle následujícího pravidla. Je vygenerováno náhodné číslo q rovnoměrného rozložení v intervalu [0,1] a když q > q 0, pak je uzel n zvolen podle standardního ACO pravidla (1) (s α = 1) v opačném případě je uzel zvolen následovně: n = arg max j N k i {(τ ij )(η ij ) β } (2) Tedy s pravděpodobností q 0 mravenec provede přechod s nejsilnější úrovní feromonové stopy, kdežto s pravděpodobností (1 q 0 ) provede náhodný přechod na základě feromonových stop. Aktualizace feromonů: ACS metoda používá dva typy aktualizace feromonů: lokální a globální. Lokální aktualizace je provedena vždy, když mravenec přejde hranu (i, j) (zvolí nový uzel) a feromon je upraven následovně: τ ij (1 ξ)τ ij + ξτ 0 (3) kde 0 < ξ < 1 a τ 0 je počáteční úroveň feromonu definována jako τ 0 = (NL nn ) 1, kde L nn je délka trasy při výběru nejbližšího souseda (trasa, kde každý přechod je proveden k nejbližšímu ještě nenavštívenému uzlu) a N je počet uzlů/zákazníků. Globální aktualizace je na druhou stranu provedena jen na hranách doposud nejlepší nalezené trasy a je implementována následující rovnicí: τ ij (1 ρ)τ ij + ρ τ bs ij, (i, j) T bs (4) kde τ bs ij = (Lbs ) 1, ρ je parametr řídící slábnutí feromonů a T bs je aktuálně nejlepší nalezená trasa s délkou L bs. To umožňuje algoritmu rychleji konvergovat koncentrací prohledávání okolo nejlepší trasy. Dalším rozšířením ACS algoritmu (nutné pro řešení CVRP) je zakomponování požadavků každého uzlu, kapacit mravenců a nutnost vracení do depa kvůli vyložení nákladu, aby nebyla překročena kapacita mravenců (v reálném světě kapacita vozidla). 4 Implementace Velice detailní popis ACS algoritmu se nachází přímo v článku, avšak vyskytuje se v něm chyba. V článku počítají přesný počet kroků potřebných na dokončení celé trasy. Výpočet je proveden na základě počtu nutných cest do depa podle depott rip = ceiling( v i /V ), kde v i je velikost požadavku zákazníka i a V je kapacita vozidla. Celkový počet kroků odpovídá steps = depott rip + N, kde N je počet uzlů/zákazníků. To však nemusí být pravda. Uved me příklad: 3 zákazníci každý s požadavkem 2 a vozidlo s kapacitou 3. Podle výše uvedeného vzorce je počet kroků roven steps = (3 2)/3 + 3 = 5. Požadavky ale nelze dělit a po obsloužení každého zákazníka vozidlo se musí navrátit do depa, protože by jinak překročilo svoji kapacitu a opravdový počet kroků se rovná steps = 6. 2

Výsledný algoritmu kombinuje několik technik. Pro nastavení τ 0 je použito Greedy prohledávání (prohledávání nejbližšího souseda). Po sestavení tras je aplikováno 2-opt vylepšení, což výrazně zlepšuje celkové výsledky. Vliv 2-opt je podroben testům v kapitole 5.1. Je vhodné zmínit, že v konečném algoritmu byl opomenut parametr α, protože v experimentech vždy nabývá hodnoty 1 a případně ho lze nahradit vhodnou volbou parametru β. Další důležitou informací je, že hrany mezi uzly se považují za neorientované. V článku nikde není tato informace explicitně uvedena a z teoretické popisu spíše vyplývá, že hrany jsou orientované. Nicméně vliv orientace hran byl testován a výsledky jsou, stejně jako 2-opt, popsány v kapitole 5.1. Algoritmus 1 obsahuje zjednodušený popis implementace ACS algoritmu. Algoritmus 1 Pseudokód vlastní implementace ACS algoritmu 1: for počet iterací do 2: Inicializace nenavštívených uzlů každého mravence 3: Rozmístění mravenců na náhodné počáteční uzly 4: while existují mravenci, kteří nedokončili konstrukci trasy do 5: Sestavení přípustných uzlů (nenavštívené uzly + uzly s dostatečně malým požadavkem) 6: if Seznam přípustných uzlů je prázdný (mravenec je příliš naložen) then 7: Cesta do depa 8: Vyložení nákladů 9: else 10: if mravenec se nachází depu then 11: Následující uzel je vybrán náhodně 12: else 13: Generace náhodné proměnné q v rozsahu [0,1) 14: if q > q 0 then 15: Výpočet pravděpodobností přechodů podle vzorce (1) 16: Výběr konkrétního uzlu ruletovým výběrem 17: else 18: Výběr uzlu na základě největší pravděpodobnosti (vzorec (2)) 19: end if 20: end if 21: Zvýšení nákladu mravence podle požadavku nového uzlu 22: end if 23: Lokální aktualizace feromonu na hraně posledního a nového uzlu 24: end while 25: Aplikace 2-opt vylepšení na trasy všech mravenců 26: Kontrola zda některý z mravenců našel novou nejlepší/nejkratší trasu 27: Globální aktualizace feromonových stop podle doposud nejlepší nalezené trase 28: end for Hlavní třídy simulátoru: Ant základní blok algoritmu. Field třída obsahující informace o feromonových stopách a vzdálenostech mezi uzly. Parameters singleton třída s parametry algoritmu jako β, q 0, ξ, ρ, počet běhů, počet iterací, počet mravenců. TwoOpt implementace 2-opt. VRP Vehicle Routing Problem, seznam uzlů s jejich požadavky a další omezení jako kapacita vozidla. VRPSolver jádro simulátoru. Třída s hlavními metodami Ant Colony System algoritmu. 5 Experimenty Cílem experimentů je ověřit správnost implementace algoritmu z článku [1] (dosáhnout stejných výsledků). Experimenty jsou provedeny (stejně jako v článku) na často používané sadě CVRP problémů shromážděné 3

panem Christofides [2]. Konkrétní vybrané problémy: C1, C2, C3, C11 a C12. Každý problém je definován následovně: souřadnice depa (x 0, y 0 ) souřadnice uzlů/zákazníků {(x i, y i ) i = 1,.., N} spolu s jejich požadavky {v i i = 1,.., N} kapacita vozidla V Parametry jsou taktéž stejné α = 1, β = 2, q 0 = 0, 9, ξ = ρ = 0.1. Počet mravenců je stejný jako počet uzlů konkrétního problému a počet iterací je zvolen na hodnotu 2000. Jelikož je Ant Colony stochastická metoda jeden běh nemá žádnou vypovídací hodnotu. V článku pro každý problém zvolili 10 běhů. V tabulce 1 jsou uvedeny výsledky experimentů (nejlepší, průměrná a nejhorší délka trasy) z článku a z vlastní implementace. Na grafu 1 je grafické porovnání průměrných délek tras z článku a vlastní implementace (u nejlepších a nejhorších délek je situace velice podobná). Článek Vlastní implementace Nejlepší Průměr Nejhorší Nejlepší Průměr Nejhorší C1 524,61 536,24 546,36 524,93 535,57 543,11 C2 877,75 907,46 933,15 875,56 890,72 902,85 C3 919,67 946,29 970,45 909,86 935,21 951,76 C11 1372,95 1418,03 1448,79 1048,06 1054,91 1067,43 C12 1147,20 1240,49 1294,59 846,98 848,52 851,79 Tabulka 1: Porovnání výsledků (délek tras) experimentů z článku a výsledků vlastní implementace Obrázek 1: Graf porovnání průměrných hodnot experimentů z článku a vlastní implementace Výsledky vlastní implementace jsou dokonce lepší než výsledky uvedené v článku. Nejsem si vědom žádného většího odklonění od konkrétního algoritmu z článku. Hlavním rozdílem je již zmíněný problém počítání přesného počtu kroků, ale to má za následek vytváření nevalidních tras a jejich zkrácení. Druhým rozdílem by mohla být orientace hran o které se v článku nepíše, ale z experimentů v následující kapitole vychází, že tak velký vliv orientace hran nemá. Pro vylepšení situace problémů C11 a C12 v článku implementovali k-means pro clustering. Nicméně i po jejich vylepšení vlastní implementace stále dosahuje lepších výsledků. Průměrné délky tras s clustering vylepšením z článku jsou pro C11 1193,07 a pro C12 1013,10, což je stále horší než výsledky vlastní implementace bez clustering vylepšení (C11 1054,91 a C12 848,52) 4

5.1 2-opt a orientace hran Vliv 2-opt byl testován na problémech C1 a C2, ale lze s jistotou předpokládat podobné výsledky i u ostatních problémů. Parametry testů jsou stejné jako v hlavních experimentech: α = 1, β = 2, q 0 = 0, 9, ξ = ρ = 0.1, 25 běhů, 2000 iterací, 50 mravenců pro C1, 75 mravenců pro C2. Z výsledků (tabulka 2) je zřejmé, že 2-opt výrazně zlepšuje výsledky celého algoritmu a to až o několik procent. Průměr Směrodatná odchylka Bez 2-opt S 2-opt Zlepšení Bez 2-opt S 2-opt Zlepšení C1 582,72 533,46 8,5% 10,62 6,36 40,0% C2 975,53 897,99 7,9% 12,01 10,40 13,5% Tabulka 2: Vliv 2-opt na výsledné délky tras Stejně jako vliv 2-opt testování proběhlo na problémech C1 a C2 (tabulka 3) při stejných parametrech. Z experimentů porovnávající orientované oproti neorientované hrany byly zjištěny lepší výsledky při neorientovaných hranách. Zlepšení o skoro 1% sice není tak markantní jako u 2-opt, ale zase není úplně zanedbatelné. Průměr Směrodatná odchylka Orientované Neorientované Zlepšení Orientované Neorientované Zlepšení C1 537,36 533,46 0,7% 5,27 6,36-20,6% C2 905,13 897,99 0,8% 12,17 10,40 16,5% Tabulka 3: Vliv orientace hran na výsledné délky tras 6 Závěr Cílem práce bylo replikovat model Ant Colony System z článku [1] pro řešení Vehicle Routing Problem a ověřit správnou implementaci. Model byl implementován v jazyce C++, jak v konzolové verzi tak s uživatelským rozhraním, které je v Qt frameworku. Z experimentů vyplývá, že vlastní implementace poskytuje lepší výsledky než původní algoritmus z článku i když neimplementuje clustering vylepšení. Důvod zlepšení výsledků není zcela znám. V článku se také zabývají multi-compartment problémem a jeho aplikaci na sběr papíru a skla, které v této práci není implementováno a bylo by vhodné jako rozšíření modelu. Stejně tak nebylo implementováno k-means pro clustering, protože i bez něj základní implementace dosáhla dobrých výsledků. Nicméně by mohlo být zajímavé clustering implementovat a sledovat zda se výsledky ještě nezlepší. Další rozšíření by se mohla týkat paralelizace, protože v aktuální stavu implementace využívá jen jedno jádro. U experimentů však byl tento nedostatek nahrazen několikanásobným spuštěním programu, které už běžely paralelně. Další experimenty by mohly být založeny na nalezení vhodných hodnot parametrů, které poskytují nejlepší výsledky nebo provést jejich metaoptimalizaci. Reference [1] M. Reed, A. Yiannakou, R. Evering. 2014. An ant colony algorithm for the multi-compartment vehicle routing problem. Applied soft computing. (15): 169-176. ISSN 1568-4946. Dostupné také z: http: //www.sciencedirect.com.ezproxy.lib.vutbr.cz/science/article/pii/s1568494613003517 [2] N. Christofides, A. Mingozzi, P. Toth. The vehicle routing problem, in: N.Christofides, A. Mingozzi, P. Toth, C. Sandi (Eds.). Combinatorial Optimization. Wiley, Chichester. 1979, 315 338. [3] S.R. Thangiah. A hybrid genetic algorithms, simulated annealing and tabusearch heuristic for vehicle routing problems with time windows. in: L.Chambers (Ed.), Practical Handbook of Genetic Algorithms, vol. III: ComplexStructures, CRC Press, Boca Raton. 1999, 347 381. [4] M.R. Khouadjia, B. Sarasola, E. Alba, L. Jourdan, E.-G. Talbi. A comparative studybetween dynamic adapted PSO and VNS for the vehicle routing problem withdynamic requests. Applied Soft Computing 12 (2012) 1426 1439. 5