OPERÁCIÓKUTATÁS Kalmár János, 2011 Tartalom Több lineáris célfüggvényes LP Tiszta egészértékű LP
Több lineáris célfüggvényes LP A x b, x 0 (1) C x max (2) A feladatot lineáris vektormaximum problémának is nevezik (A és C R feletti mátrixok, b és x R feletti vektorok) Definíció: x 0 efficiens pont, ha kielégíti (1)-et, és x x 0, és x kielégíti (1)-re C x C x 0, tehát az efficiens pont optimális megoldása (1)+(2)-nek
Több lineáris célfüggvényes LP 1.Tétel: ha x 0 efficiens pont, akkor van olyan 0 ( i = 1, másképpen 1 T = 1) vektor, hogy x 0 optimális megoldása az alábbi lineáris programozási feladatnak: A x b, x 0 1 T = 1, 0 (3) T C x max A célfgv. sajnos nem lineáris!
Több lineáris célfüggvényes LP 2. Tétel: (1)-et kielégítő x 0 akkor és csak akkor efficiens pont, ha optimális megoldása (tehát x = x 0 ) az alábbi lineáris programozási feladatnak: A x b, x 0 C x C x 0, (4) T C x max 0 tetszőleges (pl. = 1)
Több lineáris célfüggvényes LP A 2. tétel alapján (4)-et iterációval oldjuk meg: Legyen x 0 (1)-et kielégítő kezdővektor (ha nincs, akkor optimális megoldás sincs) és a k-ik lépésben oldjuk meg az alábbi lineáris programozási feladatot x k -ra: A x k b, x k 0 C x k C x k-1, (5) 1 T C x k max
Több lineáris célfüggvényes LP Számpélda: x 1 + x 2 4 x 1, x 2 0 x 1 - x 2 2 A = 1 1 b = 4 C = 1 2 C x = x 1 + 2x 2 1 T C x = 2 x 1 1 -1 2 1 -2 x 1 - 2x 2 A kezdőmegoldás szimplex táblája: x 1 x 2 b u 2 x 2 b u 2 u 1 b u u x 2 -1/2 1/2 1 u x x 1 1/2 1/2 3 Az induló bázismegoldás tehát x 0 = (3,1) ezért C x 0 = (5,1) T
Több lineáris célfüggvényes LP Számpélda: 1. iteráció: x 1 + x 2 4 x 1, x 2 0 x 1 - x 2 2 -x x 2 -5 -x x 2 -1 t = 2 x 1 max A megoldás szimplex táblával: x 1 x 2 b u 2 x 2 b u 2 u 4 b u u u u x x u u u u u x t t t
Több lineáris célfüggvényes LP Számpélda: Az első iteráció eredménye megegyezik a kezdőértékkel (x 0 = x 1 ), ezért megvan az optimális megoldás: x = (3,1) és a célfgv C x = (5,1) T
Tiszta egészértékű LP A x = b, x 0 (1) c T x max (2) A Z feletti mátrix, b c és x Z feletti vektorok. Az (1)+(2) feladat x R n -ben a szokásos módon (pl. kétfázisú szimplex módszerrel) megoldható, de ez nem feltétlen eredményez egészértékű x megoldást!
Tiszta egészértékű LP A Gomory féle egész formák módszerének lényege, hogy a feladatot iterációk sorozatában oldja meg úgy, hogy mindaddig kiegészíti egy-egy új korlátozó feltétellel az (1) rendszert, amíg x megoldás minden komponense egészértékű nem lesz. Ehhez a szimplex tábla azon i. sorát veszi figyelembe, ahol a bázisváltozó (y i0 ) értéke nem egész.
Tiszta egészértékű LP Jelölje a szimplex tábla i. sorának elemeit y ij, akkor a Gomory féle metszésfeltétel szerint y ij - [y ij ]) x j y i0 - [y i0 ] (3) ahol [p] jelöli a p-nél nem nagyobb egész számot ( például [3.3]=3, [-3.3]=-4) s segédváltozó bevezetésével kapunk új egyenlőséget: y ij - [y ij ]) x j - s = y i0 - [y i0 ], s 0
Tiszta egészértékű LP Számpélda: 3x 1 + 2x 2 + x 4 = 10 x 1, x 2, x 3, x 4, x 5, x 6 0 x 1 + 4x 2 + x 5 = 11 3x 1 + 3x 2 + x 3 + x 6 = 13 t = 6x 1 + 7x 2 + x 3 max
Tiszta egészértékű LP A megoldás szimplex táblával: x 1 x 2 x 3 x 4 x 5 x 6 b u u u 1 cseréje x 1 -re u t u 1 x 2 x 3 x 4 x 5 x 6 b x 1 1/3 2/3 0 1/ /3 u 2 -1/3 10/3 0 -1/ /3 u 2 cseréje x 2 -re u t
Tiszta egészértékű LP u 1 u 2 x 3 x 4 x 5 x 6 b x 1 2/5 -1/5 0 2/5 -1/5 0 9/5 x 2 -1/10 3/ /10 3/ /10 u 3 cseréje x 3 -ra u 3 -9/10 -3/ /10 -3/10 1 7/10 -t -17/10 -1/ /10 -9/ /10 u 1 u 2 u 3 x 4 x 5 x 6 b x 1 2/5 -1/5 0 2/5 -1/5 0 9/5 x 2 -1/10 3/ /10 3/ /10 x 3 -9/10 -3/ /10 -3/10 1 7/10 -t -4/5 1/ /5 -3/ /10
Tiszta egészértékű LP A segédváltozók oszlopai elhagyhatók, közöttük ugyanis nem szabad bázisváltozót keresni. Egyik x komponens sem egész, ezért válasszuk ki a Gomory feltételhez a második (x 2 ) sort, és folytassuk a bázisvektor cserét (s-et!): x 4 x 5 x 6 b -s x 5 x 6 b x 1 2/5 -1/5 0 9/5 x 1 -4/9 -1/3 0 5/3 x 2 -1/10 3/ /10 x 2 1/9 1/3 0 7/3 x 3 -9/10 -3/10 1 7/10 x s 9/10 3/10 0 3/10 x 4 10/9 1/3 0 1/3 -t -4/5 -3/ /10 -t 8/9 -1/ /3
Tiszta egészértékű LP s oszlopa most is elhagyható. Most is van nem egész x komponens, ezért válasszuk ki a Gomory feltételhez a első (x 1 ) sort, és folytassuk a bázisvektor cserét (s-et!): x 5 x 6 b -s x 6 b x 1 -1/3 0 5/3 x 1 1/2 0 2 x 2 1/3 0 7/3 x 2 -1/2 0 2 x x 4 1/3 0 1/3 x 4 -1/ s 2/3 0 2/3 x 5 3/ t -1/ /3 -t
Tiszta egészértékű LP Látható, hogy x minden komponense most már egész, tehát megkaptuk az optimális megoldást: x 1 =2, x 2 =2, x 3 =1, x 4 =0, x 5 =1, x 6 =0 A célfgv: 27 Vegyük észre, hogy a bázistranszformáció során nem voltunk tekintettel arra, hogy csak olyan oszlopban válasszunk generáló elemet, ahol a célfgv együttható pozitív; célunk ugyanis nem a célfgv értékének javítása, hanem egészértékű megoldás keresése volt, ami csak a valós megoldás ‘rontásával’ kivitelezhető!