VYSOKÁ ŠKOLA EKOOMICKÁ V PRAZE FAKULTA IFORMATIKY A STATISTIKY Dsertační práce 2006 Ing. Jan Fábry
Vysoá šola eonomcá v Praze Faulta nformaty a statsty atedra eonometre Dynamcé oružní a rozvozní úlohy dotorsá dsertační práce Dotorand : Ing. Jan Fábry Šoltel : prof. RDr. Jan Pelán, CSc. Obor : Eonometre a operační výzum 2006 Jan Fábry fabry@vse.cz př ctac uvádějte odaz: Fábry, J.: Dynamcé oružní a rozvozní úlohy, dsertační práce, VŠE-FIS, Praha, 2006 Praha, lstopad, 2006
Prohlášení dsertační prác Prohlašuj, že dotorsou prác na téma Dynamcé oružní a rozvozní úlohy jsem vypracoval samostatně. Použtou lteraturu a podladové materály uvádím v přloženém seznamu lteratury. V Praze dne 3. lstopadu 2006. Podps
Poděování Rád bych touto cestou poděoval svému šoltel prof. Janu Pelánov za cenné rady a přpomíny, teré přspěly e zvaltnění předládané dsertační práce. Zároveň bych chtěl poděovat prof. Josefu Jablonsému za jeho pomoc a významná doporučení př počítačovém zpracování modelů uvedených v prác. Věnování Tuto prác věnuj svým rodčům.
Abstract Dynamc Vehcle Routng Problems Exstng compettve busness forces dstrbuton frms to offer mmedate servces to ther customers. Whle a statc verson of routng problems does not accept addtonal requrements of customers, the dynamc verson enables dspatcher to change the planned routes of the vehcles after an occurrence of on-lne requests. We focus on Dynamc Travelng Salesman Problem and Dynamc Vehcle Routng Problem. In extensons of these problems we consder multple vehcles avalable n a unque depot or multple depots. Mathematcal models are proposed to fnd the optmum soluton of descrbed dynamc problems. The objectve s to mnmze the total length of all routes or to mnmze the servce tme. Heurstc nserton algorthm s used as an alternatve approach to the dynamc problems. Tme wndows constrants are ncluded n Travelng Salesman Problems together wth the cost functon consderng the travel costs and lateness costs as the penaltes n case tme wndows are volated. We dscuss specal dynamc dstrbuton problems: Dynamc Messenger Servce Problem, A Pror Dynamc Salesman Problem and Dynamc Splt Delvery Vehcle Routng Problem. The soluton to most of analyzed problems s demonstrated on generated data usng LIGO as a solver and VBA n MS Excel as an nterface and output envronment. The results of computatonal experments are presented. Keywords: dynamc travelng salesman problem, dynamc vehcle routng problem, multple vehcles, tme wndows, nserton algorthm
Abstrat Dynamsches Vehcle Routng Problem Das heute vorhandene Wettbewerbsumfeld zwngt Logstdenstlester dazu, hren Kunden unmttelbare, möglchst rechtzetge Bedenung anzubeten. Während en statscher Ansatz zu Routng Problemen ene zusätzlchen Kundenbedürfnsse berücschtgt, befähgt ene dynamsche Verson enen Dspatcher dazu de geplanten Fahrzeugrouten nach Engang ener gestellten Anfrage zu verändern. Wr onzentreren uns auf das dynamsche Travelng Salesman Problem und das dynamsche Vehcle Routng Problem. Als Erweterung deser Probleme stellen wr Überlegungen zu mehreren verfügbaren Transportmtteln n enem oder mehreren Depots an. Zur optmalen Lösung deser dynamschen Probleme werden mathematsche Modelle angeboten mt dem Zel de gesamte Länge aller Routen oder de Bedenungszet zu mnmeren. En heurstsches Verfahren n Form enes Inserton Algorthmus wrd als alternatve Methode zur Lösung deser dynamschen Probleme angewendet. ebenbedngungen zu Zetfenstern werden n Travelng Salesman Problemen m Zusammenhang mt Kostenfuntonen betrachtet, de Transportosten sowe Kosten für Verspätungen als Konventonalstrafen m Falle ener Verletzung enes Zetfensters enbezeht. Wr handeln von den spezellen dynamschen Vertrebsprobleme: Dynamsche Messenger Servce Probleme, dynamsche Salesman Probleme mt den a pror Informatonen und dynamsche Splt Delvery Vehcle Routng Probleme. De Lösungen zu den mesten analyserten Problemen werden anhand genererter Daten mttels des Solvers LIGO und VBA n MS-Excel als Schnttstelle und Outputumgebung aufgezegt. De Lösung der ombnatorschen Expermente wrd präsentert. Schlüsselwörter: dynamsches Travelng Salesman Problem, dynamsches Vehcle Routng Problem, mehrere Transportmttel, Zetfenster, Inserton Algorthmus
Obsah. ÚVOD...8 2. DYAMICKÉ ROZŠÍŘEÍ OKRUŽÍCH A ROZVOZÍCH ÚLOH... 3. DYAMICKÁ ÚLOHA OBCHODÍHO CESTUJÍCÍHO...3 3. Standardní úloha obchodního cestujícího... 3 3.2 Dynamzace úlohy obchodního cestujícího... 4 3.2. RE-OPTIMALIZACE DYAMICKÉ ÚLOHY OBCHODÍHO CESTUJÍCÍHO... 6 3.2.2 VKLÁDACÍ ALGORITMUS PRO DYAMICKOU ÚLOHU OBCHODÍHO CESTUJÍCÍHO... 20 3.2.3 OKAMŽIKY PŘÍCHODU OVÝCH POŽADAVKŮ V DYAMICKÉ ÚLOZE OBCHODÍHO CESTUJÍCÍHO... 2 3.3 Dynamcá úloha obchodního cestujícího s časovým ony... 24 3.3. STATICKÁ ÚLOHA OBCHODÍHO CESTUJÍCÍHO S ČASOVÝMI OKY... 25 3.3.. Úloha s čeáním vozdla u záaznía před jeho obsluhou... 27 3.3..2 Úloha s čeáním vozdla u právě obslouženého záaznía... 28 3.3.2 DYAMICKÁ ÚLOHA OBCHODÍHO CESTUJÍCÍHO S ČASOVÝMI OKY... 30 3.3.2. Re-optmalzace trasy po přdání záaznía... 3 3.3.2.2 Zařazení nového záaznía pomocí vládacího algortmu... 32 3.3.3 DYAMICKÁ ÚLOHA OBCHODÍHO CESTUJÍCÍHO S ČASOVÝMI OKY A PEALIZACÍ... 33 3.3.3. Změna modelu statcé úlohy... 34 3.3.3.2 Změna modelu dynamcé úlohy... 35 3.3.4 DYAMICKÁ ÚLOHA OBCHODÍHO CESTUJÍCÍHO S APRIORÍ IFORMACÍ... 36 3.3.4. Možné stratege přesunu vozdla... 38 3.3.4.2 Přesun volného vozdla... 39 3.3.4.3 Výpočetní expermenty... 40 3.4 Dynamcá úloha urýrní služby... 4 3.4. STATICKÁ ÚLOHA KURÝRÍ SLUŽBY BEZ ČASOVÝCH OKE... 4 3.4.2 STATICKÁ ÚLOHA KURÝRÍ SLUŽBY S ČASOVÝMI OKY... 44 3.4.3 DYAMICKÁ ÚLOHA KURÝRÍ SLUŽBY... 45 4. DYAMICKÁ ÚLOHA S VÍCE OBCHODÍMI CESTUJÍCÍMI...50 4. Úloha s více obchodním cestujícím... 50 4.2 Aplace úlohy s více obchodním cestujícím... 5 4.3 Úloha s více obchodním cestujícím s mnmalzací celové ujeté vzdálenost... 52 4.3. ÚLOHA S JEDÍM VÝCHOZÍM MÍSTEM... 52 4.3.2 ÚLOHA S ĚKOLIKA VÝCHOZÍMI MÍSTY... 54 4.4 Úloha s více obchodním cestujícím s mnmalzací času potřebného obsluze všech záazníů... 56 4.4. ÚLOHA S JEDÍM VÝCHOZÍM MÍSTEM... 57 4.4.2 ÚLOHA S ĚKOLIKA VÝCHOZÍMI MÍSTY... 60 4.5 Úloha s více obchodním cestujícím s časovým ony... 62 4.6 Dynamcá úloha s více obchodním cestujícím... 63 4.6. MIIMALIZACE CELKOVÉ VZDÁLEOSTI VÍCE VÝCHOZÍCH MÍST... 64 4.6.2 MIIMALIZACE ČASU POTŘEBÉHO K OBSLOUŽEÍ VŠECH ZÁKAZÍKŮ JEDO VÝCHOZÍ MÍSTO... 7 4.6.3 MIIMALIZACE ČASU POTŘEBÉHO K OBSLOUŽEÍ VŠECH ZÁKAZÍKŮ VÍCE VÝCHOZÍCH MÍST... 78 5. DYAMICKÉ ROZVOZÍ ÚLOHY...82 5. Rozvozní úloha s jedním vozdlem... 83 5.. STATICKÁ ÚLOHA... 83 5..2 DYAMICKÁ ÚLOHA... 85
5.2 Rozvozní úloha s více vozdly v jednom výchozím místě... 93 5.2. MIIMALIZACE CELKOVÉ UJETÉ VZDÁLEOSTI... 93 5.2.. Statcá úloha... 94 5.2..2 Dynamcá úloha...95 5.2.2 MIIMALIZACE ČASU POTŘEBÉHO K OBSLOUŽEÍ VŠECH ZÁKAZÍKŮ... 97 5.2.2. Statcá úloha... 97 5.2.2.2 Dynamcá úloha...99 5.3 Rozvozní úloha s více vozdly v něola výchozích místech... 00 5.4 Rozvozní úloha s dělenou dodávou... 0 5.4. STATICKÁ ÚLOHA... 02 5.4.2 DYAMICKÁ ÚLOHA... 04 5.4.3 ROZLOŽITELOST ÚLOHY S DĚLEOU DODÁVKOU... 06 5.4.4 HEURISTICKÁ METODA PRO ÚLOHU S DĚLEOU DODÁVKOU... 07 6. VÝPOČETÍ EXPERIMETY...09 6. Dynamcá úloha obchodního cestujícího... 09 6.2 Úloha s více obchodním cestujícím s mnmalzací celové vzdálenost... 0 6.2. ÚLOHA S JEDÍM VÝCHOZÍM MÍSTEM... 0 6.2.2 ÚLOHA S ĚKOLIKA VÝCHOZÍMI MÍSTY... 6.3 Úloha s mnmalzací času potřebného obsloužení všech záazníů... 3 6.4 Rozvozní úlohy... 5 6.5 Shrnutí výpočetních expermentů... 6 7. ZÁVĚR...8 PŘÍLOHY...2 Úloha obchodního cestujícího... 22 Dynamcá úloha obchodního cestujícího... 23 Pops systému TSP. xls... 24 Statcá úloha s více obchodním cestujícím v jednom výchozím místě... 29 Statcá úloha s více obchodním cestujícím ve více výchozích místech... 3 Statcá úloha s více obchodním cestujícím v jednom výchozím místě... 33 Statcá úloha s více obchodním cestujícím v něola výchozích místech... 37 Dynamcá úloha s více obchodním cestujícím v něola výchozích místech... 40 Rozvozní úloha s jedním vozdlem... 42 Rozvozní úloha s dělenou dodávou... 47 Obsah přloženého CD... 52 TERMIOLOGICKÝ SLOVÍK...53 POUŽITÁ LITERATURA...55
. Úvod V posledních letech byl zaznamenán obrovsý poro v oblast omunace a nformačních technologí. Jedná se především o stále šrší používání nternetových služeb, rozvoj sítí moblních operátorů, využtí sateltních systémů apod. Současně s tím vznají vyšší nároy na pružnější reac frem zajšťujících logstcé služby svozu a rozvozu zboží, materálu č ldí, frem posytujících urýrní č opravárensé služby, aj. Úspěšnost a atratvta frmy pro její záazníy se v dnešní době odvíjejí nejen od ceny č valty nabízených služeb, ale především od schopnost flexblně reagovat na záazníovy požadavy. Dstrbuční úlohy, teré jsou řešeny použtím standardních modelů a metod operačního výzumu, používají tzv. statcý přístup. Informace o všech záaznících a jejch požadavcích jsou známy předem, tj. před tím, než je úloha předána analytům nalezení optmálního řešení. Může se jednat o determnstcé č stochastcé nformace. V reálných stuacích vša frma musí reagovat na požadavy, teré přcházejí až po nalezení optmálního řešení, v případě oružních a rozvozních úloh optmálních tras. Předmětem tzv. dynamcého přístupu se stává rozhodnutí o tom, dy a do (v případě použtí více vozdel) nově vznlý požadave obslouží. Vzhledem tomu, že většna podobných úloh patří do celočíselného, resp. bvalentního programování, naráží analyt na problém s výpočetním časem, terý má dspozc pro nalezení optmálního řešení. Statcé oružní a rozvozní problémy patří do supny P-obtížných úloh (Pelán, 200), a tudíž mez tyto úlohy patří jejch dynamcé rozšíření. S rostoucím počtem záazníů a omezení, terá je v problému nutné respetovat, narůstá výpočetní čas neúměrně pratcým požadavům na rychlou reac frmy. Proto se v úlohách tohoto typu často používají heurstcé a metaheurstcé postupy posytující řešení, teré je z hledsa zadaného rtéra velce blízé optmálnímu řešení, a mající tu výhodu, že taové řešení posytují v podstatě oamžtě, resp. s přípustným zpožděním po vznu nového požadavu. V běžné prax jsou analytc č řeštelé zastoupen dspečery, teří nalezení výhodnějšího řešení využívají navržených postupů v podobě specálních výpočetních systémů. Tato práce je zaměřena na vybranou část dstrbučních úloh a jejch dynamcé rozšíření, přčemž za zálad bere úlohu obchodního cestujícího v mnoha varacích. a tyto úlohy pa navazují rozvozní úlohy, ve terých je nutné respetovat apactu vozdla, resp. 8
. Úvod vozdel. Ve všech typech uvažovaných úloh jde především o formulac matematcého modelu, nol o nalezení nejlepší č nejvhodnější metody pro vyřešení problému. Proto je v prác u aždé úlohy formulován optmální algortmus, resp. optmalzační matematcý model, vedle terého je uveden heurstcý postup v podobě vládacího algortmu jao poměrně jednoduché východso pro aplac modelů v reálné prax. Uvedené modely byly ověřeny na generovaných příladech za použtí optmalzačního systému LIGO, verze 9.0 a aplace MS Offce Excel 2003. U jednodušších modelů bylo pro úlohy vytvořeno užvatelsé rozhraní spolu s grafcým výstupem řešení, tj. grafem znázorňujícím trasy č jejch dynamcé změny. K tomuto účelu bylo využto modulu VBA v MS Excel. Cílem práce není v žádném případě vytvořt ompatní výpočetní systém zahrnující vešeré úlohy uvedené v prác; jde spíše o naznačení směru, terým by se mohla ubírat práce zušeného programátora. Druhá aptola práce je úvodem do problematy oružních a rozvozních úloh, přčemž jsou defnovány pojmy statcá a dynamcá úloha. Čtenář je předložen stručný přehled lteratury týající se zoumaných dstrbučních úloh. Třetí aptola je věnována standardní úloze obchodního cestujícího a jejímu dynamcému rozšíření. V této část jsou formulovány úlohy bez časových oen s časovým ony a případnou penalzací za jejch nedodržení. Specální aplací je úloha obchodního cestujícího s aprorní nformací zahrnující známé pravděpodobnostní rozdělení místa vznu nového požadavu. a závěr aptoly je řešena úloha urýrní služby. Čtvrtá aptola se týá rozšíření úlohy obchodního cestujícího, ve teré je uvažováno více obsluhujících vozdel umístěných v jednom výchozím místě č něola různých stanovštích. Uvedené matematcé modely jsou formulovány s cílem mnmalzovat celovou ujetou vzdálenost nebo obsloužt všechny záazníy v mnmálním čase. V páté aptole jsou analyzovány rozvozní úlohy, v nchž je cílem splnt požadavy záazníů na dovoz č odvoz určtého množství zboží, materálu, odpadu apod. K dspozc je buď jedno nebo něol vozdel o apactě, terá nesmí být přeročena. Zvláštní pozornost je věnována rozvozním úlohám, ve terých je možné rozdělt požadave záaznía mez něol vozdel, což je v dynamcém prostředí velm výhodné. Optmalzační systém LIGO je produtem frmy Lndo Systems Inc. (http://www.lndo.com). 9
. Úvod Šestá aptola obashuje vybrané výpočetní expermenty s modely a metodam pospaným v této prác. Př výpočetně náročnejších expermentech byl pro porovnání se systémem LIGO použt systém XPRESS MP 2, release 2005. Práce je prvním uceleným odborným textem v česém jazyce, terý se zabývá dynamcým pohledem na oružní a rozvozní úlohy v taovém rozsahu a zahrnuje přístup vyhovující potřebám praxe. Text navazuje na práce Brezna (2003) a Janáče (2003), jejchž autoř se dlouhodobě zabývají dstrbučním a logstcým úloham. Cíle předládané práce lze shrnout do následujících bodů:. Podat přehled o záladních typech oružních a rozvozních úloh z pohledu jejch dynamzace a přblížt ta modelový přístup reálným požadavům dstrbučních frem. 2. avrhnout řešení dynamcých dstrbučních úloh v podobě optmalzačních algortmů. Pro účely praxe naznačt možnost řešení úloh pomocí heurstcých metod. 3. Vytvořt zálad softwarového systému pro řešení pratcých aplací pro provádění smulačních expermentů s navrženým modely. 4. aznačt další cesty analýzy dstrbučních úloh. Tuto prác lze brát jao východso pro další odborné texty typu dplomových č dsertačních prací. Jedná se především o vývoj rychlých heurstcých postupů, teré jsou nepostradatelné především v dynamcém prostředí, ve terém čas hraje zřejmě nejdůležtější rol. Ja bylo zmíněno, řada matematcých modelů uvedených v prác není softwarově zpracována v požadované podobě z důvodu vysoých nároů na programátorsou prác. Sestavení doonalého obecného softwarového systému, terý by byl schopen pojmout většnu úloh analyzovaných v prác, není z pratcého hledsa účelné. Tento fat doládá především rozmantost dstrbučních frem a jejch záazníů. Jnou otázou je ovšem vytvoření podobného systému za účelem zvaltnění výuového procesu pro snadnější představu a pochopení poměrně složtých přístupů řešení úloh. Tento zajímavý úol čeá na budoucí autory. 2 XPRESS MP je produtem frmy Dash Optmzaton Inc. (http://www.dashoptmzaton.com). 0
2. Dynamcé rozšíření oružních a rozvozních úloh U statcých oružních a rozvozních úloh předpoládáme, že všechny parametry úlohy jsou dány předem a nelze je během realzace naplánovaných tras měnt. Oprot tomu dynamcé úlohy obsahují ve většně případů množnu parametrů známých do určtého časového oamžu (začátu realzace trasy, resp. tras), nmž postupně přbývají další parametry týající se nově vznlých požadavů. Dynamcé oružní a rozvozní úlohy se staly předmětem výzumu především v posledních letech. Z hledsa pozdějšího zoumání jsou významné především práce Psarafts (988, 995), Powell et al. (995) a Lund et al. (996). a dalším vývoj metod řešících dynamcé rozvozní úlohy se podílel Gendreau and Potvn (998), teří předložl přehled záladních aplací využívajících možnost vznu objednáve on-lne. Gendreau et al. (999) zoumal dynamcou rozvozní úlohu s časovým ony na příladu urýrních služeb, zajšťujících požadavy záazníů, teré je zapotřebí navštívt během časového ona, vyzvednout přpravenou záslu a dovézt na požadované místo, případně do centra, de se zásly shromažďují pro další zpracování, případně hromadný rozvoz (např. služba DHL). Ja bylo uvedeno v úvodu práce, dynamcé oružní a rozvozní úlohy patří do třídy P-obtížných úloh. Pro řešení rozsáhlejších úloh, časově velm náročných, lze použít řadu heurstcých postupů, teré posytují poměrně valtní řešení v aceptovatelném čase. V uvedené prác autorů Gendreau et al. (999) byla použta paralelní metoda tabu search. Pro statcou úlohu popsal tento heurstcý algortmus Badeau et al. (997) a Tallard et al. (997). Montemann et al. (2002) použl na dynamcou rozvozní úlohu metaheurstcý algortmus 2 založený na chování mravenčí olone (tzv. Ant Colony System). V ctované prác autoř aploval algortmus na množnu náhodně vygenerovaných 50 míst v městě Lugano ve Švýcarsu. Gambardella et al. (2003) představl dva softwarové produty vycházející ze zmíněného algortmu. Použtím genetcého algortmu (Genetc Algorthm) a metody založené na prncpu smulovaného žíhání (Smulated Annealng) v rozvozní úloze s časovým ony se zabývají Thangah et al. (994) a Bräysy and Gendreau (2005b). Aplac genetcého algortmu na tento typ úlohy popsují taé Homberger and Gehrng (999), Potvn and Bengo (996) a Ččová (2005). Defnc P-obtížných, resp. P-těžých úloh uvádí Pelán (200). 2 Metaheurstcé algortmy jsou obecné heurstcé postupy aplovatelné na obecný optmalzační problém, zatímco algortmy označované jao heurstcé jsou specální metody formulované pro onrétní úlohu.
2. Dynamcé rozšíření oružních a rozvozních úloh V dnešní době jsou předmětem zájmu alternatvní optmalzační postupy pro řešení časově náročných úloh, založené na metodě větvění a řezů č generování sloupců. Metoda větvení a řezů 3 pro statcou rozvozní úlohu je popsána v prác Bard et al. (2002) a Achuthan et al. (2003). Pro statcou rozvozní úlohu s časovým ony použl metodu generování sloupců 4 Desrochers et al. (992), pro dynamcou úlohu Chen and Xu (2006). a záladě reálných aplací vznla celá řada specálních modelů, teré jsou rozšířením původní dynymcé rozvozní úlohy s časovým ony, jao je napřílad stochastcá rozvozní úloha, tj. rozvozní úloha se stochastcou poptávou, terou rozpracoval Gendreau et al. (996). Stejní autoř taé navrhl další rozšíření metod na stuace, dy lze např. využít dostupné nformace o budoucích požadavcích. Larsen et al. (2004) provedl řadu zajímavých smulačních expermentů pro úlohu obchodního cestujícího s aprorní nformací v podobě pravděpodobnost vznu požadavu v určtém regonu. Další rozsáhlý oruh v oblast oružních úloh tvoří problémy s více obchodním cestujícím, teří obsluhují záazníy z jednoho č něola výchozích míst. Své výpočetní zušenost shrnul Svesta and Hucfeldt (973). V počátcích výzumu se zapsal výrazně Gavsh (976), významná je především pozdější práce autorů Gavsh and Sranth (986), v níž navrhl metodu pro nalezení optmálního řešení pro rozsáhlé výše zmíněné úlohy. Podobně Laporte and obert (980) navrhl pro řešení této úlohy algortmus založený na metodě řezných nadrovn. Pops systému DRIVE 5 založeného na metodě větvení a oceňování 6 podal Savelsbergh and Sol (998). V reálných rozvozních úlohách velm často exstuje možnost rozdělení dodávy záazníov mez něol vozdel, resp. mez více tras. Touto problematou se zabývají Archett et al. (200), Dror and Trudeau (989), Dror et al. (994), Fábry (2005), aj. Metodu tabu search aploval na tuto úlohu Archett et al. (2006). Tato práce ve vztahu vytčeným cílům je oncpována ta, že u aždé úlohy je nejprve uvedena její statcá verze a potom její dynamcé rozšíření, přčemž je laden důraz na logcou návaznost úvah a přehlednost textu. Defnce dynamcých modelů jsou ve většně případů původní, mají vša svůj zálad ve formulacích statcých modelů v ctovaných zdrojích. 3 Branch-and-Cut Algorthm. 4 Column Generaton Algorthm. 5 DRIVE je zratou názvu Dynamc Routng of Independent VEhcles. 6 Metoda větvení a oceňování (Branch-and-Prce Algorthm) využívá metody generování sloupců. 2
3. Dynamcá úloha obchodního cestujícího 3. Standardní úloha obchodního cestujícího Statcá úloha obchodního cestujícího (TSP) předpoládá znalost všech parametrů před započetím optmalzace před samotnou realzací oružní jízdy. Mler-Tucer-Zemlnova formulace matematcého modelu (Pelán, 200) je následující: mnmalzovat n n z = c x, (3.) = j = za podmíne n j= n = x =, =,2,..., n, x =, j =,2,..., n, (3.2) (3.3) u u + nx n, =,2,..., n, j = 2,3,..., n, j, (3.4) j { 0,},, j,2,..., n, x = (3.5) de n je počet míst, terá vozdlo musí projet (včetně výchozího místa označeného ndexem ) a c představuje vzdálenost mez místy a j. Proměnná x je bvalentní proměnná nabývající hodnoty v případě, že vozdlo jede do místa j z místa, resp. hodnoty 0 v opačném případě. Podmíny (3.2) a (3.3) zajšťují, že aždé místo je navštíveno právě jednou. Soustava podmíne (3.4) s proměnným u je opatřením prot vytváření parcálních cylů. V celé dsertační prác budeme z důvodu zjednodušení všech matematcých modelů předpoládat, že proměnné x jsou defnované pro = j. V opačném případě bychom ve všech účelových funcích, omezeních a matematcých výrazech musel přpojt podmínu j. Tento postup by byl jstě oretní, ovšem na úor přehlednost. Úloha obchodního cestujícího je nejjednodušší verzí oružních úloh. Cílem je navštívt aždého záaznía, a to právě jednou, anž bychom se zabýval typem č velostí požadavů jednotlvých záazníů. Z tohoto důvodu není třeba řešt an otázu apacty Travelng Salesman Problem. 3
3. Dynamcá úloha obchodního cestujícího vozdla. Reálným rozšířením úlohy je zavedení časových oen, tedy časového ntervalu, během terého je nutné daného záaznía navštívt a obsloužt. Tyto úlohy budou předmětem analýzy v další část práce. 3.2 Dynamzace úlohy obchodního cestujícího Uvedený statcý model úlohy obchodního cestujícího (3.) - (3.5) předpoládá znalost všech parametrů před započetím oružní jízdy. V průběhu jízdy nelze tyto hodnoty měnt, nelze tudíž an přdávat č ubírat záazníy. aprot tomu v dynamcé úloze obchodního cestujícího (DTSP) 2 může dyol během realzace jízdy přít nový požadave od záaznía nacházejícího se deol v předem ohrančeném území, resp. od ohool z předem známé množny potencálních záazníů. V prax to znamená, že dspečer přme nový požadave a rozhodne o jeho zařazení do předem naplánovaného oruhu, resp. zbývající část oruhu, terou vozdlo ještě musí absolvovat. Zísání a zpracování nformace o nových požadavcích nevyžaduje v podstatě žádné dodatečné nálady, zatímco přínos pro tímto způsobem fungující frmu může být velce významný, a to nejen z hledsa samotného zísání dalších záazníů zařazených do oruhu, ale především z hledsa celové úspěšnost frmy na onurenčním trhu. Fábry (2006) popsuje dva záladní přístupy zařazení nově vznlých požadavů do předem naplánované trasy vozdla. Re-optmalzace Jamle se objeví nový záazní, dspečer jej zařadí mez záazníy, teré vozdlo ještě nenavštívlo, a nalezne optmální trasu. Jedná se o sofstovaný přístup, jehož cílem je najít nejlepší řešení s využtím vešerých nformací, teré má dspečer v daný oamž dspozc. Tato metoda je samozřejmě výhodná vzhledem mnmalzac účelové funce představující celovou ujetou vzdálenost potřebnou obsluze všech zbývajících záazníů. Jestlže je počet záazníů vysoý, naráží dspečer opět na problém s výpočetní náročností úlohy. K podobným problémům může dojít tehdy, bude-l frevence vznu nových požadavů ta vysoá, že častá re-optmalzace povede až úplnému zahlcení systému, dy během dne nebude možné uspoojt všechny požadavy. Tento přístup využl Bell et al. (983), Hll et al. (988), Brown et al. (987), Psarafts et al. (980, 983), Powell et al. (988), Dal (995) a další. 2 Dynamc Travelng Salesman Problem. 4
3. Dynamcá úloha obchodního cestujícího Vládací algortmus Poud přde nový požadave, záazní je zařazen do plánované trasy mez dva po sobě následující záazníy, teří mají být vozdlem na trase navštíven. Pro nalezení nejvhodnější dvojce záazníů lze použít jao rtérum hodnotu prodloužení stávající trasy po zařazení nového záaznía, terá se bude mnmalzovat: z = c + + + cn, c,, (3.6), n l l de a jsou ndexy všech bezprostředně po sobě následujících záazníů, teré má vozdlo l navštívt podle plánované trasy, a n + je ndex nového záaznía. Vládací algortmus je heurstcou metodou, terá nemusí posytovat optmální řešení. a obr. 3. a 3.2 je uveden přílad vložení záaznía č. 9 do trasy mez záazníy č. 3 a 5. 8 8 7 7 9 5 3 9 5 3 Obr. 3. Vzn nového požadavu Obr. 3.2 Vložení nového požadavu Vzhledem tomu, že je možné určt na trase místo, am má být nový záazní vložen, pratcy oamžtě př větším počtu záazníů, lze tento postup aplovat především v těch stuacích, v nchž hraje významnou rol čas a frma se musí rozhodnout hned po přetí nového požadavu (Lund et al., 996). Vládání záazníů je výhodné zejména př vysoé frevenc vznu nových požadavů, ovšem pouze z hledsa času nutného pro nalezení nové trasy, nolv vša jž z hledsa jejího celového prodloužení. Z tohoto důvodu je vhodné v prax ombnovat oba přístupy, tj. po určté době, během níž se něolrát aploval vládací algortmus, se provede re-optmalzace trasy. Další možností je aplovat re-optmalzační algortmus na množnu něola nových požadavů, anž by se pro aždého z nch prováděl vládací algortmus. Použtí metod, případně jejch ombnace, závsí na charateru onrétní frmy. Jednotlvé přístupy lze samozřejmě měnt během dne podle výyvů frevence vznu nových požadavů. 5
3. Dynamcá úloha obchodního cestujícího Uvedené metody předpoládají dynamcý, navíc stochastcý charater vznu požadavů, neuvažují vša možnost předpovídat vlastnost požadavu na záladě pravděpodobnost jeho vznu z hledsa časového an prostorového. Touto otázou se zabývá část 3.3.4. 3.2. Re-optmalzace dynamcé úlohy obchodního cestujícího Ja bylo uvedeno v předchozí část, re-optmalzace trasy spočívá v nalezení optmálního řešení úlohy, ve terém vozdlo po přetí nového požadavu obslouží všechny dosud nenavštívené záazníy a ujede přtom nejratší vzdálenost. V tomto případě se jž nejedná o lascou úlohu obchodního cestujícího, neboť cílem není nalézt nejratší oruh, ale nejratší cestu ze stávajícího uzlu do výchozího uzlu č. taovou, na níž bude aždý záazní navštíven právě jednou. Matematcý model této úlohy lze pa formulovat následujícím způsobem: mnmalzovat z = c x, (3.7) U j U za podmíne x j U j jnext U x =, U =, j U { }, { j }, next (3.8) (3.9) u { j },, u + U. x U, U, j U j (3.0) j next x {,},, j U, (3.) 0 de U je množna míst, terá musí vozdlo ještě navštívt 3, U je jejch počet. Index jnext U odpovídá místu, němuž vozdlo směřuje v oamžu přetí nového požadavu, a teré se ta stává výchozím místem pro následující trasu 4. Pro řešení této úlohy lze použít modfovaný matematcý model TSP: mnmalzovat z = c x, (3.2) U j U 3 Jao poslední bude navštíveno výchozí místo, tj. uzel č.. 4 Předpoládáme, že re-optmalzace bude doončena dříve než bude obsloužen tento záazní. V opačném případě by výchozím místem pro novou trasu byl až záazní bezprostředně následující po j next v původní trase. 6
3. Dynamcá úloha obchodního cestujícího za podmíne x j U U x =, U, =, j U, (3.3) (3.4) u { },, u + U. x U, U, j U j (3.5) j x j next =, (3.6) x {,},, j U. (3.7) 0 Tento model předpoládá, že v původní matc vzdáleností se provede změna vzdálenost c j next mez výchozím místem č. a záazníem j next, e terému vozdlo právě směřuje, na hodnotu odpovídající délce dosud absolvované trasy 5 z výchozího místa do místa j next. a stuac popsanou uvedeným modelem lze pohlížet ta, že se hledá nejratší oruh z výchozího místa přes všechny dosud nenavštívené záazníy, přčemž vozdlo jede zdánlvě z výchozího místa č. do místa j next, což zaručuje podmína (3.6). Je zapotřebí s uvědomt, že tato změna je provedena jen pro účely výpočtu, nol pro samotnou realzac trasy vozdla, teré ve sutečnost nejede do místa j next z výchozího místa, ale z místa, teré navštívlo jao poslední. V účelové func (3.2) je zahrnuta onstanta samotnou optmalzac. c jnext, což nemá samozřejmě vlv na Přílad 3. Tabula 3. obsahuje vygenerované artézsé souřadnce [X, Y] výchozího místa (č. ) a šest záazníů (č. 2-7). Hodnoty jsou uvedeny v lometrech. Požadavy záazníů v místech č. 2-6 byly známé předem, požadave posledního záaznía v místě č. 7 přšel v oamžu, v němž jž bylo obsluhující vozdlo na trase. Tabula 3.2 obsahuje euldovsé vzdálenost c mez aždou dvojcí míst, j. ejprve řešíme statcý model úlohy obchodního cestujícího TSP (3.) - (3.5) pro všechny předem známé požadavy. Pro optmalzac byl použt program LIGO; model zapsaný v tomto systému je uveden v příloze č.. Optmální trasa, jejíž déla ční přblžně 223,49 m, je znázorněna na obr. 3.3. 5 V této trase je zahrnutý záazní j next. 7
3. Dynamcá úloha obchodního cestujícího Místo X Y 46 39 2 24 70 3 70 4 4 3 66 5 96 23 6 54 5 7 84 40 Tab. 3. Generovaná úloha DTSP c 2 3 4 5 6 7 0 38,0 42,44 42,64 52,50 34,93 38,0 2 38,0 0 80,45,70 85,98 7,59 67,08 3 42,44 80,45 0 84,22 32,20 6,03 38,63 4 42,64,70 84,22 0 93,48 73,50 75,6 5 52,50 85,98 32,20 93,48 0 45,69 20,8 6 34,93 7,59 6,03 73,50 45,69 0 46,0 7 38,0 67,08 38,63 75,6 20,8 46,0 0 Tab. 3.2 Symetrcá matce vzdáleností 6 (v m) 80 70 60 4 2 50 40 30 7 20 5 0 6 3 0 0 0 20 30 40 50 60 70 80 90 00 Obr. 3.3 Optmální řešení statcého modelu TSP Pro zařazení nového záaznía v místě č. 7 do stávající trasy je rozhodující, ve terém oamžu jeho požadave přchází. Předpoládejme, že obsluhující vozdlo se právě nachází mez místy č. 2 a 5. Množna míst, terá mají být vozdlem ještě navštívena, je 6 Hodnoty jsou zaorouhleny na dvě desetnná místa. 8
{,3,5,6,7 } 3. Dynamcá úloha obchodního cestujícího U =, tj. U = 5. ež dojede vozdlo do místa č. 5, je vypočtena optmální trasa začínající v tomto místě a ončící ve výchozím místě č.. Trasa vede postupně přes místa č. 7, 3 a 6, ja je patrné z obr. 3.4. Déla této trasy ční cca 0,39 m, déla trasy -4-2-5 je cca 40,33 m, vozdlo tedy ujede celem přblžně 250,72 m. 80 70 60 4 2 trasa před přetím nového požadavu trasa po přetí nového požadavu 50 40 30 7 20 5 0 6 3 0 0 0 20 30 40 50 60 70 80 90 00 Obr. 3.4 Re-optmalzace trasy po přetí požadavu záaznía v místě č. 7 Záps modelu (3.7) (3.) v systému LIGO pro tento přílad obsahuje příloha č. 2. Pro zajímavost uveďme ještě dva přílady. Přílad 3.2 Poud by dspečer znal požadave záaznía před výjezdem vozdla z výchozího místa č., úloha by byla řešena za použtí statcého modelu. Déla optmální trasy -4-2-7-5-3-6- je přblžně 225,40 m, tj. trasa je o více než 25 m ratší než v příladě 3.. Stejný výslede obdržíme, přde-l nový požadave v oamžu, dy je jž vozdlo na trase, ale dosud nenavštívlo záaznía v místě č. 2. Přílad 3.3 Poud by nový požadave přšel pozděj než př přejezdu vozdla z místa č. 2 do místa č. 5, dojde patrně dalšímu prodloužení trasy. Lze se o tom snadno přesvědčt, poud budeme předpoládat příchod požadavu v oamžu, dy vozdlo bude na cestě z místa č. 5 do místa č. 3. Trasa -4-2-5-3 má délu cca 72,53 m, trasa 3-6-7- délu cca 0,4 m, celová ujetá vzdálenost je pa přblžně 272,67 m. 9
3. Dynamcá úloha obchodního cestujícího Z uvedených příladů vyplývá, že je výhodné znát co nejvíce požadavů před započetím jízdy, případně co nejdříve po začátu jízdy. Re-optmalzace trasy je v tomto případě vysoce efetvní a vede výraznému zrácení trasy. 3.2.2 Vládací algortmus pro dynamcou úlohu obchodního cestujícího Př vysoém počtu záazníů, resp. vysoé frevenc vznu nových požadavů, je z hledsa reálného času pratcy nemožné opaovaně aplovat re-optmalzační algortmus popsaný v předchozí část. V reálných stuacích zřejmě postačí jednodušší a časově nenáročný heurstcý algortmus vládání nových požadavů mez nejvhodnější dvojc záazníů, pro terou nabývá výraz (3.6) svého mnma. echť U {,..., } = je posloupnost m míst 7 ( = ), terá mají být vozdlem ještě, 2 m navštívena podle naplánované trasy. Označíme-l záaznía s novým požadavem ndexem r U, hodnotu prodloužení stávající trasy po jeho vložení mez místa a + lze určt jao z = c r + cr c, =,2,...,. (3.8),, m + +, Cílem je nalézt taový ndex t, pro terý platí: m z t = mn z. (3.9) =,2,..., m ový záazní r bude navštíven bezprostředně po záazníov t před záazníem t +. Přílad 3.4 Uvažujme stejnou stuac jao v příladě 3., tj. příchod nového požadavu záaznía č. 7 v oamžu, dy vozdlo jede po optmální trase z místa č. 2 do č. 5 (vz obr. 3.3). Pro posloupnost = { 5,3,6, } U vytvoříme následující tabulu: c +, 7 c 7, + c, + 5 3 20,8 38,63 32,20 27,23 3 6 38,63 46,0 6,03 68,69 6 46,0 38,0 34,93 49,8 Tab. 3.3 Prodloužení stávající trasy (v m) z 7 Tato posloupnost může tvořt původní optmální trasu stanovenou před zahájením jízdy vozdla, případně trasu, terá byla určena z této optmální trasy postupným vládáním něola nových požadavů. 20
3. Dynamcá úloha obchodního cestujícího Z posledního sloupce tabuly vyplývá, že t =, tj. nový záazní bude vložen do stávající trasy mez záazníy č. 5 a 3. Výslede je shodný s optmálním řešením zísaným re-optmalzací (vz obr. 3.4); prodloužení trasy oprot řešení bez záaznía č. 7 ční přblžně 27,23 m. Z uvedených příladů je zcela zřejmé, že v oružních úlohách, a především pa v úlohách dynamcých, hraje významnou rol čas. Jedná se především o oamžy příchodu nových požadavů, ale taé o časová ona, o terá pozděj rozšíříme jednoduché rozvozní úlohy. 3.2.3 Oamžy příchodu nových požadavů v dynamcé úloze obchodního cestujícího Pro řešení úlohy DTSP je důležté, dy a ja často vznají nové požadavy. V příladech uvedených v předchozích částech jsme předpoládal příchod jedného nového požadavu, a to v oamžu, dy se vozdlo nacházelo v určtém místě trasy. V reálných stuacích se ovšem jedná většnou o náhodný příchod něola po sobě následujících požadavů. Abychom byl schopn určt místo, de se vozdlo nachází v oamžu, dy zavolá nový záazní, musíme znát romě vzdáleností mez všem místy rychlost vozdla. Pro zjednodušení budeme předpoládat onstantní, resp. průměrnou rychlost vozdla 60 m.h -. Parametr c představující vzdálenost (v lometrech) mez místy a j se ta stává zároveň časovým parametrem znamenajícím dobu (v mnutách), za terou se vozdlo přesune z místa do místa j. Zavedeme další zjednodušení problému týající se doby obsluhy záaznía. Bez újmy na obecnost budeme pro všechny záazníy považovat tuto dobu za nulovou 8. V oamžu přetí nového požadavu rozdělují Ichoua et al. (2000) trasu vozdla na tř záladní část (obr. 3.5): Doončená část Jedná se o záazníy, teří jž byl vozdlem obsloužen. a obr. 3.5 tato část začíná výchozím místem č. a ončí posledním navštíveným záazníem č. 3. 8 Model s nenulovou dobou obsluhy bude uveden pozděj u úlohy obchodního cestujícího s časovým ony. 2
3. Dynamcá úloha obchodního cestujícího Právě absolvovaná část Tento úse trasy odpovídá přejezdu mez posledním navštíveným záazníem č. 3 a bezprostředně následujícím záazníem č. 2. Exstují různé stratege pro chování vozdla v této část trasy. Budeme předpoládat, že vozdlo v aždém případě doončí naplánovanou cestu bezprostředně následujícímu záazníov 9. Plánovaná část Předtím, než vozdlo dojede bezprostředně následujícímu záazníov č. 2, zařadí se nový záazní č. 7 mez všechny dosud nenavštívené záazníy a určí se nová trasa 0, terá začíná u záaznía č. 2 a ončí ve výchozím místě č.. 3 4 2 6 doončená část právě absolvovaná část plánovaná část 7 5 Obr. 3.5 Trasa v oamžu zařazení nového požadavu Dspečersá služba přímající ve frmě nové požadavy a řídící pohyb vozdla pracuje během dne způsobem, terý lze popsat následujícím algortmem:. ro Optmalzace trasy pro všechny předem známé požadavy Předpoládáme znalost matce vzdáleností mez všem místy představovaným výchozím místem a známým záazníy. Dspečer řeší standardní úlohu obchodního cestujícího (3.) - (3.5); výsledem je optmální trasa, terá začíná a ončí ve výchozím místě č.. Označme počet známých míst (včetně výchozího místa) jao n Z. Délu výsledné trasy pa můžeme zapsat jao T Z n = Z nz = j= c x. (3.20) 9 Tento předpolad znamená, že se vozdlo neodloní z plánované trasy, aby obsloužlo právě vznlý požadave, dyby se nacházel velce blízo trasy nebo doonce přímo na trase. 0 Tuto trasu lze určt např. pomocí re-optmalzace nebo vládacího algortmu. V případě velého počtu záazníů můžeme použít místo optmalzačního algortmu něterou heurstcou metodu, např. výše popsaný vládací algortmus. 22
3. Dynamcá úloha obchodního cestujícího Protože c představuje nejen vzdálenost mez místy a j, ale podle předpoladu o rychlost vozdla dobu potřebnou jeho přejezdu z místa do místa j, udává hodnota (3.20) zároveň dobu (v mnutách), za terou vozdlo obslouží všechny záazníy a vrátí se zpět do výchozího místa. V reálné stuac by měl dspečer porovnat tuto hodnotu s délou pracovní doby T PD a v případě jejího přeročení rozhodnout o změně např. odmítnutí něterých záazníů č odsunutí jejch obsluhy na další den, přdání dalšího vozdla 2 apod. 2. ro Zahájení obsluhy záazníů podle naplánované trasy Dspečersá služba dá poyn výjezdu vozdla z výchozího místa prvnímu záazníov na trase. Ve stejném oamžu nastaví celovou dobu trvání na T = 0. 3. ro astává jedna ze tří možných stuací 3 : (a) Vozdlo dorazí záazníov. K dosavadní celové době jízdy T přčteme dobu přejezdu vozdla z předešlého místa danému záazníov. Protože podle zjednodušujícího předpoladu neuvažujeme žádné zdržení vozdla u záaznía, tj. doba trvání jeho obsluhy je nulová, vozdlo oamžtě odjíždí dalšímu záazníov na trase. (b) Objeví se nový záazní se svým požadavem. Dspečer zařadí záaznía do seznamu dosud nenavštívených záazníů a provede naplánování trasy řešením modelu (3.7) - (3.), resp. (3.2) (3.7) nebo na záladě mnmalzace výrazu (3.8). Tato trasa začíná u záaznía, e terému vozdlo právě směřuje 4. Jestlže je součet dély této trasy a celové dély dosavadní trasy T nžší než je déla pracovní doby T PD, pa je nový požadave přat a trasa je upravena podle provedeného výpočtu. V opačném případě dspečer záaznía odmítne, případně jeho požadave po dohodě s ním odloží na následující pracovní den. (c) Vozdlo dorazí do výchozího místa. Požadavy všech záazníů byly uspoojeny, vozdlo absolvovalo celou naplánovanou trasu. K dosavadní celové době trvání trasy T přčteme dobu přejezdu vozdla 2 Stuace s více vozdly zajšťujícím obsluhu záazníů budou řešeny v další část práce. 3 Stuace (a) a (b), resp. (b) a (c) mohou ve zcela výjmečných případech nastat současně. 4 Poud by vozdlo dorazlo záazníov, němuž právě jede, dříve než za dobu nutnou doončení výpočtu, může vozdlo u právě obslouženého záaznía počat na určení trasy, případně navštívt dalšího záaznía podle předem naplánované trasy a výpočet další trasy provést až od tohoto záaznía. Tyto stuace zde vša uvažovat nebudeme, tj. předpoládáme, že novou trasu je možné určt oamžtě. 23
3. Dynamcá úloha obchodního cestujícího od posledního záaznía do výchozího místa. Vozdlo pa čeá nevyužto na další požadavy, přčemž se hodnota T postupně zvyšuje o délu čeání. V případě, že přde další požadave od nového záaznía označeného ndexem r, dspečer posoudí, zda jej vozdlo sthne obsloužt do once pracovní doby. Poud T + c r + cr TPD, (3.2) de T je atuální hodnota uplynulého času od začátu pracovního dne, T PD je déla pracovní doby, c r a r c jsou vzdálenost z výchozího místa novému záazníov a zpět, resp. doba potřebná pro obsluhu tohoto záaznía, pa dspečer vydá poyn obsluze nového záaznía. V opačném případě je záazní odmítnut č jeho obsluha odsunuta na následující pracovní den a vozdlo čeá ve výchozím místě na dalšího nového záaznía, jehož obsluhu by bylo ještě možné zajstt do once pracovní doby, tj. pro nějž by byla splněna nerovnost (3.2). Opaujeme 3. ro ta dlouho, doud nesončí pracovní doba. Jným slovy, poud se dspečer rozhoduje podle uvedeného algortmu, nemůže nastat jný případ než ten, že pracovní doba sončí ve chvíl, dy je vozdlo zpět ve výchozím místě, v deálním případě přesně ve chvíl, dy do výchozího místa dorazí. 3.3 Dynamcá úloha obchodního cestujícího s časovým ony Klascá úloha obchodního cestujícího s časovým ony (TSPTW) 5 předpoládá podobně jao TSP znalost všech požadavů před zahájením jízdy. Pro aždého záaznía je navíc defnován časový nterval, ve terém má být realzována jeho obsluha. Opět se jedná o standardní optmalzační oružní úlohu, ve teré je cílem určt pořadí, v němž budou místa navštívena ta, aby byly splněny požadavy záazníů a nálady 6 spojené s rozvozem, resp. se svozem, byly mnmální. V dynamcé úloze obchodního cestujícího s časovým ony (DTSPTW) 7, na rozdíl od statcé úlohy, jsou něteré požadavy známy předem, zatímco další požadavy se objevují až př samotné realzac oružní jízdy. Frma, terá obsluhu záazníů zajšťuje, musí dynamcy reagovat na on-lne požadavy nových záazníů. Jednou ze zajímavých reálných aplací je svoz noční pošty č zásle od pravdelných záazníů, nmž se během noc náhodně přdávají další záazníc. Jao další aplace úlohy DTSPTW lze uvést 5 Travelng Salesman Problem wth Tme Wndows. 6 V našem případě celová ujetá vzdálenost č celový čas nutný pro realzac oružní jízdy. 7 Dynamc Travelng Salesman Problem wth Tme Wndows. 24
3. Dynamcá úloha obchodního cestujícího taxslužbu, zajšťování servsních služeb jao jsou opravy telefonních stanc, nstalatérsé, eletrářsé a topenářsé práce apod. 3.3. Statcá úloha obchodního cestujícího s časovým ony ejprve uvedeme formulac matematcého modelu úlohy TSPTW, ve teré jsou všchn záazníc znám předem. Časové ono u -tého záaznía je defnované ntervalem mez nejdříve možným začátem obsluhy e a nejpozděj přípustným začátem obsluhy l. Oamž, ve terém začne reálná obsluha -tého záaznía, označíme omezení τ τ. Předpoládejme e, teré znamená, že obsluha -tého záaznía nesmí začít před nejdříve možným termínem zahájení obsluhy. Poud přede vozdlo záazníov před nejdříve možným začátem, musí čeat až do tohoto termínu. Poud vozdlo nesthne přet do nejpozděj přípustného termínu, tj. poud τ > l, pa vzná penále, tj. nálady spojené s nedodržením záazníova požadavu. Tato omezení jsou v lteratuře často označována jao soft, tedy slabá omezení (Gendreau et al., 999). ěteré reálné aplace vša nepřpouštějí možnost obsluhy mmo nterval představující časové ono a pro všechny záazníy musí tudíž platt e τ l. Taová omezení se pa označují jao hard, tj. slná omezení. V následujícím matematcém modelu opět pro jednoduchost předpoládáme, bez újmy na obecnost, nulovou dobu obsluhy všech záazníů (Fábry, 2006): mnmalzovat za podmíne z = n n = j= c x, (3.22) n j= n = x =, =,2,..., n, x =, j =,2,..., n, (3.23) (3.24) e τ l, 2,3,..., n, (3.25) = τ + t M ( x ) τ, =,2,..., n, j = 2,3,..., n, j, (3.26) j τ = 0, (3.27) τ 0, 2,3,..., n, (3.28) = { 0,},, j,2,..., n, x = (3.29) 25
3. Dynamcá úloha obchodního cestujícího de n je počet míst, terá vozdlo musí projet (včetně výchozího místa označeného č. ), c představuje vzdálenost mez místy a j, t dobu přejezdu mez místy a j. Hodnoty e a l představují nejdříve možný a nejpozděj přípustný termín obsluhy záaznía, M představuje vysoou onstantu. Proměnná x je bvalentní proměnná nabývající hodnoty v případě, že vozdlo jede z místa přímo do místa j, hodnoty 0 v opačném případě. Proměnná τ udává oamž, ve terém vozdlo navštíví místo. Účelová funce (3.22) a podmíny (3.23) - (3.24) mají stejný význam jao v modelu standardní úlohy obchodního cestujícího TSP. Podmíny (3.25) stanovují, aby záazníc byl obsloužen uvntř časového ona. Omezení (3.26) zajšťují, že časový nterval mez návštěvou záaznía j bezprostředně po záazníov má mnmálně hodnotu t. Poud vozdlo nepojede od záaznía záazníov j, pa díy vysoé onstantě M je tato nerovnost vždy splněna. Desrosers et al. (995) uvádějí tyto podmíny taé v následující podobě: x ( τ + t τ ) 0, =,2,..., n, j = 2,3,..., n, j. (3.26a) j Je zřejmé, že tato omezení jsou nelneární a pro pratcé využtí tudíž vyhovují lépe původní omezení (3.26). Rovnce (3.27) defnuje nulový oamž výjezdu vozdla z výchozího místa. echť vozdlo po doončení obsluhy záaznía má podle naplánované trasy odjet záazníov j. Vzhledem tomu, že vozdlo musí respetovat časové ono záaznía j, exstují dvě stratege čeání vozdla u záazníů: ) Vozdlo odjede záazníov j bezprostředně po doončení obsluhy záaznía. Poud přede záazníov j před otevřením časového ona, bude čeat do oamžu e j. 2) Vozdlo zůstane u záaznía a záazníov j odjede v taovém oamžu, aby němu dorazlo přesně ve chvíl otevření jeho časového ona, tj. vyjede v oamžu e j t. Výhoda této stratege spočívá v tom, že během čeání vozdla může přít další požadave, terý ovlvní dříve naplánovanou trasu, tj. vozdlo nepojede z místa záazníov j, ale jnému záazníov ta, aby zbývající trasa byla optmální. 26
3. Dynamcá úloha obchodního cestujícího 3.3.. Úloha s čeáním vozdla u záaznía před jeho obsluhou Přmeme-l jž dříve uvedený předpolad o průměrné rychlost vozdla 60 m.h -, pa c = t (, j =,2,..., n) 8. Zavedeme-l proměnné W j 0 ( j = 2,3,..., n) představující dobu čeání vozdla před obsluhou záaznía j, pa účelovou func (3.22) lze přepsat do tvaru: mnmalzovat z = n n t = j= x + n j= 2 W j. (3.22a) Cílem je najít oruh s mnmální celovou dobou trvání. Místo soustavy nerovností (3.26) je v modelu zapotřebí uvést soustavu rovnc: τ + t M ( x ) + W + v = τ, =,2,..., n, j = 2,3,..., n, j. (3.26b) j j Proměnné v musí respetovat následující omezení: 0 v 2M ( x ), =,2,..., n, j = 2,3,..., n, j. (3.30) Poud vozdlo jede z místa do místa j ( x = ), pa nutně musí platt v = 0. V opačném případě ( x = 0) proměnná v funguje jao pomocná proměnná zajšťující přípustnost řešení vzhledem časovému rozvrhu. V případě, že by v rovncích (3.26b) tyto proměnné nebyly zavedeny, nebylo by možné zajstt splnění všech uvedených rovnc zároveň. Pro úplnost ještě uveďme upravený model, ve terém je romě údajů o časovém oně u aždého záaznía navíc zadaný údaj o délce obsluhy S 0 ( = 2,3,..., n). Předpoládáme, že časové ono je defnováno jao časový nterval, ve terém musí obsluha začít. Obsluha záaznía tudíž může sončt až po nejpozděj přípustném začátu obsluhy l 9. V účelové func se tato změna projeví pouze v podobě onstanty udávající celovou dobu, terou vozdlo stráví obsluhou všech záazníů 20 : mnmalzovat z = n n t = j= x + n = 2 S + n j= 2 W j. (3.22b) 8 Časové vzdálenost jsou potom uvedeny v mnutách. 9 Úloha může být defnována ta, že l představuje nejpozděj přípustný onec obsluhy, nol její nejpozděj přípustný začáte. Pa je ovšem nutné změnt č přdat něterá omezení. 20 Tato onstanta nemá vlv na samotnou optmalzac, pouze na hodnotu účelové funce, tj. celovou dobu jízdy vozdla. Model se ovšem může zomplovat v stuac, dy doba trvání obsluhy není určena determnstcy, ale je hodnotou náhodné velčny, např. př opravě plynového sporáu č lednčy, dy není předem znám typ a rozsah závady. Taové úlohy vša v této prác uvažovat nebudeme. 27
3. Dynamcá úloha obchodního cestujícího Omezení (3.26b) představující časový rozvrh jízdy vozdla mez záazníy se pa změní následujícím způsobem: τ + S + t M ( x ) + W + v = τ, =,2,..., n, j = 2,3,..., n, j, (3.26c) přčemž je defnováno S 0 a platí omezující podmíny (3.30). = j 3.3..2 Úloha s čeáním vozdla u právě obslouženého záaznía j Ja bylo uvedeno dříve, může být z hledsa optmalzace trasy pro vozdlo výhodné po doončení obsluhy záaznía u něj setrvat a odjet následujícímu záazníov j až po určté době ta, aby byl tento záazní navštíven přesně v oamžu otevření jeho časového ona, tj. v oamžu nejdříve možného zahájení obsluhy e j. V případě nenulové doby obsluhy lze pa účelovou func, podobně jao v předchozí část, zapsat jao mnmalzovat z = n n t = j= x + n = W + n j= 2 S j, (3.22c) de proměnné W 0 ( = 2,3,..., n) představují dobu čeání vozdla po doončení obsluhy záaznía před jeho odjezdem dalšímu záazníov, resp. zpět do výchozího místa. Hodnota proměnné W odpovídá době, po terou bude vozdlo čeat ve výchozím místě před tím než vyjede na trasu. Rovnce (3.26c) pa nahradí následující soustava rovnc: τ + W + S + t M ( x ) + v = τ, =,2,..., n, j = 2,3,..., n, j. (3.26d) j Obě stratege dávají evdentně stejný výslede z hledsa optmální doby, po terou je vozdlo na trase, a posytují stejnou posloupnost navštívených míst. Řešení se ovšem lší v hodnotách a nterpretac dob čeání v jednotlvých místech W, resp. W. Ja lze uázat na jednoduchém příladě, druhá stratege, dy vozdlo čeá u právě obslouženého záaznía, může být výhodnější v případě dynamcé úlohy obchodního cestujícího s časovým ony, terá bude předmětem následující část. Přílad 3.5 Uvažujme výchozí místo č. a známé záazníy č. 2-5. Optmální trasa -2-3-5-4- je znázorněna na obr. 3.6. 28
3. Dynamcá úloha obchodního cestujícího 2 3 5 4 Obr. 3.6 Optmální trasa Poud vozdlo používá první strateg, odjíždí od aždého záaznía hned po doončení jeho obsluhy následujícímu záazníov, u něhož případně čeá na otevření časového ona. Této strateg odpovídá obr. 3.7. Požadave nového záaznía č. 6 může vznnout v oamžu, dy - vozdlo přejíždí od záaznía č. 3 záazníov č. 5, - vozdlo čeá u záaznía č. 5 na otevření jeho časového ona, - probíhá obsluha záaznía č. 5. ový záazní je zařazen do trasy za záaznía č. 5. Př použtí druhé stratege (obr. 3.8) vozdlo čeá u záaznía č. 3 a odjíždí v taovém oamžu, aby přel záazníov č. 5 přesně ve chvíl otevření jeho časového ona. Poud tedy vznne požadave nového záaznía č. 6 po doončení obsluhy záaznía č. 3 během čeání vozdla u tohoto záaznía, má vozdlo možnost změnt dříve naplánovanou trasu ještě před tím, než odjede záazníov č. 5. Jestlže budou splněny všechny omezující podmíny, bude nový záazní navštíven ještě před obsloužením záaznía č. 5, čímž zísáme lepší řešení než v případě první stratege. 2 6 4 2 6 4 3 5 3 5 Obr. 3.7 Čeání u záaznía č. 5 před jeho obsloužením Obr. 3.8 Čeání u záaznía č. 3 po jeho obsloužení 29
3. Dynamcá úloha obchodního cestujícího Uvedený přílad uazuje, že může být výhodné čeat u obsloužených záazníů, zda nevznne nový požadave, a upravt pa co nejdříve zbývající část trasy 2. 3.3.2 Dynamcá úloha obchodního cestujícího s časovým ony Ja bylo naznačeno v předešlé část textu, v úloze s časovým ony často neznáme všechny záazníy před zahájením jízdy vozdla. Další požadavy přcházejí od nových záazníů postupně během jízdy vozdla; dspečer musí, poud je to možné, nově vznlé požadavy zařadt do zbývající část trasy. Celý proces zpracování požadavů záazníů lze opět rozdělt do tří následujících roů: - Optmalzace trasy pro všechny předem známé požadavy. - Zahájení obsluhy záazníů podle naplánované trasy. - Zaomponování nových požadavů do plánované trasy, případně jejch odmítnutí. Podívejme se na jednotlvé roy podrobně, přčemž pro zjednodušení úvah budeme opět předpoládat nulovou dobu obsluhy u všech záazníů 22. Označíme-l počet známých míst (včetně výchozího místa) jao n Z, pa celová doba jízdy vozdla je dána účelovou funcí mnmalzovat T Z = nz nz n Z t = j= x + j= 2 W j. (3.3) Př mnmalzac této funce je nutné respetovat omezující podmíny (3.23) (3.25), (3.26b) a (3.27) (3.30), v nchž místo hodnoty n je použta hodnota n Z. Reálným výsledem optmalzace je trasa, tj. posloupnost záazníů, teré má vozdlo postupně navštívt, dále pa čas, ve terém vozdlo dojede určtému záazníov, a oamž, ve terém má začít jeho obsluha, resp. v našem případě oamž, ve terém se usuteční obsluha nulové dély. U aždého záaznía mohou nastat dvě stuace: ) Vozdlo dojede záazníov j před nejdříve možným začátem obsluhy e j. V taovém případě vozdlo čeá na zahájení obsluhy dobu W > 0. j 2 Předpoladem tohoto lustratvního příladu je, že zařazení nového záaznía splňuje časová ona všech záazníů. 22 Z předešlých úprav je zřejmé, že zahrnutí dély obsluhy do modelu je poměrně jednoduchou záležtostí; na tomto místě by ovšem podobné úvahy byly provedeny na úor přehlednost. 30