Szállításszervezési módszerek A megtakarítási eljárás kiterjesztése 1 Néhány alapvető szempontot a járatkapcsolás előtt figyelembe kell venni. 1. Akkor célszerű a járatokat összekapcsolni, ha ezzel költséget (távolságot, időt, járművet stb.) takarítunk meg. 2. Akkor lehet a járatokat összekapcsolni, ha az alkalmazott jármű alkalmas mindkét küldemény továbbításához, a járatok időben egymás után végrehajthatók (a kapcsolást árufogadási vagy árufeladási időablak problémák nem gátolják), a járatok összekapcsolása belefér a napi foglalkoztatási időbe, a jármű időben érkezik meg a telephelyre (pihenőidő!), az összekapcsolást nem akadályozzák előírások, szabályok (pl. járműtisztítás)
A megtakarítási eljárás kiterjesztése 2 A Megtakarítási eljárást (Savings módszer) a körjáratok szerkesztésére Clarke-Wrigt dolgozta ki (1962-ben). A megtakarítási elv - általánosított megfogalmazásban - kiválóan alkalmazható a járatkapcsolási feladatok gyors, jó eredményességű megoldásához. A megtakarítás (út, idő, költség stb.) általánosított felírása a következő: Tegyük fel, hogy X S pontból X D pontba, továbbá Y S pontból Y D pontba kell X s X D Y S egy-egy rakományt szállítanunk, amint azt az ábra mutatja. Ha a két járatot összekapcsoljuk, üres járműfutás takarítható meg. Ez a következő: M xy = L (X D G) + L (GY S ) - L (X D Y S ) G Y D Ha az S és D indexű pontok egybeesnek, akkor az eredeti, körjáratokra felírt megtakarítás formulát kapjuk! A már ismert eljárásnak megfelelően a megtakarításokat minden lehetséges járatpárosításra el kell készíteni. A programozás, mint a körjáratszerkesztés esetében, szintén a legnagyobb megtakarítási helyen kezdődik.
A megtakarítási eljárás kiterjesztése 3 Az eljárás megismeréséhez vegyünk fel egy mintapéldát. Legyenek az ellátandó egyszerű járatok a következők! Összesen 6 egyszerű járatot kell tehát elvégezni, a G telephelyen lévő járművekkel. B S C D B D F S A S A D Feltételezzük, hogy a járatok összekapcsolhatók. A távolságokat az alábbi mátrix tartalmazza. D S E S E D C S F D G G A S B S C S D S E S F S G 0 60 55 25 70 40 35 D A D 45 70 55 100 70 45 D B D 60 0 80 110 85 45 C D 60 65 5 50 35 25 D D 25 105 55 45 30 65 E D 80 135 95 90 45 90 F D 50 85 105 110 120 90
A megtakarítási eljárás kiterjesztése 4 Tegyük fel, hogy a G telephelyen 2 tehergépjármű áll rendelkezésre. Mindegyik jármű legfeljebb 3 rakott menetet teljesíthet, utána vissza kell térnie a garázsba. A távolságmátrixban piros színnel G A S B S C S D S E S F S G 0 60 55 25 70 40 35 A D 45 80 70 55 100 70 45 B D 60 0 80 80 110 85 45 C D 60 65 5 90 50 35 25 D D 25 105 55 45 100 30 65 E D 80 135 95 90 45 90 90 F D 50 85 105 110 120 90 110 A D B D C D D D E D F D A S B S C S D S E S F S 120 5 15 tüntettük fel a járatok hosszát. A megtakarítás mátrix elemeit a következőképpen számítjuk: Ha a B és C járatokat akarjuk ebben a sorrendben összekapcsolni, akkor a B D -ből való visszatérés (60), a C S -be való kimenetel (25) megtakarításaiból kivonjuk a B D -ből C S -be való átállás távolságát (80) Az eredmény 5, amit a megfelelő helyre beírunk. Gyakorlásképpen figyelje meg a BA és az EC összekapcsolásakor elérhető megtakarítások számítását! 60 +60-0 = 120 80 +25-90 = 15
A megtakarítási eljárás kiterjesztése 5 A S B S C S D S E S F S A D 30 15 15 15 35 B D 120 5 20 15 50 C D 55 110 80 65 70 D D -20 25 5 35-5 E D 5 40 15 105 25 F D 25 0-35 0 0 Folytatva a számítást a balra lévő megtakarítás-mátrixot kapjuk. Egyes járatok összekapcsolása kifejezetten nem tanácsos, hiszen ekkor az úthossz növekedni fog. Ezeket piros színnel jelöltük. Az összekapcsolás algoritmusa a következő: Megkeressük a legnagyobb megtakarítást (ez 120 egység, az BA kapcsolat esetén). Töröljük a kapcsolt járatok adatait (B D sorát, mert innen már nem mehetünk máshova) és a A S oszlopát, mert ide már nem érkezhetünk meg máshonnan. Töröljük a rövidzár elemét, A D B S -t, hogy BA után ne kapcsoljuk esetleg AB-t! Megvizsgáljuk, hogy korlátok nem akadályozzák-e a kapcsolatot, illetve, hogy a program még folytatható-e. Ha a program folytatható, akkor megvizsgáljuk, hogy a létrehozott BA járatpár elé, vagy mögé célszerű-e további járatot kapcsolni. Az A D sorát és az B S oszlopát kell megvizsgálni, s a legnagyobb elemet kiválasztani. Látható, a legnagyobb elem a C D B S helyen van, ezért a jármű programja a következő: G C S C D B S B D A S A D G
A megtakarítási eljárás kiterjesztése 6 A S B S C S D S E S F S A D 30 15 15 15 35 B D 120 5 20 15 50 C D 55 110 80 65 70 D D -20 25 5 35-5 E D 5 40 15 105 25 F D 25 0-35 0 0 Folytatva a még lehetséges elemekre, a következő legnagyobb érték 105, mégpedig az ED járatok összekapcsolásakor. Megvizsgáljuk, hogy az E elé vagy a D mögé indokolt-e a megmaradt F járat beiktatása. Mivel az DF negatív eredménnyel jár, ezért nyilván az FE kapcsolatot fogadjuk el. Ez egyébként nem jár megtakarítással. A második gépkocsi programja tehát a következő lesz: G F S F D E S E D D S D D G Töröljük a megfelelő sort és oszlopot és kizárjuk a a DE kapcsolat létrehozásának lehetőségét.
A megtakarítási eljárás kiterjesztése 7 Nézzük most meg a térképen, hogy milyen programokat állítottunk össze! Az első gépkocsi a következő feladatot látja el: A második jármű programja pedig az alábbi. G F S F D E S E D D S D D G B D A S Megfigyelhető, hogy az első jármű programjában alig van üres futás. B S D S C D E S F S C S G D D A D Ha minden járatot külön-külön láttunk volna el, az üres futások összege 605 km-t tett volna ki. (Ellenőrizd!) Az elkészített 2 kapcsolt járatban az üres futás jelentősen 285 km-re csökkent. (Számold ki!) F D G C S C D B S B D A S A D G Az eredmény a korlátozó feltételektől is függ. Ha például egyetlen, 6 rakott menetet tartalmazó kört engedtünk volna meg, még jobb eredményt kaptunk volna. E D Ha megnézzük, hogy a jármű egy ilyen kapcsolt járatban milyen útvonalon haladt végig, akkor láthatóan egy sokszögű alakzatot látunk. Ezeket a kapcsolt járatokat ezért SOKSZÖGJÁRATOKNAK is hívják.
A megtakarítási eljárás kiterjesztése 8 A bemutatott feladat természetesen megoldható optimumra is (Krekó-Szántó). G A S B S C S D S E S F S Kap G 1 1 2 1 A D 1 1 B D 1 1 C D 1 1 D D 1 1 E D 1 1 F D 1 1 Ig 2 1 1 1 1 1 1 1 Kezdjen az első gépkocsi a C S pontban. A C rakott menet teljesítése után megérkezik a járat végpontjába, C D -be, ahonnan a táblázatunk szerint B S -be kell üresen átállnia. Az optimális programot a mellékelt táblázat mutatja. Az üres járat kibocsátási kapacitások, kivéve a telephelyet, ahonnan 2 kocsit indítunk - minden járatvégponton egységnyiek, mert mindenhova csak egy járat ment rakottan. Az üres járat igények is egységnyiek, mert mindenhonnan csak egy járat indul. Innen A következik, de innen nem tudunk G-be menni, F-be kell mennünk. A másik járat ( G - E - D - G) meghatározását már nem mutatjuk be. (Készítsd el!) Hasonlítsd össze a két eljárás előnyét, hátrányát!
Jordan-Burns módszere 9 Jordan és Burns publikált (1984-ben) egy olyan megtakarítási elven alapuló eljárást, amely oda-vissza irányú járműkiterhelések (járatkapcsolatok) létrehozásához különösen jól alkalmazható. A javasolt heurisztika szerint azokat a járatokat kell "párosítani", amelyek a legnagyobb várható üres futás megtakarításához vezetnek. Tegyük fel, hogy az R 1 és R 2 árukibocsátó helyekről az X és Y vevőkhöz kell árut szállítani. Ha nincs járatkapcsolás - vagyis pl. a két cég egymástól függetlenül oldja meg a feladatot - a járművek a szállítások befejezése után üresen térnek vissza a kiindulóhelyre. X Y Az üres futás:f ü =L(XR 2 ) + L(YR 1 ) Az üres futás megtakarítás, ha a járatokat összekapcsoljuk, azaz Y-ból nem az R 1 -be, hanem R 2 -be megyünk, a következő: R 1 R 2 S(X,Y)=L(XR 2 ) + L(YR 1 ) - L(YR 2 ) - L(XR 1 )
Jordan-Burns módszere 10 A legjobb járatkapcsolásokhoz először kiszámítjuk az összes lehetséges útmegtakarítást, majd azok közül a legnagyobb megtakarítást ígérő párokat kapcsoljuk össze. A járatvégpontok távolságait az 3-1 1-4 egyes raktáraktól (járatkibocsátó 1-3 helyektől) az alábbi táblázat 2-2 tartalmazza. 3-2 A távolságok szimmetrikusak. 1-1 3-3 2-3 R 1 R 2 2-4 Az R2,3-1 reláció távolsága (5) azt mutatja, hogy 3-1-től milyen messze van R2. 1-2 2-1 R 3 R1,1-3 távolsága (6) ezért megegyezik 1-3,R1 távolságával. Ez tulajdonképpen a rakott menet hossza. R1-ből indulók R2-ből indulók R3-ból indulók 1-1 1-2 1-3 1-4 2-1 2-2 2-3 2-4 3-1 3-2 3-3 R1 2 6 6 8 10 12 3 7 9 3 6 R2 8 6 5 2 4 3 6 8 5 5 9 R3 10 2 9 8 3 7 5 3 11 7 5
Jordan-Burns módszere 11 R1-ből indulók R2-ből indulók R3-ból indulók 1-1 1-2 1-3 1-4 2-1 2-2 2-3 2-4 3-1 3-2 3-3 R1 2 6 6 8 10 12 3 7 9 3 6 R2 8 6 5 2 4 3 6 8 5 5 9 R3 10 2 9 8 3 7 5 3 11 7 5 Így például az R3,3-1 és R2,2-4 járatok összekapcsolása esetén a következő lenne az üres futás megtakarítás: S(3-1,2-4)=11 + 8-5 - 3 = 11 2-1 - - - 0 2-2 - - - - 2-3 - 3 4 9 2-4 - 1 2 7 3-1 - 6-2 7 2 7 11 3-2 - 8 1 0 3-3 7 3-3 - 3 - - - - - 1 1-1 1-2 1-3 1-4 2-1 2-2 2-3 2-4
Jordan-Burns módszere 12 A legnagyobb megtakarítást az előzőek szerint a 3-1 és a 2-4 járatok összekapcsolásakor kapjuk. 2-1 - - - 0 2-2 - - - - 2-3 - 3 4 9 2-4 - 1 2 7 3-1 - 6-2 7 2 7 11 3-2 - 8 1 0 3-3 7 3-3 - 3 - - - - - 1 1-1 1-2 1-3 1-4 2-1 2-2 2-3 2-4 Kihúzzuk a 3-1 sorát és a 2-4 sorát, oszlopát. A megmaradt pozitív megtakarítások közül most a legnagyobb (9) a 2-3 és az 1-4 járatok összekapcsolásával adódik. A megfelelő sor és oszlop törlése után a 3-2 és az 1-2 járatok kapcsolása következik. Miután több pozitív megtakarítás nincs, a programozás befejeződött, a többi járat összekapcsolása nem célszerű.
Jordan-Burns módszere 13 Ábrázoljuk a térképen a készített programokat! 3-1 1-4 Az első kapcsolt járat R3-ból indul (fekete vonal). 1-1 1-3 3-2 R 1 R 2 2-2 A másodikat R2-ből indítjuk (sárga vonal). A harmadik szintén R3-ban kezd (barna vonal). 3-3 2-3 2-4 1-2 2-1 R 3 Figyelje meg, hogy a járatok a másik - kapcsolt - raktárból is indulhatnának, az eredmény nem változna. Ez lehetőséget ad a programozónak arra, hogy a gépkocsit a legmegfelelőbb pontról indítsa.
Jordan-Burns módszere 14 Ez a feladat is megoldható optimumra a Krekó-Szántó féle módszerrel. Tekintve, hogy az üres járat kibocsátó helyek a rakott menetek végpontjai, ezért a távolságmátrixot 90 -kal elforgatva írjuk fel. R1 R2 R3 Kap 1-1 2 1 8 10 1 1-2 6 6 2 1 1 1-3 6 5 1 9 1 1-4 8 2 1 8 1 2-1 10 4 3 1 1 2-2 12 3 1 7 1 2-3 3 1 6 5 1 2-4 7 8 3 1 1 3-1 9 5 1 11 1 3-2 3 1 5 7 1 3-3 6 1 9 5 1 Igény 4 3 4 3 2 11 A szállítási probléma megoldása után az optimális szétosztási programot piros számokkal jelöltük. Ebből a táblázatból a járatokat azonban másként kell kiolvasni, mint amint azt eddig megismertük. A járatkapcsolásokat most ugyanis ott hozhatjuk létre, ahol a programozott érték nem a járatot kibocsátó raktár oszlopában van. Így például az 1-1 járat végpontjából a program szerint R1-be kell menni, ami azt jelent, hogy a járat üresen visszatér a kiindulási helyére, másként: nem történik járatkapcsolás. Az 1-2 járat végpontjából viszont R3-ba mentünk, s innen akár a 3-2, akár a 3-3 járattal visszatérhet R1-be. Mi a 3-2 járatott választottuk.
Jordan-Burns módszere 15 Az első járatpár tehát R1,1-2 R3,3-2 R1 A következő program: R1 R2 R3 Kap 1-1 2 1 8 10 1 1-2 6 6 2 1 1 1-3 6 5 1 9 1 1-4 8 2 1 8 1 2-1 10 4 3 1 1 2-2 12 3 1 7 1 2-3 3 1 6 5 1 2-4 7 8 3 1 1 3-1 9 5 1 11 1 3-2 3 1 5 7 1 3-3 6 1 9 5 1 Igény 3 2 1 43 2 2 1 11 R1,1-3 R2,2-3 R1 Ezután az 1-4 ből a kijelölt program szerint átállunk R2-be. Innen azonban már nincs visszaút az optimális megoldás szerint R1-be, mert ezt az előbb elhasználtuk. Emiatt tovább kell mennünk R3-ba (például az R2-ből induló 2-1 járat végpontjából, mert innen a 3-3- járat befejezése után, már R1 következhet. A harmadik jármű programja tehát: R1,1-4 R2,2-1 R3,3-3 R1 Még egy járatpárt tudunk létrehozni: R2,2-4 R3,3-1 R2 A Jordan-Burns algoritmussal elkészített járatok 38 egység üres futással oldotta meg a feladatot, az optimális eredmény 37. (Ellenőrizze!)
Jordan-Burns módszere 16 Ábrázoljuk a térképen a készített programokat! 1-1 3-3 2-3 1-3 R 1 R 2 2-4 3-2 3-1 2-2 1-2 2-1 R 3 1-4 Az első kapcsolt járat R1-ből indul (barna vonal). A másodikat is R1-ből indítjuk (fekete vonal). A harmadik szintén R1-ben kezd, s három rakott menetet tartalmaz (sárga vonal). Most van egy negyedik kapcsolás is, ez a jármű az R3-ból indul (kék vonal). Figyelje meg, hogy a járatok a másik - kapcsolt - raktárból is indulhatnának, az eredmény nem változna. Ez lehetőséget ad a programozónak arra, hogy a gépkocsit a legmegfelelőbb pontról indítsa.
Kedves hallgatóm! Jó tanulást kívánok. Ha a bemutatóban bármilyen hibát talál, vagy az anyaggal kapcsolatban észrevétele van, kérem, küldjön e-mailt! Segítségét előre is köszönöm. Hirkó Bálint hirko@sze.hu 2012.03.06. 17