10.07.2015 Views

Hľadanie najkratšej okružnej cesty

Hľadanie najkratšej okružnej cesty

Hľadanie najkratšej okružnej cesty

SHOW MORE
SHOW LESS

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

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

Hľadanie najkratšejokružnej <strong>cesty</strong>Ivan Brezinaapríl 2003 1


Problém najkratšej okružnej <strong>cesty</strong> – úloha obchodnéhocestujúceho (Travel salesman problem) Hľadanie najkratšej okružnej <strong>cesty</strong> na báze LP Heuristické metódy riešenia – algoritmus najbližšiehosuseda Optimalizačné metódy riešenia – Littleho metóda Úloha čínskeho poštára a algoritmus na jej riešenieapríl 2003 2


Mestá SRapríl 2003 3


Problém hľadania najkratšejokružnej <strong>cesty</strong> cieľ - nájsť najkratšiu cestu z východiskovéhouzla u 1do určených miest s návratom dovýchodiskového uzla u 1 každým určeným mestom možno prejsť len razapríl 2003 4


Hľadanie najkratšej okružnej <strong>cesty</strong> –LP – priraďovací problémapríl 2003 5


Hľadanie najkratšej okružnej <strong>cesty</strong> –LP – Tuckerova formuláciau ia u jmôžu nadobúdať ľubovoľné hodnotyapríl 2003 6


Algoritmus najbližšieho suseda1. k = 1, I = {1, 2, ..., n}, i = i 1= 1 a J = I – {i 1}= {2, 3, ..., n}.2. Ak k = n, prechod ku kroku 3.ak k < n, nájdeme v i-tom riadku matice C v množine J indexovnajmenší prvok (označíme ako q), t. j. pre c iq∈ Ck = k + 1, i = i k= j a J = J – {j}.opakovanie kroku 2.3. i n+1= 1, riešenie je dané postupnosťou uzlov i 1, i 2, ..., i n, i n+1.apríl 2003 7


apríl 2003 8Príklad667877164BR120159164KE5515615977LC86253954MT1038015685NR62798054PD7912078PP737939RK7925202ZA66BRKE55LC86MT10385NR62PDPP73RK202ZAZVBAZVBA


Príklad – okružná cesta - mestá SRAlgoritmus najbližšieho susedaBA 1BR 2KE 3LC 4MT 5NR 6PD 7PP 8RK 9ZA10ZV11BA 1025440024121985165332258202188BR 22540164771521691287813917766KE 34001640159238315276120199263214LC 424177159014115611715512816655MT 5219152238141013454118392586NR 685169315156134080247173159103PD 716512827611754800172937962PP 833278120155118247172079143144RK 925813919912839173937906473ZA102021772631662515979143640111ZV1118866214558610362144731110k = 1,I = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, i 1= 1, J = {2, 3, 4, 5 , 6, 7, 8, 9, 10, 11 }1 < 11, min {254, 400, 241, 219, 85, 165, 332, 258, 202, 188} = 85, q = 6apríl 2003 9


Príklad – okružná cesta - mestá SRAlgoritmus najbližšieho susedak = 1, I = {1,2,3,4,5,6,7,8,9,10,11}, i 1= 1, J = {2,3,4,5,6,7,8,9,10,11}1 < 11, min { 254, 400, 241, 219, 85, 165, 332, 258, 202, 188 } = 85, q = 6k = 2, i 2= 6, J = {2,3,4,5,7,8,9,10,11}2 < 11, min {169, 315, 156, 134, 80, 247, 173, 159, 103} = 80, q = 7k = 3, i 3= 7, J = {2,3,4,5,8,9,10,11}3 < 11, min {128, 276, 117, 54, 172, 93, 79, 62} = 54, q = 5k = 4, i 4= 5, J = {2,3,4,8,9,10,11}4 < 11, min {152, 238, 141, 118, 39, 25, 86} = 25, q = 10k = 5, i 5= 10, J = {2,3,4,8,9,11}5 < 11, min {177, 263, 166, 143, 64, 111} = 64, q = 9k = 6, i 6= 9, J = {2,3,4,8,11}6 < 11, min {139, 199, 128, 79, 73} = 73, q = 11k = 7, i 7= 11, J = {2,3,4,8}7 < 11, min {66, 214, 55, 144} = 55, q = 4k = 8, i 8= 4, J = {2,3,8}8 < 11, min {77, 159, 155} = 77, q = 2k = 9, i 9= 2, J = {3,8}9 < 11, min {164, 78} = 78, q = 8k = 10, i 10= 8, J = {3}10 < 11, min {120} = 120, q = 3k =11, i 11= 3, J = Ø, i 12= 1Trasa 1 – 6 – 7 – 5 – 10 – 9 – 11 – 4 – 2 – 8 – 3 – 1BA – NR – PD – MT – ZA – RK – ZV – LC – BR – PP – KE – BAVzdialenosť 85+80+54+25+64+73+55+77+78+120+400 = 1 111apríl 2003 10


Príklad – okružná cesta - mestá SRAlgoritmus najbližšieho susedaapríl 2003 11


Littleho metódaOptimalizačná metóda – hľadá optimálne riešenieMetóda patrí do skupiny metód vetiev a hranícKombinatorická metóda – preskúmava každé riešenie,ktorých je n!Optimálna okružná cesta:Trasa 1 – 6 – 7 – 11 – 4 – 2 – 3 – 8 – 9 – 5 – 10 – 1BA – NR – PD – ZV – LC – BR – KE – PP – RK – MT – ZA – BAVzdialenosť 988 Najbližší sused: Trasa 1 – 6 – 7 – 5 – 10 – 9 – 11 – 4 – 2 – 8 – 3 – 1BA – NR – PD – MT – ZA – RK – ZV – LC – BR – PP – KE – BAVzdialenosť 1 111apríl 2003 12


Príklad – okružná cesta - mestá SRLittleho metódaapríl 2003 13


Eulerovský ťahOtvorený eulerovský ťahUzavretý euelerovský ťahPráve 2 uzlynepárneho stupňaVšetky uzlypárneho stupňaapríl 2003 15


Algoritmus úlohy čínskehopoštára1. Pre všetky dvojice uzlov z U - - najkratšie <strong>cesty</strong> cez všetky uzly.Nájdenie najkratšej vzdialenosti medzi všetkými vrcholmi v sieti -matica D = (d ij) s rozmerom U - . U - najkratších vzdialeností d ijpreu i, u jz množiny U - .2. Úloha minimálneho párovania na množine U - vzhľadom na hodnotyD = (d ij). Zostavenie párov uzlov z množiny U - , pre ktoré je súčetdĺžok najkratších vzdialeností d ijminimálny.3. K pôvodnému grafu pridáme umelé hrany, paralelné k hranám, ktorézodpovedajú hranám najkratších ciest minimálneho párovaniazískaných. Umelé hrany majú rovnaké ohodnotenia ako hranyparalelné. Vzniknutý graf je eulerovský.4. V upravenom grafe nájdeme Eulerov cyklus. Dĺžka cyklu je súčtomohodnotení všetkých hrán v grafe (aj umelých).apríl 2003 17


Algoritmus nájdenia Eulerovhocyklu1. Vyberieme začiatočný uzol.2. Postupne prechádzame všetkými hranami grafu, pričomvyškrtávame hrany, po ktorých sme už prešli. Riadime sapravidlom, že neprechádzame po hranách, ktorýchvyškrtnutie by viedlo k rozdeleniu grafu na dvakomponenty súvislosti.apríl 2003 18


Príklad - každou cestou medzimestami SRBABRKELCMTNRPDPPRKZAZVBA85202BR164777866KE164159120LC7715915655MT54392586NR8515680103PD54807962PP7812079RK397973ZA2022579ZV6655861036273apríl 2003 19


Príklad – uzly nepárneho stupňaapríl 2003 20


Príklad – najkratšie <strong>cesty</strong> medzimestami SR - Floydov algoritmusBA 1BR 2KE 3LC 4MT 5NR 6PD 7PP 8RK 9ZA10ZV11BA 1025440024121985165332258202188BR 22540164771521691287813917766KE 34001640159238315276120199263214LC 424177159027315623615523416655MT 5219152238273013454118392586NR 685169315156134080247173159103PD 716512829223654800172937962PP 833278120155118247172079143144RK 925813919923439173937906473ZA102021772631662515979143640111ZV1118866214558610362144731110apríl 2003 21


Príklad - mestá SRKE 3PP 8KE 30120PP 81200RK 919979ZA10263143Minimálne párovanieRK 919979064KE – PP a RK – ZA 120 + 64 = 184ZA10263143640KE – RK a PP – ZA 199 + 143 = 342KE – ZA a RK – PP 263 + 79 = 342Min 184KE – PP a RK - ZAapríl 2003 22


Príklad – párovanie uzlov nepárnehostupňaapríl 2003 23


Príklad – nájdenie Eulerovho cyklu202+79+54+86+62+80+103+73+39+25+64+79+78+164+120+120+159+77+66+55+156+85 = 2026BA-ZA-PD-MT-ZV-PD-NR-ZV-RK-MT-ZA-RK-PP-BR-KE-PP-KE-LC-BR-ZV-LC-NR-BAapríl 2003 24

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

Saved successfully!

Ooh no, something went wrong!