300 likes | 487 Views
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
E N D
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
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
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
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
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
x2 (e) x1 (a) (c) (b) (d) 1. példa: matematikai jelrendszerben… Lineáris programozás és szimplex módszer
x2 (e) x1 (a) (c) (b) (d) 1. példa: grafikus megoldás (1) Lineáris programozás és szimplex módszer
z x2 x2 x1 x1 1. példa: grafikus megoldás (2) Lineáris programozás és szimplex módszer
Zopt z x2 x2 x1 x1 1. példa: grafikus megoldás (3) Lineárisprogramozásésszimplexmódszer
Def.: Az x0 megoldás optimális, ha a célfüggvény ezen a helyen veszi fel a maximumát! Mátrix alakban: A feladat általános esete (1) Lineárisprogramozásésszimplexmódszer
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
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
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 0 ; x 0 ; x 0 ; .......... .......... .; x 0 + 1 2 3 n m + + + + + + = c x c x ..... c x 0 x .... 0 x z + + 1 1 2 2 n n n 1 n m Lineáris programozás és szimplex módszer
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
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
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
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
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
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 = (2x1 + x2 + 3x3 + x4 + 2x5) → MAX Lineáris programozás és szimplex módszer
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
2. példa: megoldás szimplex táblával • A feltételek rögzítése • 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
2. példa: megoldás szimplex táblával • Az első elemcsere után: 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
2. példa: megoldás szimplex táblával • A második elemcsere után: 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
2. példa: megoldás szimplex táblával • A harmadik elemcsere után: 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
A duál módszer (1) • 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
A duál módszer (2) ui A b A b ui ≤ ≤ = max = min -z z a feladat duálisa -1 -5 -10 0 -5 -2 -1 itt a szimplex módszer nem jó zT ui xi ui függőlegesen kell kiolvasni az eredmény -1-szeresét! xi - AT ≤ megoldás szimplex módszerrel = max -bT - zmin Lineáris programozás és szimplex módszer
Összefoglalás • LP • LP alaptétele • Szimplex módszer • Duál módszer Lineáris programozás és szimplex módszer
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