Operációkutatás NYME KTK, gazdálkodás szak, levelező alapképzés 00/003 tanév, II évf félév Előadó: Dr Takách Géza NyME FMK Információ Technológia Tanszék 9400 Sopron, Bajcsy Zs u 9 GT fszt 3 (99) 58 640 (30) 5600 785 takach@infnymehu http://titanicnymehu/ takach konzultáció: Lineáris programozás ( rész) rész: ld PowerPoint prezentáció Modellalkotás Grafikus megoldás Feladattípusok Szimplex algoritmus Feladattípusok A) Normál feladat ahol megköveteljük, hogy b,, b m 0 teljesüljön a x + + a n x n b a m x + + a mn x n b m x,, x n 0 f(x) = c x + + c n x n max Mátrixos alak: Itt is megköveteljük, hogy b 0 teljesüljön A vektorok közti és jelek komponensenkénti összehasonlítást jelentenek Tehát e f azt jelenti, hogy minden i-re e i f i A a transzponálást jelöli, azaz c egy sorvektor B) Módosított normál feladat (Lehet egyenlet is benne) x 0
Itt is megköveteljük, hogy b 0 és b 0 teljesüljön C) Általánosított normál feladat (Lehet = és is benne) Itt is megköveteljük, hogy b i 0 (i =,, 3) teljesüljön D) Standard feladat (Jobb oldalra nincs kikötés) A 3 x b 3 x 0 Állítás Az A), B), és C) feladatok mindegyike ekvivalens egy standard feladattal Bizonyítás A) egy speciális standard feladat B) A x b A x b A x b A x b C) A 3 x b 3 A x b A x b A 3 x b 3 Állítás Minden LP-feladat ekvivalens egy általánisított normál feladattal Bizonyítás ) Ha az LP-feladatban szerepel egy x előjelkötetlen változó, akkor annak minden előfordulási helyére írjunk (y z)-t, ahol y és z két új, nemnegatív változó ) Ha valamelyik feltétel jobb oldalán negatív szám áll, szorozzuk be -gyel 3) Ha minimumfeladattal van dolgunk: f(x) min, akkor ez ekvivalens a f(x) max feladattal Általánosított normál feladat visszavezetése módosított normál feladatra: a jelek helyett = írható, ha a bal oldalból levonok egy új, pozitív változót Pl: x 5 x u = 5 A módosított normál feladat az úgynevezett kétfázisú szimplex módszerrel oldható meg, később lesz Definíció Az Ax b, x 0 egyenletrendszer x lehetséges megoldásához tartozó eltérésvektor az az u vektor, amelyre Ax + u = b Az eltérésve ktor i-edik komponensét tehát úgy kapjuk, hogy megnézzük: a bal oldal értéke mennyivel kisebb a jobb oldalon álló b i -nél Nyilvánvalóan u 0 Módosított normál feladatra ill általános feladatra ld könyvben!
Definíció Az normál feladat kanonikus alakja az feladat Ax + u = b x 0, u 0 3 Mátrixosan a x + + a n x n + u b a m x + + a mn x n + u m b m x,, x n 0 f(x) = c x + + c n x n max ahol megköveteljük, hogy b,, b m 0 teljesüljön Ha bevezetjük a B = A E és az y = x u jelölést, akkor az egyenletrendszer By = b alakú lesz Ha felírjuk a By = b egyenletrendszer kibővített mátrixát, s az oszlopvektorokat rendre x,, x n, u,, u m jelöli, akkor az oszlopvektorok éppen az u,, u m bázisban vannak felírva Elemi bázistranszformációval át lehet térni más bázisra Definíció Egy kanonikus alakú feladat bázismegoldásán azt értjük, hogy a bázisban nem szereplő oszlopokhoz tartozó változók (szabad változók) értéke nulla, a bázisban szereplő oszlopokhoz tartozó változók (bázisváltozók, kötött változók) értéke pedig a jobb oldalon álló szám Lehetséges bázismegoldáson olyan bázismegoldást értünk, amelynek nincs negatív komponense Ha egy lehetséges bázismegoldásból elhagyjuk az u i -ket, akkor az eredeti normál feladat lehetséges megoldását kapjuk Normál feladat esetén a kiindulási u,, u m bázisnak megfelelő bázismegoldás: x = = x n = 0, u = b,, u m = b m Ez lehetséges bázismegoldás, mert b i 0 a x + + a n x n + u b a m x + + a mn x n + u m b m x,, x n 0 Tétel A kanonikus alakú LP feladatnak, s így a normál feladatnak is csak véges sok bázismegoldása van Bizonyítás Az (A E) mátrix rangja = sorok száma = m, hiszen az egységmátrix rangja m Az oszlopok száma: m + n A bázismegoldások száma ( ) m+n m Definíció Degenerált bázismegoldásban kevesebb nullától különböző elem van, mint az együtthatómátrix rangja Tehát a bázismegoldást adó táblázatban a bal oldalon nulla is szerepel Egyenletrendszer bázistáblázata Most az egyenletrendszer egy megoldása azonnal leolvasható, minket viszont az érdekel, hogy hogyan lehet áttérni egy másik (bázis)megoldásra Nem akarunk mindig feleslegesen leírni egy egységmátrixot, ennek viszont az lesz az ára, hogy a táblázat fejléceibe mindig fel kell írni, hogy a sorok és oszlopok milyen vektorokhoz/változókhoz tartoznak x + y + 3z 4x y + 5z 7 x + y + 3z + u = 4x y + 5z + u = 7
3 0 4 5 0 7 x y z b u 3 u 4 5 7 4 Áttérés az x, u bázisváltozókra: 3 0 0 5 3 u y z b 3 x u 5 3 A bázistáblás írásmódnál az elemi bázistranszformáció egy lépése a mátrixelemek szintjén a következő: kiválasztom a generálóelemet, g-t A generálóelem feletti és melletti két változónevet felcserélem 3 generálóelem reciprokát veszem 4 generálóelem oszopát osztom g-vel és szorzom -gyel 5 generálóelem sorát osztom a generálóelemmel 6 további elemek: téglalap szabály: g a b t t = t ab g Lehetséges bázistranszformáció Ha azt akarjuk, hogy az elemi bázistranszformáció során lehetséges bázismegoldást adó új bázisra térjünk át, azaz a jobb oldalakon ne álljon negatív szám, akkor a generálóelemet nem lehet tetszőlegesen választani Mivel a generálóelem sorát végigosztjuk a generálóelemmel, ennek a sornak a jobb oldala akkor marad nemnegatív, ha a generálóelem nemnegatív Nulla sem lehet generálóelem, tehát α) a generálóelem csak pozitív szám lehet Ha a generálóelem, akkor a k-adik sor jobb oldala (k i esetén) Itt b, b k, 0, kérdés, hogy mikor lesz b k 0? b k = b k b ia kj Két eset van: ha a kj 0, akkor b k b k 0 automatikusan teljesül Ha viszont a kj > 0, akkor teljesülnie kell Tehát b k = b k b ia kj > 0 b k a kj > b i β) az adott j-edik oszlop pozitív elemeivel osztjuk a megfelelő jobb oldalakat, s a generálóelemet abból a sorból választjuk, ahol ez a hányados a legkisebb Definíció Az α és β tulajdonságokkal rendelkező elemi bázistranszformációt lehetséges bázistranszformációnak nevezzük Tétel Egy lehetséges bázismegoldást adó bázistáblából el lehet jutni tetszőleges más lehetséges bázismegoldást adó bázistáblához a lehetséges elemi bázistranszformáció véges sokszori alkalmazásával
A célfüggvény értékét jelöljük z-vel! Ekkor z = c x, azaz 5 c x z = c x + ( z) = 0 Ez egy újabb egyenlet Ha z-t tekintjük változónak, akkor az egyenletrendszer kibővített mátrixa: Itt a bázis az u i és z változókhoz tartozó oszlopok: x x n u u m z b a a n 0 0 b a m a mn 0 0 b m c c n 0 0 0 x x j x n b u a a j a n b u i a i a in b i u m a m a mj a mn b m z c c j c n 0 A jobb alsó sarokban álló elem adja a bázismegolásban z értéket Ezt minimalizálni kell Lehetséges elemi bázistranszformáció esetén a jobb alsó sarokban lévő elemből le kell vonni: b i c j Kell: z csökkenjen, azaz c j > 0 legyen γ) A generálóelemet pozitív célfüggvényegyüttható (c j ) felett kell választani ahhoz, hogy az új bázismegoldásnál a célfüggvény értéke nagyobb legyen Hogyan érhet véget az algoritmus? Tétel Ha egy normál feladat megoldása során az egyik bázistáblában van egy olyan oszlop (j-edik), ahol minden 0, azaz a j 0, de c j > 0, akkor a célfüggvény felülről nem korlátos a lehetséges megoldások halmazán Bizonyítás Legyen x az aktuális bázismegoldás, s adjunk λ > 0-t a j-edik komponenséhez: Ez is lehetséges megoldás, ugyanis A célfüggvény értéke x λ = x + λe j Ax λ = A(x + λe j ) = Ax + Aλe j = Ax + λa j Ax b f(x λ ) = c x λ = c (x + λe j ) = c x + c λe j = c x + λc j = f(x) + λc j Ha λ, akkor f(x λ ) Ha nincs pozitív célfüggvényegyüttható, akkor γ) szerint a célfüggvényérték nem növelhető lehetséges elemi bázistranszformációval Belátható, hogy máshogyan sem: Tétel Ha egy bázistáblában nincs pozitív célfüggvényegyüttható, akkor az aktuális bázismegoldás optimális