12.07.2015 Views

Clarkeova-Wrightova metoda řešení úlohy VRP

Clarkeova-Wrightova metoda řešení úlohy VRP

Clarkeova-Wrightova metoda řešení úlohy VRP

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CLARKEOVA-WRIGHTOVA METODA ŘEŠENÍ ÚLOHY <strong>VRP</strong>1. Definice <strong>úlohy</strong>Úloha <strong>VRP</strong> (Vehicle Routing Problem – problém okružních jízd) je definována na obecnédopravní síti S = (V,H), kde V je množina uzlů sítě a H množina hran spojujících tyto uzly. Uzel V 0je označován jako středisko této sítě a uzly V 1 ,…,V n představují místa odběru (místa vyžadujícíobsluhu). V místech odběru vzniká požadavek na přepravu určitého množství dopravních elementů- tato přeprava je uskutečňována vozidly, jejichž trasa začíná a končí ve středisku V 0 a jejichžkapacita je shora omezená.Úlohou je pak sestavit sadu tras vozidel tak, aby byl požadavek každého místa odběruuspokojen jedinou obsluhou vozidla, a aby celkové náklady na přepravu byly minimální (z hlediskadélky nebo času).Ze zadání <strong>úlohy</strong> vyplývají dvě podmínky přípustnosti jejího <strong>řešení</strong>:• každý zákazník musí být v rámci některé trasy obsloužen právě jednou (1)• musí být respektována nepřekročitelná kapacita obsluhujících vozidel (2)Vedle těchto základních podmínek mohou být na sadu tras obsluhujících vozidel kladenydalší podmínky přípustnosti <strong>řešení</strong>, jejichž zavedením se původní úloha <strong>VRP</strong> modifikuje – jsou tonapř.:‣ globální podmínky:• množství elementů, které je možné rozvést v rámci jedné trasy• omezení maximální doby trvání, resp. délky jedné trasy (nepřekročitelná pracovnídoba osádek vozidel, nutné doby odpočinků, zákazy jízd v určitých dnech apod.)• omezení vyplývající z maximálně možného počtu obsloužených míst jednoutrasou vzhledem k jejich požadavkům a kapacitám vozidel• omezený disponibilní vozový park, kde v případě, že je park heterogenní, semohou jednotlivá vozidla lišit svou technologickou a kapacitní způsobilostí‣ lokální podmínky:• respektování časové dosažitelnosti obsluhovaných míst, tzn. uspokojenípožadavku obsluhovaného místa v zadaném časovém intervalu• respektování technologické dosažitelnosti obsluhovaných míst, tzn. požadavek naobsloužení zákazníka pouze vozidlem určitých parametrů• limitovaná spotřeba pohonných hmot; přijatelné náklady vynaložené na obsluhuapod.V dalším textu se budeme zabývat úlohou trasování pro nejjednodušší případ, kdypředpokládáme homogenní vozový park, a kde trasa jednoho vozidla bude tvořena jedinou okružní1


Trasa Množství elementů Doba přepravy2 ⋅ dV 0 – V i – V 0 q 1c…….. …….. ……..01+ q t1V 0 – V n – V 0q n2 ⋅ d0n + qcnt3) Z matice D odvodíme matici výhodnostních koeficientů Z = {z ij }, kde i,j = 1,…,n podlevztahu z ij = d 0i + d 0j – d ij , kde z ij , jak bylo zavedeno, vyjadřuje rozdíl mezi součtem délektras (V 0 – V i – V 0 ) a (V 0 – V j – V 0 ) a délkou sdružené trasy (V 0 – V i – V j – V 0 ).4) V matici Z najdeme největší kladný prvek z ij a sdružíme, je-li to možné, trasy (V 0 – V i – V 0 )a (V 0 – V j – V 0 ) do sdružené trasy (V 0 – V i – V j – V 0 ). Pokud takový prvek neexistuje,skončíme. Aktuální množina okružních tras je výsledkem algoritmu. V opačném případěpřejdeme na krok 5).5) Zkontrolujeme, zda sdružením tras (V 0 – V i – V 0 ) a (V 0 – V j – V 0 ) vznikne přípustná trasa.Pokud přípustná trasa nevznikne, tak položíme z ij = 0 a přejdeme na krok 4). V opačnémpřípadě pokračujeme krokem 6).6) Aktualizujeme množinu uzlů V vyjmutím uzlů i a j, pokud sdružením tras přestaly býtkrajními uzly trasy. Položíme z ij = 0. Aktualizujeme množinu tras vyjmutím sdružených trasa vložením nové trasy. Současně také aktualizujeme ostatní sledované parametry (dobupřepravy, množství elementů, délku trasy aj.).Není-li krok 4) a 5) možný, najdeme nejblíže menší nebo stejně velký prvek z st a sdružímetrasy obsahující uzly V s a V t ; mohou to být elementární trasy nebo trasy, vzniklé předchozímsdružováním. Pro krajní uzly V s a V t nově vzniklé trasy položíme z st = 0 a přejdeme na krok4).Postup opakujeme, pokud není matice Z vyčerpána nebo pokud není zřejmé, že kapacityvozidel jsou vyčerpány a další <strong>řešení</strong> nemá smysl. Výsledné <strong>řešení</strong> nemusí být optimální, alečasto bude jen suboptimální.3. PříkladMáme dánu neorientovanou, souvislou a hranově ohodnocenou dopravní síť S = (V,H).Požadujeme přepravit dané množství dopravních elementů z výchozího uzlu V 0 do ostatních uzlůsítě V i , kde i = 1,…,n. Dále známe průměrné rychlosti a kapacity všech vozidel a budemepředpokládat, že jsou stejné. Množství elementů, přepravované do kteréhokoliv uzlu, nepřekračujekapacitu jednoho vozidla. Dále je známa doba potřebná pro vyložení elementu z vozidla, která jestejná pro všechny komplety a všechny uzly. Doba mezi výjezdem a návratem každého vozidla dovýchozího uzlu V 0 je shora omezená.3


Úkolem je určit počet vozidel a jejich trasy tak, aby při splnění všech uvedených požadavkůbyl součet délek tras všech vozidel, začínajících a končících v uzlu V 0 , minimální. Pro nalezenísuboptimálního <strong>řešení</strong> této <strong>úlohy</strong> použijeme popsanou C-W metodu.Dopravní síť <strong>úlohy</strong> je definována pomocí matice vzdáleností D této sítě, která je úplnou sítí(tzn., že prvky matice vzdáleností jsou zároveň délkami příslušných úseků – hran). Jsou dány počtyelementů q i a další výchozí údaje: c = 30 km/h; t = 0,1 h; T = 8h; K = 15 elementů.Matice vzdáleností D je v tomto případě neorientované sítě symetrická, můžeme tedy prvkypod hlavní diagonálou vynechat – matice vypadá takto:i/j 0 1 2 3 4 50 0 33 60 54 50 521 0 38 35 34 762 0 15 70 943 0 48 734 0 285 0Z matice vzdáleností D je odvozena matice výhodnostních koeficientů Z = {z ij }:i/j 1 2 3 4 51 0 55 52 49 92 0 99 40 183 0 56 334 0 745 0Údaje v následující tabulce zachycují počáteční <strong>řešení</strong>:ElementárníDoby přepravyqtrasyi Délkya vykládky0 – 1 – 0 6 66 2,80 – 2 – 0 3 120 4,30 – 3 – 0 8 108 4,40 – 4 – 0 5 100 3,80 – 5 – 0 4 104 3,91. iterace: Podle kroku 4) hledáme první zlepšující <strong>řešení</strong>:max z ij = z 23 = 99; sdružíme proto trasy (0 – 2 – 0) a (0 – 3 – 0). Podle kroku 5) kontrolujemepřípustnost sdružené trasy na základě provedení kroku 6) takto: vyjmutím právě sdružené trasyaktualizujeme množinu tras počátečního <strong>řešení</strong>; pro právě sdruženou trasu aktualizujeme množstvíelementů q a dále aktualizujeme délku trasy a dobu T strávenou kompletem mimo uzel V 0 . Poprovedení kroku 6) zjišťujeme, že součet zátěží q 2 + q 3 = 11, což je hodnota nižší než přípustná4


kapacita vozidla K = 15. Dále zjišťujeme, že nová doba pobytu vozidla mimo uzel V 0 je rovna 5,4 atedy nepřekračuje zadanou přípustnou hodnotu T = 8. Nepřekročení hodnot K a T znamená, že novásdružená trasa (0 – 2 – 3 – 0) je přípustnou trasou. Uvedené skutečnosti jsou zřejmé z následujícítabulky. Nakonec kroku 6) položíme z 23 = 0 a dále pokračujeme krokem 4) v hledání další přípustnétrasy.Trasa q 2 + q 3 Délka Doba0 – 2 – 3 – 0 11 129 5,4Po 1. iteraci dostáváme tuto aktualizovanou množinu tras a odpovídající zátěže:ElementárníDoby přepravyqtrasyi Délkya vykládky0 – 1 – 0 6 66 2,80 – 2 – 3 – 0 11 129 5,40 – 4 – 0 5 100 3,80 – 5 – 0 4 104 3,92. iterace: Pokračujeme hledáním dalšího přípustného <strong>řešení</strong>:max z ij = z 45 = 74, sdružená trasa (0 – 4 – 5 – 0) je přípustná, viz tabulka:Trasa q 4 + q 5 Délka Doba0 – 4 – 5 – 0 9 130 5,2Po 2. iteraci dostáváme tuto aktualizovanou množinu tras a odpovídající zátěže:ElementárníDoby přepravyqtrasyi Délkya vykládky0 – 1 – 0 6 66 2,80 – 2 – 3 – 0 11 129 5,40 – 4 – 5 – 0 9 130 5,23. iterace: Pokračujeme hledáním dalšího přípustného <strong>řešení</strong>:max z ij = z 34 = 56, vytvořit sdruženou trasu by znamenalo sdružit trasy obsahující uzly V 3 a V 4 , tzn.trasy (0 – 2 – 3 – 0) a (0 – 4 – 5 – 0); z tabulky je zřejmé, že taková trasa je nepřípustná, protožebychom překročili přípustnou kapacitu K obsluhujícího vozidla: q(0 – 2 – 3 – 0) = 11, q(0 – 4 – 5 –0) = 9; 11+9=20 > K=15.Proto po 3. iteraci zůstávají množina tras a odpovídající zátěže nezměněné.4. iterace: Pokračujeme hledáním dalšího přípustného <strong>řešení</strong>:max z ij = z 12 = 55, trasa vzniklá sdružením tras, které obsahují uzly V 1 a V 2 , tj. (0 – 1 – 0) a (0 – 2 –3 – 0) je opět nepřípustná, protože 6+11=17 > K=15, což nelze.Tedy i po 4. iteraci zůstávají množina tras a odpovídající zátěže nezměněné.5


5. iterace: Pokračujeme hledáním dalšího přípustného <strong>řešení</strong>:max z ij = z 13 = 52; nastává stejná situace jako po 4. iteraci; trasa vzniklá sdružením tras, kteréobsahují uzly V 1 a V 3 , tj. (0 – 1 – 0) a (0 – 2 – 3 – 0) je opět nepřípustná, protože 6+11=17 > K=15,což nelze.I po 5. iteraci zůstávají množina tras a odpovídající zátěže nezměněné.6. iterace: Pokračujeme hledáním dalšího přípustného <strong>řešení</strong>:max z ij = z 14 = 49; trasa vzniklá sdružením tras, které obsahují uzly V 1 a V 4 , tj. (0 – 1 – 0) a (0 – 4 –5 – 0) je přípustná, protože 6+9=15, což není hodnota větší než K=15Trasa q 1 + q 4 + q 5 Délka Doba0 – 1 – 4 – 5 – 0 15 147 6,4Po 6. iteraci již nelze kroky 4) a 5) opakovat, tzn. že další sdružování tras není možné, a protoposlední aktualizovaná množina tras, zátěže, délek tras a dob pobytu mimo výchozí uzel obsahujenalezené <strong>řešení</strong> – viz tabulku:Elementární trasy q i DélkyDoby přepravya vykládky0 – 1 – 4 – 5 – 0 15 147 6,40 – 2 – 3 – 0 11 129 5,4Optimální množina tras vozidel je tedy dvouprvková, výsledné <strong>řešení</strong> má součet délek tras276 km oproti výchozímu součtu délek elementárních tras 498 km; součet dob provozu vozidel je11,8 h. Protože T = 8 < 11,8 < 2x8 = 16, jsou pro splnění úkolu nutná dvě vozidla.4. Zdroje• CLARKE, G; WRIGHT, J. W.: „Scheduling of Vehicles from a Central Depot to a Numberof Delivery Points“, Operations research 12, 1964, strana 568-581• TUZAR, A.; MAXA, P.; SVOBODA, V.: „Teorie dopravy“, ČVUT v Praze, Praha 19976

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!