Döntéselmélet S Z Á L L Í T Á S I F E L A D A T
Szállítási feladat meghatározása Speciális lineáris programozási feladat. Legyen adott m telephely, amelyeken bizonyos fajta, tetszés szerint osztható termékből a 1, a 2,, a m mennyiséget tárolnak. Adott továbbá n felvevőhely, amelyek b 1, b 2,, b n mennyiséget igényelnek ebből a termékből. Egységnyi terméknek az i-edik telephelyről a j-edik felvevőhelyre való szállítási költsége c ij -vel legyen jelölve. Jelölje továbbá x ij az i-edik telephelyről a jedik felvevőhelyre szállítandó egyelőre ismeretlen mennyiséget. i = 1, 2,, m, j = 1, 2,, n 2
Szállítási feladat meghatározása 3 Feltesszük, hogy m n a i = b j i=1 j=1 azaz, hogy a tárolt áru összmennyisége megegyezik az igényelt áru összmennyiségével. Ez nem jelenti az általánosság megszorítását, hiszen vagy fiktív telephely, vagy fiktív felvevőhely beiktatásával mindig elérhető az előbbi egyenlőség. Olyan szállítást kell megvalósítanunk, amelynek során minden telephelyről minden árut elszállítanak, az egyes felvevőhelyek igényeit kielégítik, és ezt mind úgy teszik, hogy az összszállítási költség minimális.
Szállítási feladat meghatározása A szállítási problémát matematikailag a következőképpen fogalmazhatjuk meg: Legyen adott egy c 11 c 1j c 1n C = c i1 c ij c in c m1 c mj c mn m n-es mátrix, a költségmátrix. Legyenek továbbá adva az illetve a 1 0,, a m 0( tárolt mennyiségek) b 1 0,, b m 0( igényelt mennyiségek) 4
Szállítási feladat meghatározása 5 melyekre a m n i=1 a i = b j j=1 teljesül. Meghatározandók az olyan x ij mennyiségek, amelyek eleget tesznek a feltételeknek, n j=1 x ij m i=1 x ij = a i, i = 1, 2,, m = b j, j = 1, 2,, n x ij 0, i = 1, 2,, m, j = 1, 2,, n
Szállítási feladat meghatározása 6 s amelyekkel a m n i=1 j=1 c ij x ij költségfüggvény felveszi a minimumát. A szállítási probléma egy minimum lineáris programozási feladat.
Szimplex módszer Megoldási módszer m*n változós speciális termelésprogramozási feladat. (hosszadalmas, nehézkes) lásd lineáris programozás általános esete. Disztribúciós módszer induló megoldás meghatározása után optimalizálás 7
Disztribúciós módszer 1. Induló program készítése 2. Értékelés, hogy optimális-e (a hurok módszerrel) 3. A program javítása, ha még nem optimális. (Ismétlés addig, amíg nem az) 4. Módosítás megváltozott feltételeknek megfelelően. 8 (Ahol szállítunk azt kötött elemnek, ahol nem szállítunk azt szabad elemnek hívjuk. A kötött elemek száma megegyezik a sorok+oszlopok száma-1-el.)
Példa 4 gabonaraktárból 5 malomba akarnak összesen 200 tonnát elszállítani a lehető legkisebb összköltséggel. Raktári készletek: 40, 70, 60, 30, igények: 30, 60, 50, 40, 20 tonna. Egységnyi költségek a raktárak és malmok viszonyában a mellékelt ún. Költség-mátrix elemei szerint (eft-ban): 9 6 2 8 7 5 4 3 7 5 9 213 6 4 5 6 4 8 3
Északnyugati sarok módszer Északnyugati sarok módszer Az adott eljárás nem használja a megoldandó feladathoz tartozó C = cij m n költség mátrixot. Legkisebb költségű helyek választása Frekvenciák módszere Vogel-Korda módszer 10
Északnyugati sarok módszer Az igények kielégítését a táblázat bal felső sarkából kezdjük Majd, ha az első sort elszállítottuk, akkor folytatjuk a következő sorokkal. 11 f1 6 2 8 7 5 40 f2 4 3 7 5 9 70 f3 2 1 3 6 4 60 f4 5 6 4 8 3 30
Északnyugati sarok módszer Az igények kielégítését a táblázat bal felső sarkából kezdjük A szállítási költség a következő lesz: 6*30+2*10+3*50+7*20+3*30+6*30+8*10+3*20 = 12 f1 6 30 2 10 8 7 5 40 f2 4 3 50 7 20 5 9 70 f3 2 1 3 30 6 30 4 60 f4 5 6 4 8 10 3 20 30 = 900 eft
Legkisebb költségű helyek választása Az igények kielégítését a táblázat legkisebb elemével kezdjük Fontos, hogy nem ürülhet ki egy lépésben egyszerre feladóhely és rendeltetési hely (kivéve az utolsó lépés), így, ha ilyen eset adódna, akkor a következő elemet kell választani. Ha egy sor (oszlop) kiürült, akkor az adott opszlopban (sorban) kell a következő legkisebb költségű helyen szállítani. 13 f1 6 2 8 7 5 40 f2 4 3 7 5 9 70 f3 2 1 3 6 4 60 f4 5 6 4 8 3 30
Legkisebb költségű helyek választása Az igények kielégítését a táblázat bal felső sarkából kezdjük A szállítási költség a következő lesz: 2*40+7*10+5*40+9*20+2*30+1*20+3*10+4*30 = 14 f1 6 2 40 8 7 5 40 f2 4 3 7 10 5 40 9 20 70 f3 2 30 1 20 3 10 6 4 60 f4 5 6 4 30 8 3 30 = 760 eft
Frekvenciák módszere A feladat megoldásához először egy új táblát kell alkotni. 15 f1 6 2 8 7 5 40 f2 4 3 7 5 9 70 f3 2 1 3 6 4 60 f4 5 6 4 8 3 30 Az eredeti költségmátrixot sorok illetve oszlopok szerint a sorokban lévő költségelemek, illetve az oszlopokban lévő költségelemek átlagával redukáljuk. Meg kell keresni a legkisebb számot a táblázatban, és ott kell elkezdeni a programozást. Ezt a módszert közelítő módszerként használjuk. Jó induló programot ad, közel esik az optimumhoz.
Frekvenciák módszere Az igények kielégítését a táblázat legkisebb elemével kezdjük 16 f1-3,85-6,60 4-3,10-5,10-5,85-40 f2-5,85 5-5,60 7-4,10-7,10 2-1,85 70 f3-5,45 - -5,20 8-5,70 6-3,70-4,45 60 f4-4,45-2,20-6,70 3-3,70-7,45 1 30
Frekvenciák módszere Az igények kielégítését a táblázat bal felső sarkából kezdjük A szállítási költség a következő lesz: 2*40+4*30+3*0+5*40+1*20+3*40+4*10+3*20 = 17 f1 6 2 40 8 7 5 40 f2 4 30 3 0 7 5 40 9 70 f3 2 1 20 3 40 6 4 60 f4 5 6 4 10 8 3 20 30 = 640 eft
Vogel-Korda módszer A feladat megoldásához először egy új táblát kell alkotni. 18 f1 6 2 8 7 5 40 f2 4 3 7 5 9 70 f3 2 1 3 6 4 60 f4 5 6 4 8 3 30 Az eredeti költségmátrixot sor majd utána oszlop minimumok segítségével redukáljuk. A következő lépésben minden sorhoz és oszlophoz a két legkisebb elem meghatározásával különbségeket képzünk.
Vogel-Korda módszer Az igények kielégítését a legnagyobb differenciánál kezdjük Ha több van, akkor mindegy melyikkel indulunk. 19 diff f1 3 0 5 3 3 40 3 f2 0 0 3 0 6 70 0 f3 0 0 1 3 3 60 0 f4 1 3 0 3 0 30 0 diff 0 0 1 3 3
Vogel-Korda módszer Az igények kielégítését a táblázat bal felső sarkából kezdjük A szállítási költség a következő lesz: 2*40+4*30+5*40+1*20+3*40+4*10+3*20 = 20 f1 6 2 40 8 7 5 40 f2 4 30 3 7 5 40 9 70 f3 2 1 20 3 40 6 4 60 f4 5 6 4 10 8 3 20 30 = 640 eft
Hurok módszer Induló program javítás Akkor kell javítani, ha a hurokérték < 0, azaz ij < 0. Ha megtaláltuk, hogy hol javítunk a szabad elemet programunkba vonjuk. Szabad elem mindig + sarok, utána váltakoznak! Hogyan döntjük el, hogy mennyit lehet szállítani? A sarkokon lévő mennyiség dönti el, hogy mekkora mennyiséget lehet mozgatni. A minimálist kell választani, ezt lehet átpakolni. A hurkon belül a sarokból levonni, a + sarokhoz hozzáadni. Minden szabad elemre el kell végezni! Egészen addig, míg nem jutunk el az optimumba 21
Hurok módszer Vizsgáljuk meg az egyik induló program feladatát: Minden szabad elemhez fel lehet írni egy hurkot, ahol a hurkot úgy kell meghatározni, hogy csak kötött elemnél lehet fordulni. (Ha átmegyünk egy kötött elemen, és nem fordulunk, akkor az az elem nem lesz része a huroknak) 22 f1 6 30 2 10 8 7 5 40 f2 4 3 50 7 20 5 9 70 f3 2 1 3 30 6 30 4 60 f4 5 6 4 8 10 3 20 30
Hurok módszer Vizsgáljuk meg az egyik induló program feladatát: Minden szabad elemhez fel lehet írni egy hurkot, ahol a hurkot úgy kell meghatározni, hogy csak kötött elemnél lehet fordulni. (Ha átmegyünk egy kötött elemen, és nem fordulunk, akkor az az elem nem lesz része a huroknak) 23 f1 6 2 8 7 5 40 f2 4 3 7 5 9 70 f3 2 1 3 6 4 60 f4 5 6 4 8 3 30
Hurok módszer Határozzuk meg az első hurkot. 8 szabad elemhez: +8-7+3-2=+2 24 f1 6 2 8 7 5 40 f2 4 3 7 5 9 70 f3 2 1 3 6 4 60 f4 5 6 4 8 3 30-2 + 8 + 3-7 7 szabad elemhez:+7-6+3-7+3-2=-2-2 +7 + 3-7 +3-6 Minden további elemhez hasonlóan lehet meghatározni a hurkokat Ha találtunk negatív hurkot akkor az alkalmazható a feladatra.
Hurok módszer Táblázat a hurok eredményekkel: 25 f1 6 2 + - 40 f2 3 7 70 f3 3 6 60 f4 8 3 30
Hurok módszer 26-2 Alkalmazzuk a negatív(-2) értékű hurkot: 10 + 7 + 3 A negatívval jelölt kötött elemeken a 50-7 20 legkisebb szállított mennyiség: +3 30-6 30 {10,20,30} 10, tehát ezt a mennyiséget lehet szállítani a szab elemen. Minden + jelölésű elemhez hozzáadjuk, minden - jelölésből levonjuk. - 2 + 7 10 A költségünk 2*10 egységgel fog csökkeni. + 3 60-7 10 +3 40-6 20
Javítás alkalmazása: Hurok módszer A szállítási költség a következő lesz: 6*30+7*10+3*60+7*10+3*40+6*20+8*10+3*20 = = 800 eft Az új táblázathoz is kell hurkokat keresni, amíg csak + vagy 0 értékű hurkok lesznek csak. 27 f1 6 30 2 8 7 10 5 40 f2 4 3 60 7 10 5 9 70 f3 2 1 3 40 6 20 4 60 f4 5 6 4 8 10 3 20 30