Szállítási probléma - fogalmak Négy kibocsátóhelyről öt fogadóhelyre lehet ugyanazt az árut szállítani. A kibocsátóhelyek kapacitása az utolsó oszlopban látható. A fogadóhelyek igényei a legalsó sorban szerepelnek. A belső mátrix elemek a kibocsátó- és fogadóhelyek közötti távolságokat mutatják. Az összes igény: 20 + 40 + 35 + 25 + 45 = 165 Az összes kapacitás: 70 + 30 + 40 + 50 = 190, ez több, mint az összes igény, ezért 190 - 165 = 25 értéket egy virtuális (fiktív) fogadóhelyre viszünk. Ennek távolságait - praktikus okokból - zérusra vesszük fel. K3 helyről nem lehet az F3 -helyre árut szállítani.
Szállítási probléma - kezdőprogram bástyaszabállyal 40 25 5 30 5 5 25 5 15 25 25 10 40 10 15 25 40 A programozást az észak-nyugati sarok szerint kezdjük. A legkisebb elem ebben a sorban a K1-F2 elem, erre a lehető legnagyobb mennyiséget programozzuk. Módosítjuk az igényeket és a kapacitásokat. A sorban továbbhaladva a K1-F4 elemre tesszük a lehetséges 25 igényt. A K1 maradék kapacitását az F5-re helyezzük. Ezután lefelé haladunk az oszlopban. Ebben az oszlopban a K4-F5 reláció távolsága a legkisebb. A 40 kapacitás ide kerül. A többi lépést nem részletezzük. Minden lépésnél figyelje meg, miért így programoztunk. Ellenőrizze, hogy minden sorban és oszlopban a programozott mennyiségek egyeznek-e a kapacitásokkal, illetve az igényekkel!
Szállítási probléma - Potenciálok meghatározása 4 3 8 6 7 1 V1 V2 V3 V4 V5 V6 U1 U2 U3 U4 -2 -1 -4 Megvizsgáljuk potenciálpárokkal, hogy az eredmény optimális-e. A foglalt elemekre: Ui + Vj = Cij egyenlőségnek kell fennállnia. A kezdő U1 potenciált vegyük fel 0-ra! Ha U1 = 0, akkor V2-nek fentiek szerint 3-nak kell lennie (0 + 3 = 3). A sorban továbbhaladva, V4 6-ra, V5 pedig 7-re adódik. V5 oszlopában lefele haladunk, s megkapjuk U4 értékét: 3 - 7 = -4. Ezután V3 következi, melynek értéke értelemszerűen 8, továbbá U2 pedig -2! A továbbiakat nem részletezzük. Figyelje meg a számítás menetét!
Szállítási probléma - optimalitás ellenőrzése V1 V2 V3 V4 V5 V6 1 U1 U2 U3 U4 2 Ha valamely nem foglalt elemre igaz, hogy Ui + Vj > Cij, akkor a program javítható. Minden „szabad” relációra elvégezzük a következő számítást: Ui +Vj - Cij. Az eredményeket, ha azok nullák vagy pozitív értékűek, beírjuk a megfelelő helyre. K1-F1 relációra az eredmény negatív, mert 0 + 4 < 7! K1-F3 esetében az eredmény zérus. Ezt beírjuk a megfelelő helyre. A K1-F6 relációban az eredmény 1, hiszen 0 + 1 - 0 = 1! A számítás további lépéseinek magyarázatát mellőzzük. Figyelje meg a lépéseket! A legnagyobb pozitív szám (2) a K3-F5 viszonylatban van, itt javítjuk a programot!
Szállítási probléma - a program eredménye A program javítását tehát a K3-F5 elem bevonásával hajthatjuk végre. Mielőtt ezt tennénk, számítsuk ki az első programozás eredményét! A program eredményét az értékmátrix elemeinek (pl. km, költség stb.) és az oda programozott mennyiségek (pl. tonna) szorzatösszege adja. Eszerint: R = 3*40 + 6*25 + 7*5 + 2*5 + 6*25 + 3*15 + 0*25 + 4*10 + 3*40 = 670
Szállítási probléma - javítás1: hurok rajzolása + - - + + - A programot a K3-F5 elem bevonásával javítjuk. Egy „hurkot” rajzolunk, a következő szabály szerint: A bevonandó elemtől indulunk (valamelyik foglalt elem irányába). „Irányt” váltani csak foglalt elemnél lehet. Tovább folytatva a „hurok” rajzolását, visszaérkezünk a kiindulási helyre. A „hurok” páratlan sarkait „+”, a páros sarkokat „-” jellel látjuk el.
Szállítási probléma - javítás2: átprogramozás + - 20 10 - + 15 + 25 - 25 Megkeressük a „negatív” elemek közül melyikre van a legkisebb érték programozva. Ezt a K2-F1 relációban találjuk (15). Ezzel az értékkel a „pozitív” sarkokon lévő programozott mennyiségeket megnöveljük, a „negatív” sarkokat pedig ezzel az értékkel csökkentjük. A program eredménye változik. Az új eredmény a következő: R = 3*40 + 6*25 + 7*5 + 2*20 + 6*10 + 4*15 + 4*25 + 3*25 = 640 Figyelje meg, hogy a javulás: 670 - 640 = 30 = 15*2! Mi ebben az érdekes?
Szállítási probléma - javítás: 2. lépés 4 3 8 6 7 3 V1 V2 V3 V4 V5 V6 - + U1 U2 U3 U4 -3 5 -2 - -3 + 20 20 -4 Ismét megvizsgáljuk potenciál-párokkal, hogy az eredmény optimális-e. A számítást nem részletezzük. Figyelje meg az egyes lépéseket! Eztán a potenciál-párokkal megnézzük, hogy a program javítható-e. Amint látható, a program javítható a K1-F7 elem bevonásával. Megrajzoljuk a hurkot. Megjelöljük a sarkokat, a páratlanok pozitívak, a párosak negatívak lesznek. Elmozgatjuk a hurokban a legkisebb elemet, ami K1-F5 elemnél van, s értéke 5. Az új eredmény: 3*40 + 6*25 + 2*20 + 6*10 + 4*20 +4*25 + 3*25 = 625
Szállítási probléma -javítás: 3. lépés 1 3 5 6 4 V1 V2 V3 V4 V5 V6 - 15 + U1 U2 U3 U4 15 - + 1 3 10 1 + - 30 10 + - -1 35 15 Ismét megvizsgáljuk potenciál-párokkal, hogy az eredmény optimális-e. Van-e olyan reláció, amely bevonásával a program javítható? Két helyen is javíthatunk az eredményeken. A nagyobb értéket (3) választjuk. Megrajzoljuk a lehetséges hurkot. Megjelöljük a sarkokat „+” és „-” szimbólumokkal. Elmozdítjuk a legkisebb „negatív” elemet (10) a hurok mentén. Az új eredmény: 3*40 + 6*15 + 2*20 + 4*10 + 4*30 + 4*35 + 3*15 = 595
Szállítási probléma - javítás: 4. lépés 3 5 6 4 V1 V2 V3 V4 V5 V6 - + U1 U2 U3 U4 5 25 - -2 10 + 20 - + 1 10 -1 Ismét megvizsgáljuk potenciál-párokkal, hogy az eredmény optimális-e. Van-e olyan reláció, amely bevonásával a program javítható? Igen, a K3-F1 elemnél. Megrajzoljuk a hurkot. Megjelöljük a sarkokat. Elmozdítjuk a legkisebb „negatív” elemre programozott értéket a hurokban. Az eredmény: 3*40 + 6*5 + 2*10 + 4*20 + 3*10 + 4*30 + 4*35 + 3*15 = 585 A csökkenés értéke az előzőhöz képest 10. Miért ennyivel csökkent az eredmény?
Szállítási probléma - optimális eredmény Ez az optimális eredmény. Igazolja ezt a potenciálpárok meghatározásával!