Bevezetés a lineáris programozásba 8. előadás Farkas István DE ATC Gazdaságelemzési és Statisztikai Tanszék Szimplex módszer p. 1/1
Az LP feladatok általános modellje A korlátozó feltételeket írjuk fel a következő alakban: a 11 x 1 + a 12 x 2 +... + a 1n x n b 1 a 21 x 1 + a 22 x 2 +... + a 2n x n b 2. a m1 x 1 + a m2 x 2 +... + a mn x n b m, ahol x i 0 minden i = 1,2,...,n-re, Szimplex módszer p. 2/1
Az LP feladatok általános modellje A korlátozó feltételeket írjuk fel a következő alakban: a 11 x 1 + a 12 x 2 +... + a 1n x n b 1 a 21 x 1 + a 22 x 2 +... + a 2n x n b 2. a m1 x 1 + a m2 x 2 +... + a mn x n b m, ahol x i 0 minden i = 1,2,...,n-re, míg a célfüggvény z = c 1 x 1 + c 2 x 2 +... + c n x n = max v. min alakú. Szimplex módszer p. 2/1
Az LP feladatok mátrix alakú modellje A modell vektorok és mátrixok seítségével egyszerűbben is felírható: 1.) x 0 2.) A x b 3.) z = c T x = max v. min Az A mátrix elemeit technikai vagy technológiai koefficiensnek nevezzük. Az x vektor elemei a változók (programozási feladatokban ezeket primál változóknak nevezzük). A b vektort készlet vagy kapacitás vektornak, a c T vektort pedig a célfüggvény vektorának nevezzük. Szimplex módszer p. 3/1
Az LP feladatok csoportosítása A feladatoknak két alaptípusa van: maximum- és minimumszámítás. A további csoportosítást maximum feladatoknál a korlátozó feltételek milyensége alapján végezzük. 1. Normál feladat: az x 0 A x b z = c T x = max feladatot normál feladatnak hívjuk. Ebben az esetben a feltételek mindegyike. 2. Módosított normál feladat: a korlátozó feltételek között és = is szerepel. 3. Általános feladat: a korlátozó feltételek között, = és is szerepel. Szimplex módszer p. 4/1
Grafikus megoldás Kétváltozós esetben az LP feladatokat grafikusan is megoldhatjuk. Erre nézünk most egy példát. Feladat. Két termék egy-egy darabjának előállításához négy alapanyagból rendre 8, 1, 3, 0 és 8, 3, 0, 2 egységet kell felhasználni. Az alapanyagokból maximálisan 64, 15, 18, 8 egységet lehet felhasználni. Az egyes végtermékek egy darabjának tiszta hozama 5, illetve 3 egység. Mennyit kell előállítani az egyes termékekből, hogy a hozam maximális legyen? Mennyi ez a maximum? Szimplex módszer p. 5/1
Grafikus megoldás Kétváltozós esetben az LP feladatokat grafikusan is megoldhatjuk. Erre nézünk most egy példát. Feladat. Két termék egy-egy darabjának előállításához négy alapanyagból rendre 8, 1, 3, 0 és 8, 3, 0, 2 egységet kell felhasználni. Az alapanyagokból maximálisan 64, 15, 18, 8 egységet lehet felhasználni. Az egyes végtermékek egy darabjának tiszta hozama 5, illetve 3 egység. Mennyit kell előállítani az egyes termékekből, hogy a hozam maximális legyen? Mennyi ez a maximum? Megoldás. Elkészítjük a feladat matematikai modelljét. Jelölje x az első termék darbszámát, míg y azt, hogy hány darabot állítunk elő a második termékből. Szimplex módszer p. 5/1
Grafikus megoldás Kétváltozós esetben az LP feladatokat grafikusan is megoldhatjuk. Erre nézünk most egy példát. Feladat. Két termék egy-egy darabjának előállításához négy alapanyagból rendre 8, 1, 3, 0 és 8, 3, 0, 2 egységet kell felhasználni. Az alapanyagokból maximálisan 64, 15, 18, 8 egységet lehet felhasználni. Az egyes végtermékek egy darabjának tiszta hozama 5, illetve 3 egység. Mennyit kell előállítani az egyes termékekből, hogy a hozam maximális legyen? Mennyi ez a maximum? Megoldás. Elkészítjük a feladat matematikai modelljét. Jelölje x az első termék darbszámát, míg y azt, hogy hány darabot állítunk elő a második termékből. x, y 0 8x + 8y 64 x + 3y 15 3x 18 2y 8 z = 5x + 3y max. Szimplex módszer p. 5/1
Grafikus megoldás Az egyenlőtlenség rendszert grafikusan oldjuk meg. Az első feltétel biztosítja, hogy a megoldásokat a koordináta rendszer első síknegyedében keressük. Tekintsünk az egyenlőtlenségek helyett egyenlőségeket. Ekkor egyenesek egyenleteit kapjuk, melyeket tengelymetszetes alakra átírva könnyen ábrázolhatunk. Ezek után besatírozzuk az egyenlőtlenségeket igazzá tévő területrészeket. Ha a feltételben a -jel szerepel, akkor az egyenes alatti pontok-, illetve az egyenes pontjainak koordinátái teszik igazzá az egyenlőtlenséget. A -jel esetén fordítva. A beszinezett területek metszete tartalmazza azon pontokat, melynek koordinátái az összes feltételt kielégítik. Ez a megengedett megoldások halamaza. Ezen pontok között keressük azt, amelyre a célfüggvény maximális értéket vesz fel. Szimplex módszer p. 6/1
Grafikus megoldás Az egyenlőtlenség rendszert grafikusan oldjuk meg. Az első feltétel biztosítja, hogy a megoldásokat a koordináta rendszer első síknegyedében keressük. Tekintsünk az egyenlőtlenségek helyett egyenlőségeket. Ekkor egyenesek egyenleteit kapjuk, melyeket tengelymetszetes alakra átírva könnyen ábrázolhatunk. Ezek után besatírozzuk az egyenlőtlenségeket igazzá tévő területrészeket. Ha a feltételben a -jel szerepel, akkor az egyenes alatti pontok-, illetve az egyenes pontjainak koordinátái teszik igazzá az egyenlőtlenséget. A -jel esetén fordítva. A beszinezett területek metszete tartalmazza azon pontokat, melynek koordinátái az összes feltételt kielégítik. Ez a megengedett megoldások halamaza. Ezen pontok között keressük azt, amelyre a célfüggvény maximális értéket vesz fel. A tengelymetszetes alakok: e 1 : e 2 : x 8 + y 8 x 15 + y 5 x e 3 : 6 y e 4 : 4 = 1 = 1 = 1 = 1. Szimplex módszer p. 6/1
Grafikus megoldás 8 Y z max = 36 e 3 6 4 e 4 2 0 z pr = 15 e 1 e 2 0 2 4 6 8 10 12 14 16 X Foglalkozzunk most a célfüggvénnyel. Adjunk a célfüggvénynek egy tetszőleges értéket, úgy hogy az könnyen ábrázolható legyen. (Érdemes az x és y együtthatóinak közös többszörösét választani.) Így a z pr próbaegyeneshez jutunk: 5x + 3y = 15. Szimplex módszer p. 7/1
Grafikus megoldás Azok a pontok, amelyekben a célfüggvény a 15 értéket veszi fel, a fenti egyenesen (ún. szintvonalon) fekszenek. A megengedett megoldások halmazának egyes pontjaiban a célfüggvény azt az értéket veszi fel, amelyhez az adott ponton áthaladó szintvonal tartozik. A más értékekhez tartozó szintvonalak evvel az egyenessel párhuzamosak. Ha az egyenest önmagával párhuzamosan felfelé toljuk, akkor z értéke nő, míg lefelé tolva z értéke csökken. Mivel z maximumát keressük, a z értékét növelnünk kell, az egyenest önmagával párhuzamosan felfelé toljuk el. Így elérhető, hogy a párhuzamos egyenesnek csak egy közös pontja legyen a megengedett megoldások halmazával. (Általános esetben ez lehet egy szakasz, illetve egy félegyenes is.) A konkrét példában ez a pont az e 1 és e 3 egyenesek metszéspontja. Ahhoz, hogy a maximumhelyet megkapjuk, meg kell oldanunk az: x = 6 8x + 8y = 64 egyenletrendszert. A szélsőértékhely koordinátái: x = 6, illetve y = 2. Az első termékből 6-ot, a másodikból 2-őt kell előállítanunk, hogy a maximális hozamot kapjuk. A maximum értékét a célfüggvénybe való behelyettesítéssel kapjuk meg: z max (6, 2) = 5 6 + 3 2 = 36. Szimplex módszer p. 8/1
A szimplex módszer A megoldás első lépéseként elkészítjük az induló táblázatot, melyben az u1, u 2, u 3 és u 4 szimbólummal az ún. duál változókat jelöljük. A gyakorlati példára gondolva ezek az erőforrások sorait jelölik. A felső sorban a primál változók ( x vektor elemei), az alsó sorban pedig a célfüggvény együtthatói ( c T vektor elemei), a jobb oldali oszlopban a készletvektor ( b) elemei szerepelnek. Egészítsük ki a táblázatot azzal, hogy a célfüggvény sorának végére 0-t, az elejére pedig ( z)-t írunk, kifejezve ezzel azt, hogy a táblázatnak megfelelő program alapján a célfüggvény értéke zérus, illetve hogy a célfüggvény maximumát kapjuk. Szimplex módszer p. 9/1
A szimplex módszer A megoldás első lépéseként elkészítjük az induló táblázatot, melyben az u1, u 2, u 3 és u 4 szimbólummal az ún. duál változókat jelöljük. A gyakorlati példára gondolva ezek az erőforrások sorait jelölik. A felső sorban a primál változók ( x vektor elemei), az alsó sorban pedig a célfüggvény együtthatói ( c T vektor elemei), a jobb oldali oszlopban a készletvektor ( b) elemei szerepelnek. Egészítsük ki a táblázatot azzal, hogy a célfüggvény sorának végére 0-t, az elejére pedig ( z)-t írunk, kifejezve ezzel azt, hogy a táblázatnak megfelelő program alapján a célfüggvény értéke zérus, illetve hogy a célfüggvény maximumát kapjuk. A teljes induló szimplex táblázat tehát: x y b u 1 8 8 64 u 2 1 3 15 u 3 3 0 18 u 4 0 2 8 z 5 3 0 Szimplex módszer p. 9/1
A szimplex módszer 1. Ebben a táblázatban és a további módosított táblázatokban is a bal oldali oszlopban szereplő változók értékei a jobb oldali oszlop megfelelő sorában olvashatók le, míg a felső sorban szereplő változók értékei a program alapján zérussal egyenlők. 2. A program módosítását az egyenletrendszerek megismert módszeréhez hasonlóan végezzük néhány módosítással: (a) (b) (c) Generáló elemet választunk, de ezt csak abból az oszlopból tehetjük meg, ahol a célfüggvény együtthatója nem negatív (így növekedik a célfüggvény). Abból az oszlopból célszerű választani, ahol legnagyobb az együttható. Generáló elemnek csak pozitív számot választunk, ellenkező esetben ugyanis az x i 0 feltételt sértenénk meg. Abból a sorból választunk generáló elemet, ahol a legszűkebb a keresztmetszet, azaz a választott oszlopból csak az az a ig > 0 elem lehet generáló elem, amelyre b i a ig a legkisebb. Szimplex módszer p. 10/1
A szimplex módszer 1. Ebben a táblázatban és a további módosított táblázatokban is a bal oldali oszlopban szereplő változók értékei a jobb oldali oszlop megfelelő sorában olvashatók le, míg a felső sorban szereplő változók értékei a program alapján zérussal egyenlők. 2. A program módosítását az egyenletrendszerek megismert módszeréhez hasonlóan végezzük néhány módosítással: (a) (b) (c) Generáló elemet választunk, de ezt csak abból az oszlopból tehetjük meg, ahol a célfüggvény együtthatója nem negatív (így növekedik a célfüggvény). Abból az oszlopból célszerű választani, ahol legnagyobb az együttható. Generáló elemnek csak pozitív számot választunk, ellenkező esetben ugyanis az x i 0 feltételt sértenénk meg. Abból a sorból választunk generáló elemet, ahol a legszűkebb a keresztmetszet, azaz a választott oszlopból csak az az a ig > 0 elem lehet generáló elem, amelyre b i a ig a legkisebb. Tekintsük tehát az induló táblázatot. Mivel 5 > 3, így az x oszlopból célszerű választani (x változót célszerű bevonni a programba, hiszen minden egysége 5 egységgel növeli a célfüggvényt). A hányadosokra: min 64 8, 15 1, 18 3 = 18 3, Szimplex módszer p. 10/1
A szimplex módszer tehát az u 3 sorhoz tartozó a legkisebb. Azaz az x oszlopából és u 3 sorából választunk generáló elemet amit úgy jelzünk, hogy bekeretezzük az itt álló 3-as számot. x y b u 1 8 8 64 u 2 1 3 15 u 3 3 0 18 u 4 0 2 8 z 5 3 0 3. Ebben az új, javított táblázatban nem hagytunk el oszlopot. A generáló elem sorának elemeit úgy kapjuk, hogy a régi táblázat ezen elemeit osztjuk a generáló elemmel. 4. A generáló elem oszlopának elemeit úgy kapjuk, hogy a régi táblázat ezen elemeit osztjuk a generáló elem ( 1)-szeresével. 5. A generáló elem helyére annak reciproka kerül. 6. A többi elemet a teljes bázistranszformációnál tanult és az egyenletrendszereknél alkalmazott módszer szerint számoljuk ki. Szimplex módszer p. 11/1
A szimplex módszer Az első javított táblázathoz tartozó program: u 3 y b u 1-8 3 8 16 u 2-1 3 3 9 1 x 0 6 3 u 4 0 2 8 z - 5 3 3-30 Szimplex módszer p. 12/1
A szimplex módszer Az első javított táblázathoz tartozó program: A táblázatból leolvasott eredmények: u 3 y b u 1-8 3 8 16 u 2-1 3 3 9 1 x 0 6 3 u 4 0 2 8 z - 5 3 3-30 x = 6 y = 0 z = 30 u 1 = 16 u 2 = 9 u 3 = 0 u 4 = 8 Szimplex módszer p. 12/1
A szimplex módszer Az első javított táblázathoz tartozó program: A táblázatból leolvasott eredmények: u 3 y b u 1-8 3 8 16 u 2-1 3 3 9 1 x 0 6 3 u 4 0 2 8 z - 5 3 3-30 x = 6 y = 0 z = 30 u 1 = 16 u 2 = 9 u 3 = 0 u 4 = 8 A táblázat jelentése: az első termékből 6, míg a másodikból 0 darabot állítunk elő. Ekkor a 3. nyersanyag teljesen elfogy, az első nyersanyagból 16, a másodikból 9, a negyedikből 8 egység marad. Ilyen termelési program mellett a bevétel 30 egység. Ezt a programot még lehet javítani, mert tudunk generáló elemet választani. Az új táblázat: Szimplex módszer p. 12/1
A szimplex módszer A második javított táblázathoz tartozó program: y - 1 3 u 2 2 u 3 u 1 b 1 8 2 3-3 8 3 1 x 3 0 6 2 u 4 3-2 8 4 z - 2 3-3 8-36 Szimplex módszer p. 13/1
A szimplex módszer A második javított táblázathoz tartozó program: y - 1 3 u 2 2 u 3 u 1 b 1 8 2 3-3 8 3 1 x 3 0 6 2 u 4 3-2 8 4 z - 2 3-3 8-36 Tovább már nem lehet generáló elemet választani, hiszen a célfüggvény együtthatói negatív számok. A kapott értékek optimálisak. Az eredmény: x = 6 y = 2 z max = 36 u 1 = 0 u 2 = 3 u 3 = 0 u 4 = 4 Szimplex módszer p. 13/1
A szimplex módszer A második javított táblázathoz tartozó program: y - 1 3 u 2 2 u 3 u 1 b 1 8 2 3-3 8 3 1 x 3 0 6 2 u 4 3-2 8 4 z - 2 3-3 8-36 Tovább már nem lehet generáló elemet választani, hiszen a célfüggvény együtthatói negatív számok. A kapott értékek optimálisak. Az eredmény: x = 6 y = 2 z max = 36 u 1 = 0 u 2 = 3 u 3 = 0 u 4 = 4 A táblázat jelentése: az első termékből 6, míg a másodikból 2 darabot állítunk elő. Ekkor az 1. és a 3. nyersanyag teljesen elfogy, a második nyersanyagból 3, a negyedikből 4 egység marad. Ilyen termelési program mellett a maximális bevétel 36 egység. Szimplex módszer p. 13/1
Példa Feladat. Oldja meg alábbi az lineáris programozási feladatot! x 1, x 2, x 3 0 x 1 + x 3 40 x 2 + x 3 10 x 1 + x 2 x 3 18 z = 4x 1 + 3x 3 max Megoldás. Szimplex módszer p. 14/1
Példa Feladat. Oldja meg alábbi az lineáris programozási feladatot! x 1, x 2, x 3 0 x 1 + x 3 40 x 2 + x 3 10 x 1 + x 2 x 3 18 z = 4x 1 + 3x 3 max Megoldás. x 1 x 2 x 3 b u 1 1 0 1 40 u 2 0-1 1 10 u 3 1 1-1 18 z 4 0 3 0 Szimplex módszer p. 14/1
Példa Feladat. Oldja meg alábbi az lineáris programozási feladatot! x 1, x 2, x 3 0 x 1 + x 3 40 x 2 + x 3 10 x 1 + x 2 x 3 18 z = 4x 1 + 3x 3 max Megoldás. x 1 x 2 x 3 b u 1 1 0 1 40 u 2 0-1 1 10 u 3 1 1-1 18 z 4 0 3 0 u 3 x 2 x 3 b u 1-1 -1 2 22 u 2 0-1 1 10 x 1 1 1-1 18 z -4-4 7-72 Szimplex módszer p. 14/1
Példa u 3 x 2 u 2 b u 1-1 1-2 2 x 3 0-1 1 10 x 1 1 0 1 28 z -4 3-7 -142 Szimplex módszer p. 15/1
Példa u 3 x 2 u 2 b u 1-1 1-2 2 x 3 0-1 1 10 x 1 1 0 1 28 z -4 3-7 -142 u 3 u 1 u 2 b x 2-1 1-2 2 x 3-1 1-1 12 x 1 1 0 1 28 z -1-3 -1-148 Szimplex módszer p. 15/1
Példa u 3 x 2 u 2 b u 1-1 1-2 2 x 3 0-1 1 10 x 1 1 0 1 28 z -4 3-7 -142 u 3 u 1 u 2 b x 2-1 1-2 2 x 3-1 1-1 12 x 1 1 0 1 28 z -1-3 -1-148 A célfüggvény a maximumát az x = (28, 2,12) T helyen veszi fel z max = 148 értékkel, míg az u = 0. Szimplex módszer p. 15/1