• Nem Talált Eredményt

A klasszikus megoldás

In document LOGISZTIKAI TERVEZÉS (Pldal 100-107)

A matematikai modell:

6. JÁRATSZERKESZTÉSI FELADATOK

6.2. Járműkapacitással korlátozott egycentrumos járatszerkesztés

6.2.1 A klasszikus megoldás

A számításokat a szemléletesség és az érthetőség megkönnyítése érdekében két táblázat-ban végezzük. Az első tábla a megtakarítási mátrixot és a megrendelt mennyiségeket, a második t1, t2,...tl terhelhetőség szerint csökkenő sorba rendezett a J1, J2,...,Jl járműveket és mk terhelésüket tartalmazza. Az induló táblák a 6.6/a és a 6.6/b táblázatok.

1. lépés

Megkeressük az sij mátrix (6.6/a táblázat) legnagyobb elemét, ezt jelöljük sxy-nal, azaz }

,..., 2 , 1

; ,..., 2 , 1

max{s i nj n

sxyij   .

6.6/a táblázat

P1 P2 P3 P4 P5 P6 ri

P1 0 450 157 38 450 450 4

P2 450 0 157 38 696 626 3

P3 157 157 0 62 157 157 4

P4 38 38 62 0 38 38 2

P5 450 696 157 38 0 835 3

P6 450 626 157 38 835 0 2

A második táblából (6.6/b táblázat) pedig kiválasztjuk az első járművet, ennek

teherbírá-sa tk, majd megvizsgáljuk, hogy a jármű kapacitása lehetővé teszi-e a két út összevonását, akkor az utak összevonhatók.

6.6/b táblázat út-megtakarítás 835 km. A P5 és P6 fogyasztók igényeit ezzel kielégítettnek tekinthetjük. Az s56 elem ismételt kiválasztását és a járat záródását úgy akadályozzuk meg, hogy az első táblában lefedjük az 5-dik sort és a 6-dik oszlopot, valamint az s65 elem helyére 0-t írunk.

Ezzel egyidejűleg a r5 és r6 értékét csökkentsük 0-ra, a második táblában pedig a J1

Mivel s25>s62, továbbá az

10 8

2 3

3 1

6 5

2rr     t

r ,

ezért a P5-P6 járatot elölről bővítjük. Az összevonás után az első járat állomásai P0-P2 -P5-P6-P0 lesznek. Az így elért összes megtakarítás:

s25+s56 = 696 + 835 = 1531 km.

Ezt követően az első táblában fedjük le a 2-dik sort és az 5-dik oszlopot, valamint az s62 elem helyére írjunk 0-t. Ezzel egyidejűleg a r2 értékét csökkentsük 0-ra, a második táblá-ban pedig a J1 jármű terhelését növeljük r2=3-mal. A változtatások eredményeként a 6.8/a és a 6.8/b táblázatokat kapjuk.

6.8/a táblázat

P1 P2 P3 P4 P5 P6 ri

P1 0 450 157 38 450 450 4

P2 450 0 157 38 696 626 0

P3 157 157 0 62 157 157 4

P4 38 38 62 0 38 38 2

P5 450 696 157 38 0 835 0

P6 450 0 157 38 0 0 0

6.8/b táblázat

Jármű J1 J2 J3 J4 J5 J6 J7

tk [t] 10 10 6 6 6 6 6

mk [t] 8 0 0 0 0 0 0

3. lépés

A következő lépésben kíséreljük meg a P2-P5-P6 járatot P2-be menő vagy P6-ból induló úttal bővíteni. Most maximális sij elemet a 6.8/a táblázat 6-dik sorában és a 2-dik oszlo-pában keresünk:

450 }

,..., 2 , 1

max{s6j jns61 , 450 }

,..., 2 , 1

max{si2ins12 . 6.9/a táblázat

P1 P2 P3 P4 P5 P6 ri

P1 0 450 157 38 450 450 4

P2 450 0 157 38 696 626 0

P3 157 157 0 62 157 157 4

P4 38 38 62 0 38 38 2

P5 450 696 157 38 0 835 0

P6 450 0 157 38 0 0 0

Az P1 állomás egyaránt kapcsolható lenne P2 elé vagy P6 mögé, ha ezt a J1 jármű teher-bírása lehetővé tenné. Mivel azonban az

10 6-dik sor és a 2-dik oszlop, a második táblában pedig az első oszlop lefedésével jelzünk (6.9/a és 6.9/b táblázatok).

6.9/b táblázat legnagyobbat (6.9/a táblázat), a második táblából pedig kiválasztjuk a második járművet (6.9/b táblázat):

Elvégezzük a szokásos adminisztrációt: az első táblában lefedjük az első sort és a harma-dik oszlopot, az s31 elem helyére 0-t írunk, a r1 és r3 értékét 0-ra csökkentjük (6.10/a táblázat), a második táblában a J2 jármű terhelését r1+r3=8-cal növeljük (6.10/b táblá-zat). A megtakarítás: 157 km.

6.10/a táblázat ma-ximális sij elemet keresünk a 6.10/a táblázat harmadik sorában és az első oszlopában:

62

Mivel s34>s41, továbbá az

10 10

2 4

4 2

4 3

1rr     t

r ,

ezért a P1-P3 járatot hátulról bővítjük. Az összevonás után a második járat által érintett pontok P0-P1-P3-P4-P0 lesznek. Az első táblában lefedjük az 3-dik sort és az 4-dik oszlo-pot, az s41 elem helyére 0-t írunk, valamint a r4 értékét 0-ra csökkentjük (6.11/a táblá-zat). A második táblában pedig az J2 jármű terhelését növeljük r4=2-vel (6.11/b táblá-zat). A második járatnál elért útmegtakarítás:

s13+s34 = 157+62 =219 km.

6.11/a táblázat

P1 P2 P3 P4 P5 P6 ri

P1 0 450 157 38 450 450 0

P2 450 0 157 38 696 626 0

P3 0 157 0 62 157 157 0

P4 0 38 62 0 38 38 0

P5 450 696 157 38 0 835 0

P6 450 0 157 38 0 0 0

6.11/b táblázat

Jármű J1 J2 J3 J4 J5 J6 J7

tk [t] 10 10 6 6 6 6 6

mk [t] 8 10 0 0 0 0 0

6.3. ábra. A mintapélda megoldása

További összevonásra már nincs lehetőség. A szállítást a leggazdaságosabban a két járat-tal, 10 t teherbírású járművekkel lehet lebonyolítani. A járatok által érintett pontok:

P0-P2-P5-P6-P0,

P0-P1-P3-P4-P0.

Az összes útmegtakarítás: 1531+219 = 1750 km. A járatok útvonalait grafikusan a 6.3.

ábra szemlélteti. A megtett utak:

s1=348+105+65+447=965 km, s2=225+167+87+50=529 km.

6. lépés

A járatok útvonalai körutakat alkotnak, és a körutak élein szállított mennyiségek külön-bözőek. Egy élhez tartozó szállítási munka az élhosszúság és az élen szállított mennyiség szorzata:

ij ij

ij c q

W   ,

ahol: cij az i-edik és a j-edik pont közötti távolság, qij pedig az ij élen szállított mennyi-ség.

Könnyen belátható, hogy az éleken szállított mennyiségek nagysága, és így a szállítási munka nemcsak az útösszevonások, hanem a körút bejárási sorrendjének is függvénye.

Például, ha a mádodik járatnál az eredményként kapott bejárási sorrendet (P0-P1-P3-P4 -P0) követjük, akkor az összes szállítási munka:

c01 q01 c13 q13 c34 q34 c40 q40

W 225∙10+167∙6+87∙2+50∙0=3426 tkm.

Ha megfordítjuk a bejárási sorrendet, azaz a P0-P4-P3-P1-P0 útvonalat követjük, akkor a következő eredményt kapjuk:

c04 q04 c43 q43 c31 q31 c10 q10

W 50∙10+87∙8+167∙4+225∙0=1864 tkm,

ami lényeges eltérést mutat a második bejárási sorrend javára. Ezért minden esetben meg kell vizsgálni, hogy a szállítási munka szempontjából melyik bejárási sorrend ad kedve-zőbb megoldást.

Az első járat vizsgálata arra az eredményre vezet, hogy az eredeti bejárási sorrendhez (P0-P2-P5-P6-P0) tartozó összes szállítási munka 3439 tkm kisebb, mint a fordított sor-rendhez (P0-P6-P5-P2-P0) tartozó, ami 4281 tkm. A járatok optimális bejárási sorrendje tehát:

P0-P2-P5-P6-P0, P0-P4-P3-P1-P0. Az algoritmus leírása

A mintapélda megoldása után fogalmazzuk meg kicsit általánosabban a problémát és foglaljuk össze az algoritmust.

A szállítási pontokat (a centrumot és a fogyasztókat) szimbolizálja a G=(P,E) irányítatlan gráf, amely a P szállítási pontok és az E élek halmazából áll. A P halmaz elemeit jelölje pi (i=0,1,2,...,n), az E halmaz elemeit pedig eij (i=j=0,1,2,...,n). Ha a pi össze van kötve pj-vel, akkor eij=1, különben eij=0. Az eij-hez rendelt távolsági mátrix cij elemei jelentsék a szállítási pontok közötti legrövidebb utakat. Ha eij=0, akkor cij=M, ahol M végtelen nagy szám. A P halmaz pi elemeihez rendeljük a megrendelésvektor ri elemeit. Megálla-podás szerint p0 jelentse a centrumot.

Legyen J a rendelkezésre álló járművek halmaza, amelynek minden jk (k=1,2,... ,l)

ele-méhez hozzárendeljük a járműveket jellemző tk teherbírás- és az mk terhelésvektorokat.

1. Rendezzük a J halmazt a tk teherbírás szerint csökkenő sorrendbe.

2. A kapacitáskorlát miatt összevonásra alkalmatlan utakat a vizsgálatból kivonjuk. Eh-hez képezzük a ri(u)/tk hányadosokat minden i>0-ra és k-ra. Ha a

és vesszük a következő járművet, vagyis a k index értékét növeljük eggyel. Ha 1 azokat a szállítási pontokat, ahol ri=0 elhagyjuk, illetve az elhagyott pontoknak megfele-lő sorokat és oszlopokat a cij mátrixból töröljük.

3. Az új cij távolsági mátrixból az képletekkel kiszámítjuk az sij megtakarítási mátrix elemeit.

4. Az sij mátrix fedetlen elemei között megkeressük a legnagyobbat:

}

Ha találtunk 0-nál nagyobb elemet, akkor az 5. lépéssel folytatjuk, különben az eljárás befejeződött.

5. A rendezett J halmazból vegyük a következő jk járművet, amelynél mk=0, és megvizs-gáljuk a p0-px-p0 és a p0-py-p0 utak összevonásának lehetőségét:

Ha a rx+rytk, akkor az utak összevonhatók. Lefedjük az x-edik sort és az y-adik oszlo-pot, majd végrehajtjuk a következő változtatásokat:

y

és a 6. lépéssel folytatjuk.

Ha a rx+rytk, akkor nincs lehetőség az utak összevonására. Lefedjük az y-adik oszlopot, majd végrehajtjuk a következő változtatásokat:

y

k r

m : , :0 ry , és visszatérünk a 4. lépéshez.

6. A px-py járatot megpróbáljuk px-be menő vagy py-ból induló úttal bővíteni. Ezért meg-keressük az y-adik sor és az x-edik oszlop maximális elemeit, majd ezek közül először a nagyobbat választjuk:

max{s jyj 1 2, ,..., }nsyj*,

x

ixi n si

s 1,2,...,} *

max{   .

Ha az

x i

yj s

s ** , és a tkmkrj*, akkor a járatot hátulról, az y-ból induló és a j*-ba me-nő úttal bővítjük. Lefedjük az y-adik sort és a j*-edik oszlopot, majd

: k j*

k m r

m   ,

* : , 0 : , 0

: *

* r y j

rjjx   , és megismételjük a 6. lépést.

Ha az

x i

yj s

s ** , és a tkmkri*, akkor a járatot elölről, az i*-ból induló és az x-be menő úttal bővítjük. Lefedjük az i*-edik sort és a x-edik oszlopot, majd

: k i*

k m r

m   ,

* : , 0 : , 0

: *

* s x i

riyi   , és megismételjük a 6. lépést.

Különben nincs lehetőség az útösszevonásra, ezért lezárjuk a járatot: lefedjük az y-adik sort és az x-edik oszlopot, majd visszatérünk a 4. lépéshez.

In document LOGISZTIKAI TERVEZÉS (Pldal 100-107)