Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

The Postmans Problem. LOG530 Distribusjonsplanlegging 2 2 Mista har fått i oppdrag å vedlikeholde veiene i landsdelen. Dette er et eksempel på den klassiske.

Liknende presentasjoner


Presentasjon om: "The Postmans Problem. LOG530 Distribusjonsplanlegging 2 2 Mista har fått i oppdrag å vedlikeholde veiene i landsdelen. Dette er et eksempel på den klassiske."— Utskrift av presentasjonen:

1 The Postmans Problem

2 LOG530 Distribusjonsplanlegging 2 2 Mista har fått i oppdrag å vedlikeholde veiene i landsdelen. Dette er et eksempel på den klassiske problemstillingen ”The Postmans Problem” – alle veiene må gås minst en gang. Hvilken sekvens bør velges for å minimere total tilbakelagt avstand? The Postmans Problem 1122 44 55 33 66 88 77 99 2 2 4 4 5 5 8 8 3 3 4 4 3 3 7 7 4 4 3 3 8 8 3 3 5 5 6 6 12 2 2 Finn den beste rute for en lastbærer som skal betjene alle greinene i et nettverk en og bare en gang, når man starter i en vilkårlig node og skal vende tilbake til den samme noden.

3 LOG530 Distribusjonsplanlegging 3 3 The Postmans Problem Vi vil betrakte urettede grafer med symmetriske kostnader. Grafene er sammenhengende og vanligvis ikke komplette. Merk følgende om nodene i grafene:  Graden til en node angir antall greiner knyttet til noden.  Jamn node: hvis antall greiner er et partall.  Odde node: hvis antall greiner er et odde tall.  Euler-graf: En graf med bare jamne noder. 1122 44 55 33 66 88 77 99 2 2 4 4 5 5 8 8 3 3 4 4 3 3 7 7 4 4 3 3 8 8 3 3 5 5 6 6 12 2 2 Vi ser at for eksempel node 1 er odde (grad = 3), mens node 6 er jamn (grad = 4). Ettersom ikke alle nodene er jamne så er dette ikke en Euler-graf.

4 LOG530 Distribusjonsplanlegging 4 4 The Postmans Problem 1.En Euler tur er en sekvens av noder og greiner annenhver gang som starter med en vilkårlig node, bruker alle greiner én og bare én gang og avsluttes i samme node som den startet. 2.Følgelig vil en Euler tur løse problemet, men: En sammenhengende graf inneholder minst en Euler tur hvis og bare hvis grafen er en Euler graf. 3.Legg merke til at nodene kan besøkes så mange ganger vi ønsker. Kravet til antall besøk er bare knyttet til greinene. 4.Hvis grafen ikke er en Euler graf kan ikke problemet løses. Dvs. minst en grein må da besøkes minst to ganger. 5.I en Euler graf vil det alltid finnes én Euler tur, vanligvis finnes den mange Euler turer. 6.Kostnadene ved alle Euler turene vil imidlertid være den samme, siden alle greinene er med i turen bare én gang. Problemet er altså ikke å finne kostnaden for en Euler tur i en Euler graf, men å finne en Euler tur.

5 LOG530 Distribusjonsplanlegging 5 5 The Postmans Problem  Tur – vender alltid tilbake til utgangspunktet.  Spor – ender ikke alltid opp i utgangspunktet. La i k betegne en vilkårlig node, og g s betegne en vilkårlig grein.  Et spor S i en graf er en sekvens av noder og greiner annen hver gang som starter med en node og avsluttes i en node.  S: i 0 – g 0 – i 1 – g 1 – i 2 –...... – g k-1 – i k der alle greinene er forskjellige og hvor greinene i sporet knytter sammen nodene den er plassert i mellom. For å finne en Euler Tur i en Euler graf, kan vi benytte Eulers Algoritme 1:

6 LOG530 Distribusjonsplanlegging 6 6 The Postmans Problem Anta en Euler graf. Trinn 1:Velg en vilkårlig node i 0 i grafen. Trinn 2:Konstruer et spor S i grafen som starter i i 0 og avsluttes i i 0. Trinn 3:Finn den første noden i f i sporet S som er knyttet til en ubrukt grein (ikke i S) i grafen. Trinn 4:Konstruer et nytt spor T som starter i i f og slutter i i f og som ikke bruker greiner fra S. Trinn 5:La S = S+T ved å skyte det nye sporet T inn i den gamle S. Trinn 6:Gå til trinn 3 med det nye sporet S. Anta en Euler graf. Trinn 1:Velg en vilkårlig node i 0 i grafen. Trinn 2:Konstruer et spor S i grafen som starter i i 0 og avsluttes i i 0. Trinn 3:Finn den første noden i f i sporet S som er knyttet til en ubrukt grein (ikke i S) i grafen. Trinn 4:Konstruer et nytt spor T som starter i i f og slutter i i f og som ikke bruker greiner fra S. Trinn 5:La S = S+T ved å skyte det nye sporet T inn i den gamle S. Trinn 6:Gå til trinn 3 med det nye sporet S. En slik prosedyre vil altså hjelpe oss til alltid å finne en løsning på postmannens problem. Ulempen er at prosedyren bare virker på Euler grafer.

7 Lo530 Distribusjonsplanlegging 7 7 1 2 3 4 5 6 7 8 The Postmans Problem

8 Lo530 Distribusjonsplanlegging 8 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 The Postmans Problem

9 Lo530 Distribusjonsplanlegging 9 9 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 The Postmans Problem

10 Lo530 Distribusjonsplanlegging 10 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 The Postmans Problem

11 Lo530 Distribusjonsplanlegging 11 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 The Postmans Problem

12 Lo530 Distribusjonsplanlegging 12 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 The Postmans Problem

13 Lo530 Distribusjonsplanlegging 13 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 The Postmans Problem

14 Lo530 Distribusjonsplanlegging 14 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 The Postmans Problem

15 LOG530 Distribusjonsplanlegging 15 The Postmans Problem Det er svært mange grafer som inneholder odde noder, og derfor ikke tilfredsstiller kravet til en Euler graf. Hvis grafen inneholder nøyaktig to odde noder kan vi imidlertid konstruere et Euler Spor. Et Euler spor i en graf starter i en node og slutter i en annen node og har med alle greinene i grafen en og bare en gang. En sammenhengende graf inneholder minst et Euler spor hvis og bare hvis grafen inneholder nøyaktig to odde noder. For å finne et Euler Spor i en graf, kan vi benytte Eulers Algoritme 2.

16 LOG530 Distribusjonsplanlegging 16 The Postmans Problem Anta en graf med nøyaktig to odde noder; i s og i t. Trinn 1:Velg en av de odde nodene som start, for eksempel i s. Trinn 2:Lag et spor S i grafen som starter med i s og slutter med den andre odde noden i t. Trinn 3:Finn den første noden i f i sporet S som er knyttet til en ubrukt grein (ikke i S) i grafen. Trinn 4:Konstruer et nytt spor T som starter i i f og slutter i i f og som ikke bruker greiner fra S. Trinn 5:La S = S+T ved å skyte det nye sporet T inn i den gamle S. Trinn 6:Gå til trinn 3 med det nye sporet S. Anta en graf med nøyaktig to odde noder; i s og i t. Trinn 1:Velg en av de odde nodene som start, for eksempel i s. Trinn 2:Lag et spor S i grafen som starter med i s og slutter med den andre odde noden i t. Trinn 3:Finn den første noden i f i sporet S som er knyttet til en ubrukt grein (ikke i S) i grafen. Trinn 4:Konstruer et nytt spor T som starter i i f og slutter i i f og som ikke bruker greiner fra S. Trinn 5:La S = S+T ved å skyte det nye sporet T inn i den gamle S. Trinn 6:Gå til trinn 3 med det nye sporet S. Også her vi kostnadene være den samme om det finnes et eller flere Euler spor i grafen. Men igjen er det ganske begrenset hvilke problemer vi er i stand til å løse, ettersom algoritmen krever at det finnes to og bare to odde noder i grafen.

17 Lo530 Distribusjonsplanlegging 17 1 2 3 4 5 6 7 8 The Postmans Problem

18 Lo530 Distribusjonsplanlegging 18 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 The Postmans Problem

19 Lo530 Distribusjonsplanlegging 19 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8

20 Lo530 Distribusjonsplanlegging 20 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 The Postmans Problem

21 Lo530 Distribusjonsplanlegging 21 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8

22 Lo530 Distribusjonsplanlegging 22 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 The Postmans Problem

23 Lo530 Distribusjonsplanlegging 23 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 The Postmans Problem

24 Lo530 Distribusjonsplanlegging 24 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 5 4 3 16 15 14 10 9 8 7 6 12 11 13 1 2 The Postmans Problem

25 LOG530 Distribusjonsplanlegging 25 The Postmans Problem Vi har hittil løst postmannens problem ved grafer med bare jamne noder, og med akkurat to odde noder. Da er det ikke nødvendig å gå noen veier to ganger. I alle andre grafer vil postmannen være nødt til å gå en eller flere greiner minst to ganger. Dette gir opphavet til en modifisert problemstilling, kalt The Chinese Postman Problem (CPP): Hvilke greiner må gås flere ganger, og hvordan finner man en tur – hvor alle greinene besøkes minst en gang, og man skal starte og slutte i samme node; slik at kostnadene blir minst mulig? The Chinese Postman Problem (CPP): Hvilke greiner må gås flere ganger, og hvordan finner man en tur – hvor alle greinene besøkes minst en gang, og man skal starte og slutte i samme node; slik at kostnadene blir minst mulig? Den kinesiske matematikeren Mei-Ku formulerte problemet først i 1962. Løsningsteknikken ble utviklet av Edmonds på 70-tallet, og kalles matching. Teknikken bygger på følgende generelle egenskap: Ved alle sammenhengende grafer er det alltid et jamt antall odde noder i en graf.

26 LOG530 Distribusjonsplanlegging 26 The Postmans Problem  Vi utvider grafen med nye greiner slik at de odde nodene parvis knyttes sammen.  Resultatet blir en Euler graf.  Matching: Hvilke eksisterende greiner bør benyttes for å pare de odde nodene?  De matchingene som samlet gir den rimeligste Euler turen er også de greinene som postmannen må gå to ganger.  Vi utvider grafen med nye greiner slik at de odde nodene parvis knyttes sammen.  Resultatet blir en Euler graf.  Matching: Hvilke eksisterende greiner bør benyttes for å pare de odde nodene?  De matchingene som samlet gir den rimeligste Euler turen er også de greinene som postmannen må gå to ganger. Anta n odde noder i en graf. Antall parvise matchinger blir da: Om vi har 6 odde noder er det altså i alt (6-1)(6-3)(6-5) = 15 ulike matchinger.

27 LOG530 Distribusjonsplanlegging 27 The Postmans Problem Her har vi 8 odde noder: 2, 3, 5, 8, 9, 12, 14 og 15. Anta at kostnadene loddrett = 1 og vannrett = 2. 1234 5678 9101112 13141516 Vi matcher da de odde nodene ved å doble enkelte greiner. De stiplede linjene (2-3), (5-9), (8-12) og (14-15) angir en mulig matching, som har en merkostnad på 2 + 1 + 1 + 2 = 6. (Husk at vi her har i alt 105 mulige matchinger!)

28 LOG530 Distribusjonsplanlegging 28 The Postmans Problem Her er det 4 odde noder: A, B, C og D. Alle greiner har samme kostnad = 1. Minst kostnad: Fra A til B = 3 Fra A til C = 2 Fra A til D = 6 Fra B til C = 3 Fra B til D = 5 Fra C til D = 4 A B C D Vi kan altså velge matching 1 eller 2, som begge har den laveste kostnaden på 7. Om vi velger matching 1, så må vi legge til nye greiner mellom nodene (A-B) og (C-D). Da ender vi opp med en Euler graf, og kan lage en Euler tur. Eller vi kan velge å bare matche nodene (A-C) slik at vi får en graf med nøyaktig to odde noder. Dermed kan vi lage et Euler spor. 3 matchinger: 1.A-B og C-D: 3+4 = 7 2.A-C og B-D: 2+5 = 7 3.A-D og B-C: 6+3 = 9

29 LOG530 Distribusjonsplanlegging 29 Nodene 1, 2, 3, 4, 5 og 7 er odde noder. Dvs. vi må matche 3 par av noder for å få en Euler graf. Det er altså 15 mulige matchinger, og matching nr. 2 gir kortest ekstra lengde på 10. Det oppnår vi ved å matche node 1&3, node 2&4 og node 5&7. The Postmans Problem 123456789101112131415 122134145155178122122134134145145155155178178 347243326347347353376544747353376376326353326 573573573271052747745427 52727 527423477243544 12101422 12 18 14181418 1122 44 55 33 66 88 77 99 2 2 4 4 5 5 8 8 3 3 4 4 3 3 7 7 4 4 3 3 8 8 3 3 5 5 6 6 12 2 2 Siden summen av alle veistykkene er 91, og et veistykke på 10 må gåes 2 ganger, ender vi opp med en total lengde på 101 hvis vi skal starte og stoppe i samme node. Om vi derimot tillater å stoppe i en annen node enn der vi starter, så kan vi matche node 1&2 samt 3&5 og ende opp med et ekstra veistykke på 2+3 = 5, dvs. en totallengde på 96. Da står vi igjen med node 4 og 7 som odde noder, dvs. kandidater for start og stopp.

30 LOG530 Distribusjonsplanlegging 30 Her er grafen når vi matcher node 1&2 samt node 3&5. Vi kunne alternativt mathce node 1&2 samt 5&7 og få samme ekstra veilengde på 2+3=5, dvs. en totallengde på 91+5=96. Vi står altså igjen med node 4 og 7 som odde noder, de øvrige opprinnelige odde nodene er paret slik at de nå er jamne. Nå er vi klar for å finne et mulig Euler spor, og benytter Eulers algoritme 2. The Postmans Problem 1122 44 55 33 66 88 77 99

31 LOG530 Distribusjonsplanlegging 31 Trinn 1. Velg en av de odde nodene som start, for eksempel i s. Her starter vi i node 7, den ene av de to gjenværende odde nodene. Trinn 2. Lag et spor S i grafen som starter med i s og slutter med den andre odde noden i t. Vi skal altså lage et spor som starter i node 7 og stopper i node 4, for eksempel via node 5 og til 4. Dette blir nå spor S. Trinn 3. Finn den første noden i f i sporet S som er knyttet til en ubrukt grein (ikke i S) i grafen. Den første noden i sporet er node 7, og der er det ubrukte greiner. The Postmans Problem 1122 44 55 33 66 88 77 99 2 2 1 1

32 LOG530 Distribusjonsplanlegging 32 Trinn 4. Konstruer et nytt spor T som starter i i f og slutter i i f og som ikke bruker greiner fra S. I neste figur har vi derfor lagt til et spor fra node 7 via 4, 2, 5 og 6 tilbake til 7. The Postmans Problem 1122 44 55 33 66 88 77 99 3 3 2 2 7 7 4 4 6 6 1 1 5 5 Trinn 5. La S = S+T ved å skyte det nye sporet T inn i den gamle S. I figuren til høyre har vi ”jukset” litt, og latt S = T+S, dvs. puttet det nye sporet inn før det gamle istedenfor til slutt. Dermed er de to greinene som opprinnelig var nummer 1 og 2 nå flyttet bakerst, og er blitt nummer 6 og 7 i figuren over. Vårt nye spor består altså foreløpig av: 7 – 4 – 2 – 5 – 6 – 7 – 5 – 4. Trinn 6. Gå til trinn 3 med det nye sporet S. Vi har fortsatt ubrukte greiner i node 7, og kan derfor lage et nytt spor derfra.

33 LOG530 Distribusjonsplanlegging 33 Trinn 3. Første node med ubrukte greiner er fortsatt node 7. The Postmans Problem 1122 44 55 33 66 88 77 99 3 3 2 2 10 4 4 9 9 1 1 5 5 8 8 7 7 6 6 Trinn 4. Vi konstruerer et nytt spor som starter i node 7 og går via node 9 og 8 tilbake til node 7. Dette blir det nye sporet T. Trinn 6. Gå tilbake til trinn 3 med det nye sporet. Trinn 5. Vi skyter inn det nye sporet T inn i det gamle, denne gangen etter den femte greinen. Det nye sporet S = S + T blir da slik: 7 – 4 – 2 – 5 – 6 – 7 – 9 – 8 – 7 – 5 – 4.

34 LOG530 Distribusjonsplanlegging 34 Trinn 3. Første node med ubrukt grein er nå node 2. The Postmans Problem 11 22 44 55 33 66 88 77 99 3 3 5 5 2 2 12 6 6 11 1 1 7 7 10 9 9 8 8 4 4 Trinn 4. Vi konstruerer et nytt spor som går fra node 2 via node 1 tilbake til node 2. Dette blir det nye sporet T. Trinn 6. Gå tilbake til trinn 3 med det nye sporet. Trinn 5. Vi skyter inn det nye sporet etter den andre greinen. Det nye sporet S blir: 7 – 4 – 2 – 1 – 2 – 5 – 6 – 7 – 9 – 8 – 7 – 5 – 4.

35 LOG530 Distribusjonsplanlegging 35 Trinn 3. Første node med ubrukt grein er nå node 1. The Postmans Problem 11 22 44 55 33 66 88 77 99 3 3 4 4 10 12 2 2 19 5 5 8 8 13 18 1 1 7 7 14 17 6 6 16 15 11 9 9 Trinn 4. Vi konstruerer nå et nytt spor som går fra node 1 via 3, 5, 8, 6, 3, 5 og tilbake til 1. Dette blir det nye sporet T. Inspeksjonen av veiene starter altså i node 7 og ender i node 4, og greinene mellom node 1 og 2 samt mellom node 3 og 5 må tilbakelegges to ganger. Totalavstanden fra blir da: 91+5=96. Trinn 5. Vi skyter inn det nye sporet etter den tredje greinen. Det nye sporet S blir da slik: 7 – 4 – 2 – 1 – 3 – 5 – 8 – 6 – 3 – 5 – 1 – 2 – 5 – 6 – 7 – 9 – 8 – 7 – 5 – 4.


Laste ned ppt "The Postmans Problem. LOG530 Distribusjonsplanlegging 2 2 Mista har fått i oppdrag å vedlikeholde veiene i landsdelen. Dette er et eksempel på den klassiske."

Liknende presentasjoner


Annonser fra Google