Lineáris programozás és a szimplex módszer 2009. 11. 05. Derts Zsófia – BME VKKT
Bevezetés Lineáris programozás: lineáris egyenlet- rendszerek megoldása algoritmikus módon LP bemutatása példákon keresztül Grafikus és analitikus megoldás alkalmazása Konkrét példa kiterjesztése általános esetre Szimplex módszer alkalmazása Duál módszer a házi feladathoz Lineáris programozás és szimplex módszer 2017.04.05.
1. példa: textilipari feladat (1) Alapadatok: A és B, textilből készülő termékeket azonos alapanyagból gyártjuk. A-hoz 2 m, B-hez 5 m szükséges minden egyes méter késztermék előállításához. Hetente legfeljebb 3 000 méter alapanyag áll rendelkezésünkre. Egységnyi termelési költségek A-ra 20 Ft/m és B-re 30 Ft/m. A termelés heti összegzett költsége nem haladhatja meg a 18 000 Ft-ot. Lineáris programozás és szimplex módszer 2017.04.05.
1. példa: textilipari feladat (2) Alapadatok (folyt.): A gyártáshoz felhasználunk bizonyos segédanyagot, amelyből A-hoz 1 m-t, B-hez 0,5 m-t alkalmazhatunk. A felhasznált segédanyagok heti mennyisége nem haladhatja meg a 700 m-t. Előzetes felmérés szerint A-ból hetente legalább 100 m- re van szükség. A rendelkezésre álló gépparkkal a B-ből hetente legfeljebb 400 m gyártható. A termelés nyeresége termékegységre vetítve: A terméken 2 Ft, B-n 6 Ft. Lineáris programozás és szimplex módszer 2017.04.05.
1. példa: az információk rendezése Mátrixba rendezve az információkat: Minden összefüggés lineáris! Lineáris programozás és szimplex módszer 2017.04.05.
1. példa: a kérdés megfogalmazása Keressük azt a minden feltételt kielégítő megoldást (programot), ahol a nyereség (a célfüggvény értéke) a legnagyobb. Feladat: a célfüggvény maximalizálása a megadott feltételek mellett. Lineáris programozás és szimplex módszer 2017.04.05.
1. példa: matematikai jelrendszerben… x1 x2 (d) (e) (c) (b) (a) Lineáris programozás és szimplex módszer 2017.04.05.
1. példa: grafikus megoldás (1) x1 x2 (d) (e) (c) (b) (a) Lineáris programozás és szimplex módszer 2017.04.05.
1. példa: grafikus megoldás (2) x1 x2 z x1 x2 Lineáris programozás és szimplex módszer 2017.04.05.
1. példa: grafikus megoldás (3) Zopt x1 x2 z x1 x2 Lineáris programozás és szimplex módszer 2017.04.05.
A feladat általános esete (1) Mátrix alakban: Def.: Az x0 megoldás optimális, ha a célfüggvény ezen a helyen veszi fel a maximumát! Lineáris programozás és szimplex módszer 2017.04.05.
A feladat általános esete (2) Minden sor egyenlőtlenségét, valamint a –eiTx ≤ 0 feltételeket is kielégítő vektorok egy- egy zárt féltéren helyezkednek el. Az „m” darab ilyen zárt féltér által közbezárt térrészt konvex poliédernek nevezzük, amely egyben a megengedett megoldások (programok) halmaza. Lineáris programozás és szimplex módszer 2017.04.05.
Segédváltozók bevezetése (1) Az xn+i (i=1,2,….,m) változó feladata, hogy az egyenlőtlenségeket kiegészítse egyenlőségekké, tehát 0 < xn+i (i=1,2,….,m). Ekkor az együttható-mátrixunk kibővül jobbról egy egységmátrixszal. A célfüggvény együttható-vektorát csupa nulla komponenssel kiegészítve egy n+m dimenziós vektort kapunk, de a célfüggvény értéke nem változik: Lineáris programozás és szimplex módszer 2017.04.05.
Segédváltozók bevezetése (2) a x + a x + .......... .......... . + a x + x = b 11 1 12 2 1 n n n + 1 1 a x + a x + .......... .......... + a x + x = b 21 1 22 2 2 n n n + 2 2 . . . a x + a x + .......... ......... + a x + x = b m 1 1 m 2 2 mn n n + m m x ³ ; x ³ ; x ³ ; .......... .......... .; x ³ 1 2 3 n + m c x + c x + ..... + c x + x + .... + x = z 1 1 2 2 n n n + 1 n + m Lineáris programozás és szimplex módszer 2017.04.05.
A lineáris programozás alaptétele Tétel: Ha egy LP probléma rendelkezik (korlátos) optimális megoldással, akkor létezik a megoldások halmazának olyan extrém pontja, amely optimális. Az optimális megoldás megtalálható a konvex poliéder sarokpontjainak vizsgálatával. Lineáris programozás és szimplex módszer 2017.04.05.
Az LP alaptétel következményei Egy korlátos számú feltétel által megadott konvex poliéder korlátos számú sarokponttal rendelkezik. Ez garantálja, hogy az optimum korlátos számú lépésben megtalálható. Nézzük végig az összes sarokpontot? (Adott gyakorlati probléma esetén ez több millió is lehet.) Nem, mert a célfüggvény linearitása miatt van hatékonyabb módszer is. Lineáris programozás és szimplex módszer 2017.04.05.
LP megoldás szimplex algoritmussal Induljunk ki az egyik csúcspontból. Valamelyik határoló élen menjünk át egy olyan szomszédos csúcsra, ahol a célfüggvény értéke magasabb. Ha már nincsen magasabb célfüggvény értékkel jellemezhető szomszédos csúcs, akkor elértük az optimális megoldást. Lineáris programozás és szimplex módszer 2017.04.05.
A szimplex algoritmus tulajdonságai Minden extrém pontot egyértelműen meghatároz egy bázismegoldás. Ezt m változó kiválasztásával és a többi 0-vá tételével érhetjük el. (Minden sarok m darab feltétel teljes kimerítésével írható le.) Ennek a rendszernek a megoldása a bázis. Egy szomszédos csúcsra való áttérés azt jelenti, hogy egy új bázisra térünk át, ami csak egy elemében tér el a korábbitól. Lineáris programozás és szimplex módszer 2017.04.05.
2. példa: a szimplex módszer alk. A probléma jellemzői: 5 független változó 3 egyenlőtlenség + 1 kiegészítő feltétel feladat: a célfüggvény maximalizálása Megoldás: szimplex algoritmus alkalmazá- sával Lineáris programozás és szimplex módszer 2017.04.05.
2. példa: a szimplex módszer alk. x1 + 2 x2 + x3 + x5 ≤ 100 u1 x2 + x3 + x4 + x5 ≤ 80 u2 x1 + x3 + x4 ≤ 50 u3 x1 , x2 , x3 , x4 , x5 ≥ 0 Z = (2 x1 + x2 + 3 x3 + x4 + 2 x5) → MAX Lineáris programozás és szimplex módszer 2017.04.05.
2. példa: a szimplex módszer alk. A feladat átalakítása sztenderd formára: ha z-t minimalizálni kell: -z-t maximalizáljuk; ha x ≥ a van a feltételek között: -x ≤ -a ha egyenlőség van a feltételek között, egyenlőtlenségekké alakítjuk át azokat: x = b → ( x ≤ b és x ≥ b ) → ( x ≤ b és -x ≤ -b) Lineáris programozás és szimplex módszer 2017.04.05.
2. példa: megoldás szimplex táblával A feltételek rögzítése Erőforrások/feltételek X1 X2 X3 X4 X5 Kapacitás GE oszlop/ kapacitás u1 1 2 100 0,01 u2 80 0,0125 u3 50 0,02 max z 3 Induló szimplex tábla Generáló elem oszlopának kiválasztása (pozitív) → belépő változó G. E. sorának kiválasztása (elem/kapacitás=max) → távozó változó Elemcsere Vissza a 2. pontba Lineáris programozás és szimplex módszer 2017.04.05.
2. példa: megoldás szimplex táblával Az első elemcsere után: Erőforrások/feltételek X1 X2 u3 X4 X5 Kapacitás GE oszlop/ kapacitás u1 2 -1 1 50 0,02 u2 30 0,033 max X3 z -3 -2 -150 GE: új = 1 / régi GE sora: új = régi / GE GE oszlopa: új = - régi / GE A többi: új = régi – GEsor * GEoszlop / GE A sor- és az oszlopindex felcserélődik! Lineáris programozás és szimplex módszer 2017.04.05.
2. példa: megoldás szimplex táblával A második elemcsere után: Erőforrások/feltételek X1 X2 u3 X4 u2 Kapacitás GE oszlop/ kapacitás u1 1 -1 20 0,05 max X5 30 0,033 X3 50 0,02 z -2 -210 GE: új = 1 / régi GE sora: új = régi / GE GE oszlopa: új = - régi / GE A többi: új = régi – GEsor * GEoszlop / GE A sor- és az oszlopindex felcserélődik! Lineáris programozás és szimplex módszer 2017.04.05.
2. példa: megoldás szimplex táblával A harmadik elemcsere után: Erőforrások/feltételek u1 X2 u3 X4 u2 Kapacitás GE oszlop/ kapacitás X1 1 -1 20 0,05 X5 2 50 0,020 X3 30 0,033333333 z -2 -230 Ez egy olyan csúcspont a konvex poliéderen, ahol x1 = 20 x3 = 30 x5 = 50 x2 = x4 = 0 A haszon Z = 20 * 2 + 30 * 3 + 50 * 2 = 230 A megoldás optimális, mert már nincs pozitív elem az alsó sorban. Lineáris programozás és szimplex módszer 2017.04.05.
A duál módszer (1) Házi feladatban is ez vezet megoldásra! Lineáris programozási feladat esetén, ha a célfüggvényt minimalizálni kell és az együtthatói mind pozitívak, a szimplex módszer nem vezet megoldásra. Ekkor mátrixműveletek alkalmazásával az ún. duál módszert használjuk. Házi feladatban is ez vezet megoldásra! Lineáris programozás és szimplex módszer 2017.04.05.
A duál módszer (2) ui ui A b A b ≤ ≤ = min = max z -z a feladat duálisa -1 -5 -10 0 -5 -2 -1 itt a szimplex módszer nem jó zT ui xi xi - AT ui függőlegesen kell kiolvasni az eredmény -1-szeresét! ≤ megoldás szimplex módszerrel = max -bT - zmin Lineáris programozás és szimplex módszer 2017.04.05.
Összefoglalás LP LP alaptétele Szimplex módszer Duál módszer Lineáris programozás és szimplex módszer 2017.04.05.
Köszönöm a figyelmet! Derts Zsófia BME VKKT (U épület) derts.zsofia@vkkt.bme.hu Lineáris programozás és szimplex módszer 2017.04.05.