A szimplex tábla. p. 1

Hasonló dokumentumok
A szimplex algoritmus

Alkalmazott optimalizálás és játékelmélet Lineáris programozás Gyakorlófeladatok. Rétvári Gábor

Opkut deníciók és tételek

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

A lineáris programozás alapjai

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2018/

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2017/

Operációkutatás. Vaik Zsuzsanna. ajánlott jegyzet: Szilágyi Péter: Operációkutatás

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

Érzékenységvizsgálat

Dualitás Dualitási tételek Általános LP feladat Komplementáris lazaság 2017/ Szegedi Tudományegyetem Informatikai Intézet

A szimplex algoritmus

Totális Unimodularitás és LP dualitás. Tapolcai János

Áttekintés LP és geometria Többcélú LP LP és egy dinamikus modell 2017/ Szegedi Tudományegyetem Informatikai Intézet

Bázistranszformáció és alkalmazásai 2.

Egészértékű lineáris programozás

Szimplex módszer, szimplex tábla Példaként tekintsük a következ LP feladatot:

Konjugált gradiens módszer

Kétfázisú szimplex algoritmus és speciális esetei

LINEÁRIS PROGRAMOZÁSI FELADATOK MEGOLDÁSA SZIMPLEX MÓDSZERREL

Lineáris algebra Gyakorló feladatok

Optimalizálás alapfeladata Legmeredekebb lejtő Lagrange függvény Log-barrier módszer Büntetőfüggvény módszer 2017/

10. Előadás. Megyesi László: Lineáris algebra, oldal. 10. előadás Sajátérték, Kvadaratikus alak

Lineáris programozás. Modellalkotás Grafikus megoldás Feladattípusok Szimplex módszer

Vektorok, mátrixok, lineáris egyenletrendszerek

Vektorterek. =a gyakorlatokon megoldásra ajánlott

1. Mátrixösszeadás és skalárral szorzás

Intergrált Intenzív Matematika Érettségi

Operációkutatás. Vaik Zsuzsanna. Budapest október 10. First Prev Next Last Go Back Full Screen Close Quit

Operációkutatás I. Bajalinov, Erik, Nyíregyházi Főiskola, Matematika és Informatika Intézete Bekéné Rácz, Anett, Debreceni Egyetem, Informatikai Kar

Operációkutatás. 4. konzultáció: Szállítási feladat. A feladat LP modellje

Klasszikus alkalmazások

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

3. Lineáris differenciálegyenletek

9. Előadás. Megyesi László: Lineáris algebra, oldal. 9. előadás Mátrix inverze, mátrixegyenlet

Norma Determináns, inverz Kondíciószám Direkt és inverz hibák Lin. egyenletrendszerek A Gauss-módszer. Lineáris algebra numerikus módszerei

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

Szemidenit optimalizálás és az S-lemma

Lineáris algebra gyakorlat

Dualitás Dualitási tételek Általános LP feladat Komplementáris lazaság 2015/ Szegedi Tudományegyetem Informatikai Tanszékcsoport

Mátrixok 2017 Mátrixok

Saj at ert ek-probl em ak febru ar 26.

9. Előadás. (9. előadás) Lineáris egyr.(3.), Sajátérték április / 35

Lineáris programozás. A mese

1. zárthelyi,

Feladatok a Gazdasági matematika II. tárgy gyakorlataihoz

Determinánsok. A determináns fogalma olyan algebrai segédeszköz, amellyel. szolgáltat az előbbi kérdésekre, bár ez nem mindig hatékony.

5. Előadás. (5. előadás) Mátrixegyenlet, Mátrix inverze március 6. 1 / 39

VEKTORTEREK I. VEKTORTÉR, ALTÉR, GENERÁTORRENDSZER október 15. Irodalom. További ajánlott feladatok

Lineáris leképezések (előadásvázlat, szeptember 28.) Maróti Miklós, Kátai-Urbán Kamilla

lineáris programozás esetében. Ennek ez idő szerint legkorábbi formalizálását

Lineáris algebra. (közgazdászoknak)

Bevezetés a lineáris programozásba

S Z Á L L Í T Á S I F E L A D A T

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

15. LINEÁRIS EGYENLETRENDSZEREK

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek

Az ellipszoid algoritmus

I. VEKTOROK, MÁTRIXOK

Numerikus módszerek 1.

Nem-lineáris programozási feladatok

Mat. A2 3. gyakorlat 2016/17, második félév

Lineáris egyenletrendszerek

Korlátozás és szétválasztás módszere Holló Csaba 2

HORNUNG TAMÁS * Diszkrét egyenletes közelítés: a lineáris programozás egy alkalmazása

Nagy Gábor compalg.inf.elte.hu/ nagy

Gauss-Seidel iteráció

VIK A2 Matematika - BOSCH, Hatvan, 3. Gyakorlati anyag. Mátrix rangja

Gauss elimináció, LU felbontás

Komáromi Éva LINEÁRIS PROGRAMOZÁS

Diszkrét matematika I. gyakorlat

Kvadratikus alakok és euklideszi terek (előadásvázlat, október 5.) Maróti Miklós, Kátai-Urbán Kamilla

szantai Az operációkutatás matematikai módszerei

differenciálegyenletek

Első zárthelyi dolgozat megoldásai biomatematikából * A verzió

Lineáris egyenletrendszerek

Mátrixjátékok tiszta nyeregponttal

Gyakorló feladatok I.

ALGEBRAI KIFEJEZÉSEK, EGYENLETEK

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

1. Determinánsok. Oldjuk meg az alábbi kétismeretlenes, két egyenletet tartalmaz lineáris egyenletrendszert:

9. Előadás. Megyesi László: Lineáris algebra, oldal. 9. előadás Mátrix inverze, Leontyev-modell

1. Generátorrendszer. Házi feladat (fizikából tudjuk) Ha v és w nem párhuzamos síkvektorok, akkor generátorrendszert alkotnak a sík vektorainak

Hiperbolikus programozás Elmélet, módszerek, alkalmazások, szoftver

7. Előadás. Megyesi László: Lineáris algebra, oldal. 7. előadás Elemi bázistranszformáció

Mátrixok, mátrixműveletek

Lineáris algebra és a rang fogalma (el adásvázlat, szeptember 29.) Maróti Miklós

Nagy Gábor compalg.inf.elte.hu/ nagy

Bevezetés a számításelméletbe I. feladatgyűjtemény. Szeszlér Dávid, Wiener Gábor

5 = hiszen és az utóbbi mátrix determinánsa a középs½o oszlop szerint kifejtve: 3 7 ( 2) = (példa vége). 7 5 = 8. det 6.

Jegyzet. az Operációkutatás II cím tantárgyhoz. Utolsó frissítés: május 20. Király Tamás el adásai alapján készítette Papp Olga

DIFFERENCIÁLEGYENLETEK. BSc. Matematika II. BGRMA2HNND, BGRMA2HNNC

Lineáris algebra és mátrixok alkalmazása a numerikus analízisben

λx f 1 (x) e λx f 2 (x) λe λx f 2 (x) + e λx f 2(x) e λx f 2 (x) Hasonlóan általában is elérhető sorműveletekkel, hogy csak f (j)

Lineáris Algebra gyakorlatok

Összeállította: dr. Leitold Adrien egyetemi docens

A lineáris optimalizálás rugalmas indexválasztási szabályainak elméletéről és gyarkorlatáról

Lineáris leképezések. 2. Lineáris-e az f : R 2 R 2 f(x, y) = (x + y, x 2 )

Miskolci Egyetem. Diszkrét matek I. Vizsga-jegyzet. Hegedűs Ádám Imre

Átírás:

A szimplex tábla Végződtetés: optimalitás és nem korlátos megoldások A szimplex algoritmus lépései A degeneráció fogalma Komplexitás (elméleti és gyakorlati) A szimplex tábla Példák megoldása a szimplex tábla segítségével p 1

Emlékeztető: a szimplex algoritmus Tekintsük az alábbi lineáris programot z = max c T x st Ax = b x 0 ahol A egy m n mátrix, rang(a) = rang(a,b) = m, b egy oszlop m-vektor, x pedig oszlop n-vektor Legyen B egy bázis, ekkor az oszlopok megfelelő átrendezése után A = [B N] [ ] [ ] xb B 1 b Legyen továbbá x = = x N 0 tartozó bázismegoldás és tegyük fel, hogy ez a bázismegoldás megengedett (B 1 b 0) a B bázishoz p 2

Emlékeztető: a szimplex algoritmus A lineáris program a nembázisváltozók terében max z 0 + j N z jx j st x B = b j N y jx j x B,x N 0 ahol N a nembázisváltozók halmaza b = B 1 b y j a B 1 N mátrix j-edik nembázisváltozóhoz tartozó oszlopa, y j = B 1 a j z 0 = c B T B 1 b = c B T b z j a c N T c B T B 1 N sorvektor j-edik nembázis-változóhoz tartozó eleme p 3

Emlékeztető: a szimplex algoritmus A pivotszabályok x k beléphet a bázisba, ha z k > 0 x r kilép a bázisból: r = argmin i {1,,m} { bi y ik : y ik > 0 A (primál) szimplex algoritmus optimalitási feltétele: az x megengedett bázismegoldás optimális megoldás, ha j N : z j 0 Az alábbiakban feltesszük, hogy a megengedett bázismegoldásunk nem degenerált, vagyis b > 0 A degenerált esettel később foglalkozunk } p 4

Nemkorlátos megoldás Adva egy x megengedett bázismegoldás, legyen x k egy nembázisváltozó úgy, hogy z k > 0 max st x = [ ] xb x N z 0 +z k x ] k [ b = 0 x 0 +[ yk e k ]x k Ekkor x k növelésével nő a célfüggvény értéke Tudjuk, hogy x k -t addig növelhetjük, amíg valamelyik bázisváltozó negatívvá nem válik x k min i B { bi y ik : y ik > 0 } p 5

Nemkorlátos megoldás A korlát csak akkor van értelmezve, ha van i bázisváltozó, melyre y ik > 0 Ha ilyen nincs, tehát y k 0, akkor nincs bázisváltozó, amely blokkolná x k növelését Tétel: Egy max{c T x : Ax = b,x 0} lineáris program megoldása nemkorlátos, ha van x megengedett bázismegoldás és x k nembázisváltozó, hogy z k > 0 és y k 0 [ ] yk Biz: a d = e k a megengedett tartomány egy iránya, és a x = x+dλ,λ 0 pontok mind megengedett megoldások Ilyenkor minden K > 0-hoz létezik λ > 0, hogy c T x = z 0 +λz k > K p 6

Nemkorlátos megoldás: példa Adott kanonikus formában a következő lineáris program max x 1 + 3x 2 st x 1 2x 2 4 x 1 + x 2 3 x 1, x 2 0 Az x 3 [ és x 4 slack-változók] bevezetésével [ ] 1 2 1 0 4 A =, b =, c 1 1 0 1 3 T = [1 3 0 0] [ ] 2 1 Tekintsük a B = [a 2 a 3 ] = [ ] [ ][ ] x2 0 1 4 x B = = = x 3 1 2 3 bázist 1 0 [ ] 3, x 10 N = [ x1 x 4 ] = [ ] 0 0 p 7

Nemkorlátos megoldás: példa A szokásos paraméterek z 0 = c B T b = 9 [ ] 1 1 c T N c T B B 1 N = [1 0] [3 0] = [4 3] 1 2 [ ][ ] [ ] 0 1 1 0 1 1 B 1 N = = 1 2 1 1 1 2 A lineáris program az aktuális bázisban max 9+4x 1 3x [ ] [ ] [ ] 4 x2 3 1 st = x x 3 10 1 1 x 1,x 2,x 3,x 4 0 [ ] 1 x 2 4 p 8

Nemkorlátos megoldás: példa A nemkorlátosságot okozó sugár x = x 1 x 2 x 3 x 4 = 0 3 10 0 + 1 1 1 λ, λ 0 0 A célfüggvény értéke 9+4λ Az eredeti változók terében [ x1 x 2 ] = [ 0 3 ] [ 1 + 1 ] λ : λ > 0 6 4 2 x 2 [0 3] T d -x 1 +x 2 3 2 4 6 x 1-2x 2 4 x p 9 1

A szimplex algoritmus Tekintsük az alábbi lineáris programot z = max c T x st Ax = b x 0 ahol A egy m n mátrix, rang(a) = rang(a,b) = m, b egy oszlop m-vektor, x pedig oszlop n-vektor Tegyük fel, hogy egyik bázismegoldás sem degenerált A szimplex algoritmus egy iteratív eljárás a fenti lineáris program megoldására, amely nem igényel mást csak lineáris egyenletrendszerek megoldását és egyszerű lineáris algebrai műveleteket Inicializálás: keressünk egy kezdeti megengedett bázismegoldást és a hozzá tartozó B bázist p 10

A szimplex algoritmus: fő ciklus 1 Oldjuk meg a Bx B = b egyenletrendszert A megoldás egyedi: x B = B 1 b = b és legyen x N = 0 2 Oldjuk meg a w T B = c B T egyenletrendszert A megoldás egyedi: w T = c B T B 1 Számoljuk ki minden j nembázisváltozóra z j = c j w T a j értékét és legyen a belépő (nembázis)változó k = argmax j N 3 Ha z k 0, akkor vége: z j [ ] xb x N (Dantzig s pivot rule) optimális megoldás és a célfüggvény értéke c B T x B Ellenkező esetben tovább a következő lépésre p 11

A szimplex algoritmus: fő ciklus 4 Oldjuk meg a By k = a k egyenletrendszert A megoldás egyedi: y k = B 1 a k Ha y k 0, akkor vége: a lineáris program nemkorlátos a ] ] } {[ b yk +[ λ : λ 0 sugár mentén 0 e k Ellenkező esetben tovább a következő lépésre 5 Pivot: x k belép a bázisba és x Br kilép a bázisból, ahol { } bi r = argmin : y ik > 0 i {1,,m} y ik (minimum ratio test) Frissítsük a B bázist (a Br -t felváltja a k ), N-t, c B T -t és c N T -t és vissza az első lépésre p 12

A szimplex algoritmus: komplexitás Tétel: Ha egyik lépésben sem talál degenerált bázismegoldást, akkor a szimplex algoritmus véges számú lépésben megtalálja az optimális megoldást vagy megmutatja, hogy a lineáris program nemkorlátos Biz: minden iterációban három eset egyike következhet be ha z k 0, akkor kiszállunk az optimális megoldással ha z k > 0 de y k 0, akkor megállapítjuk, hogy a lineáris program nemkorlátos és kiszállunk ha z k > 0 és y k 0, akkor a bázisból kilép egy r változó úgy, hogy b r > 0 és a célfüggvény értéke z k br > 0 határozottan nő Tehát minden iterációs lépésben vagy kiszállunk, vagy egy új, az előzőtől eltérő megengedett bázismegoldást adunk A bázismegoldások száma véges p 13

Degeneráció Ha x k belép a bázisba, x Br kilép onnan és y k 0 Pivot előtt z 0 x B x k = 0 Pivot után z 0 +z k br x B b r y k x k = b r A bázismegoldás degenerált, ha x B = b 0 Ekkor van x Br = b r = 0, és ha ráadásul > 0, akkor { } x Br bi blokkolja x k növelését: min : y ik > 0 = 0 y i {1,,m} y ik rk A pivot utánx k = b r = 0 és a célfüggvény értéke maradz 0 A pivot során ugyanabban az extrém pontban maradtunk p 14

Degeneráció Cycling: egyik degenerált bázismegoldásról a másikra ugorva körbejárunk ugyanazon az extrém ponton Ilyenkor a véges futás nem garantált A gyakorlatban nagyon ritkán fordul elő Pivotszabály: mivel a bázisba belépő változó kiválasztása tetszőleges ha z j > 0, különböző szabályok adhatók Dantzig s pivot rule: k = argmaxz j j N Mohó (greedy): válasszuk azt a változót, ami a legnagyobb növekedést okozza a célfüggvényben Bland s pivoting rule: válasszuk a legkisebb indexű nembázisváltozót amire z j > 0 és ha több bázisváltozóra is x Br = 0, válasszuk a legkisebb indexűt kilépő változónak Bland szabályának használatával elkerülhető a cycling p 15

A szimplex algoritmus: komplexitás A Dantzig pivot szabály használata esetén a szimplex algoritmus komplexitása exponenciális lehet Legrosszabb esetben végig kell nézni akár ( n m bázismegoldást Adható példa, ahol ez bekövetkezik Szinte minden determinisztikus szabályhoz van ellenpélda Nyitott kérdés: van-e determinisztikus szabály, amely az exponenciálisnál jobb futási időt ad? A gyakorlatban a szimplex algoritmus nagyon gyors Általában m és n függvényében lineáris számú pivot elég Léteznek garantáltan polinom-idejű belsőpontos megoldó algoritmusok (Hacsián-féle ellipszoid módszer, Karmarkar algoritmusa) ) p 16

A szimplex tábla A szimplex algoritmus jelen formájában minden lépésben három lineáris egyenletrendszer megoldását igényli A szimplex táblák használatával ez elkerülhető Tegyük fel, hogy van egy kezdeti megengedett bázismegoldásunk B bázissal Legyen z egy új változó, ami célfüggvény aktuális értékét jelöli z = c B T x B +c N T x N Tekintsük a lineáris programot az alábbi formában max z st z c T B x B c T N x N = 0 Bx B + Nx N = b x B, x N 0 p 17

A szimplex tábla A x N megadja x B -t: x B +B 1 Nx N = B 1 b És tudjuk, hogy z = c B T B 1 b+(c N T c B T B 1 N)x N z +0x B +(c B T B 1 N c N T )x N = c B T B 1 b A nembázisváltozók terében max z st z + 0x B + (c T B B 1 N c T N )x N = c T B B 1 b I m x B + B 1 Nx N = B 1 b x B, x N 0 A fenti alak táblázat formájában z x B x N RHS z 1 0 c B T B 1 N c N T c B T B 1 b 0 sor x B 0 I m B 1 N B 1 b 1m sorok p 18

A szimplex tábla z x B1 x Bm x N1 x Nn m RHS z 1 0 0 z 1 z n m z 0 x B1 0 1 0 y 1,1 y 1,n m b1 x Bm 0 0 1 y m,1 y m,n m bm x B1,x B2,,x Bm sorra a bázisváltozók x N1,x N2,,x Nn m sorra a nembázisváltozók z j a c B T B 1 N c N T sorvektor j nembázisváltozóhoz tartozó eleme és z 0 = c B T B 1 b bi a B 1 b oszlopvektor i-edik eleme y ij a B 1 N mátrix (i,j) eleme p 19

A szimplex tábla: belépő változó A célfüggvény alakja a korábbiakhoz képest megváltozott z + j N z j x j = z 0 A célfüggvény értékének növeléséhez olyan k nembázisváltozót kell keresnünk, amelyre z k < 0 A belépő változó a tábla nulladik sorából kiolvasható A bázisba belép k nembázisváltozó k = argmin j N z j Optimalitási feltétel z k = min j N z j 0 p 20

A szimplex tábla: kilépő változó A bázisváltozók kifejezése a szimplex táblában I m x B +B 1 Nx N = B 1 b A x Bi bázisváltozó a tábla i-edik sorából olvasható ki x Bi + j N y ij x j = b i x Bi értéke x k növelésére y ik x k -val csökken nemkorlátos a megoldás, ha nincs pozitív elem k oszlopában: y k 0 a bázisból kilépő r változó r = argmin i {1,,m} { } bi : y ik > 0 y ik p 21

A szimplex tábla: pivot Tegyük fel, hogy k belép a bázisba r kilép A pivot előtt a szimplex tábla z x B1 x Br x Bm x Nj x Nk RHS z 1 0 0 0 z j z k z 0 x B1 0 1 0 0 y 1j y 1k b1 x Br 0 0 1 0 y rj br x Bm 0 0 0 1 y mj y mk bm p 22

A szimplex tábla: pivot 1 Osszuk el az r-edik sort -val z x B1 x Br x Bm x Nj x Nk RHS z 1 0 0 0 z j z k z 0 x B1 0 1 0 0 y 1j y 1k b1 x Br 0 0 1 0 y rj 1 br x Bm 0 0 0 1 y mj y mk bm p 23

A szimplex tábla: pivot 2 Minden i = 1,2,,m : i r sorra vonjuk ki a sorból az r-edik sor y ik -szorosát z x B1 x Br x Bm x Nj x Nk RHS z 1 0 0 0 z j z k z 0 x B1 0 1 y 1k 0 y 1j y 1k y rj 0 br b1 y 1k x Br 0 0 1 0 y rj 1 br x Bm 0 0 y mk 1 y mj y mk y rj 0 bm y mk br p 24

A szimplex tábla: pivot 3 Vonjuk ki a nulladik sorból az r-edik sor z k -szorosát z x B1 x Br x Bm x Nj x Nk RHS z 1 0 z k y 1k 0 x B1 0 1 y 1k 0 y 1j y 1k y rj z j z k y rj 0 z 0 z k br 0 br b1 y 1k x k 0 0 1 0 y rj 1 br x Bm 0 0 y mk 1 y mj y mk y rj 0 bm y mk br x k belépett a bázisba, ezért az új szimplex táblában az r-edik sor most már x k -t adja meg x Br kilépett a bázisból és nembázis változó lett p 25

A szimplex tábla: példa Tekintsük a lineáris programot max x 1 x 2 + 4x 3 st x 1 + x 2 + 2x 3 9 x 1 + x 2 x 3 2 x 1 + x 2 + x 3 4 x 1, x 2, x 3 0 Slack-változókkal standard alakra hozva max x 1 x 2 + 4x 3 + 0x 4 + 0x 5 + 0x 6 st x 1 + x 2 + 2x 3 + x 4 = 9 x 1 + x 2 x 3 + x 5 = 2 x 1 + x 2 + x 3 + x 6 = 4 x 1, x 2, x 3, x 4, x 5, x 6 0 p 26

A szimplex tábla: példa Először kezdeti bázist kell választanunk: álljon ez a slack-változók oszlopaiból Kanonikus alakban adott max{c T x : Ax b,x 0} lineáris program esetén a bevezetendő x s slack-változók oszlopai mindig bázist alkotnak: max{c T x : Ax+Ix s = b,x 0,x s 0} és B = I mindig nemszinguláris Ha ráadásul b 0, akkor ez a bázis egyben megengedett is, hiszen b = B 1 b = b 0 Ellenkező esetben a kezdeti bázis keresése speciális lépéseket igényel (itt nem tárgyaljuk) Legyen tehát B = [a 4 a 5 a 6 ] A nulladik sor: c B T B 1 N c N T = c N T mert az x s bázisváltozókhoz a célfüggvényben 0 együttható áll és így c B T = 0, és hasonlóan z 0 = c B T B 1 b = 0 p 27

A szimplex tábla: példa A kezdeti szimplex tábla (a nulladik sort invertálni kell!) z x 1 x 2 x 3 x 4 x 5 x 6 RHS z 1 1 1 4 0 0 0 0 x 4 0 1 1 2 1 0 0 9 x 5 0 1 1 1 0 1 0 2 x 6 0 1 1 1 0 0 1 4 A bázis nem optimális mert z 3 = 4 A belépő változó x 3 mert z 3 = min j N z j = 4 Nem kapunk nemkorlátos eredményt, mert van y i3 > 0 A kilépő változó x 6 mert b6 y 63 = min{ 9 2,4} = 4 p 28

A szimplex tábla: példa 1 Osszuk el az x 6 sorát y 63 -mal, ami most 1 a tábla sorait most a hozzá tartozó bázisváltozó indexével azonosítjuk, és nem a sorindexszel ezért az x 6 sorának elemei rendre az y 6j és b 6 indexet kapják hasonlóan a többi sorra z x 1 x 2 x 3 x 4 x 5 x 6 RHS z 1 1 1 4 0 0 0 0 x 4 0 1 1 2 1 0 0 9 x 5 0 1 1 1 0 1 0 2 x 6 0 1 1 1 0 0 1 4 p 29

A szimplex tábla: példa 2 Az x 4 és x 5 sorából vonjuk ki az x 6 sorának y 4k - illetve y 5k -szorosát az x 4 sorából az x 6 sorának kétszeresét kell kivonni lényeg az y 43 és az y 53 kinullázása z x 1 x 2 x 3 x 4 x 5 x 6 RHS z 1 1 1 4 0 0 0 0 x 4 0 3 1 0 1 0 2 1 x 5 0 0 2 0 0 1 1 6 x 6 0 1 1 1 0 0 1 4 p 30

A szimplex tábla: példa 3 Vonjuk ki a nulladik sorból az x 6 sorának z 3 -szorosát most az x 6 sorának négyszeresét kell hozzáadni a nulladik sorhoz lényeg a z 3 kinullázása z x 1 x 2 x 3 x 4 x 5 x 6 RHS z 1 3 5 0 0 0 4 16 x 4 0 3 1 0 1 0 2 1 x 5 0 0 2 0 0 1 1 6 x 3 0 1 1 1 0 0 1 4 Pivot vége, új szimplex bázist kaptunk (B = {x 3,x 4,x 5 }) A szimplex tábla utolsó sora most már az x 3 -hoz tartozik, érdemes ezt a szimplex táblán jelölni p 31

A szimplex tábla: példa A szimplex tábla használata a nulladik sor utolsó eleme mindig a célfüggvény az aktuális bázishoz tartozó értéke, most z = 16 a bázisváltozók értékeit kiolvashatjuk az RHS oszlopból (ha negatív elem van benne, elrontottunk valamit) ha a nulladik sor nem tartalmaz negatív elemet, optimális a bázis z x 1 x 2 x 3 x 4 x 5 x 6 RHS z 1 3 5 0 0 0 4 16 x 4 0 3 1 0 1 0 2 1 x 5 0 0 2 0 0 1 1 6 x 3 0 1 1 1 0 0 1 4 p 32

A szimplex tábla: példa Az aktuális tábla nem optimális, mert z 1 = 3 Tehát belép a bázisba x 1 Van kilépő változó (vagyis nem kaptunk nemkorlátos megoldást), mert y 41 > 0 Kilép x 4 z x 1 x 2 x 3 x 4 x 5 x 6 RHS z 1 3 5 0 0 0 4 16 x 4 0 3 1 0 1 0 2 1 x 5 0 0 2 0 0 1 1 6 x 3 0 1 1 1 0 0 1 4 Osztjuk x 4 sorát 3-mal, a kapott sort hozzáadjuk x 3 sorához egyszer, és a nulladik sorhoz háromszor p 33

A szimplex tábla: példa z x 1 x 2 x 3 x 4 x 5 x 6 RHS z 1 0 4 0 1 0 2 17 x 1 0 1 1 1 0 0 2 1 3 3 3 3 x 5 0 0 2 0 0 1 1 6 A bázis optimális 2 1 1 x 3 0 0 1 0 3 3 3 Az optimális megoldáshoz tartozó célfüggvény értéke a nulladik sor utolsó eleme: z = 17 A bázisváltozók értékei az RHS oszlopból: 13 3 [ x1 x 5 x 3 ] = [ 1 3 6 13 3 Az optimális megoldás: x T = [ 1 3 0 13 3 ] p 34 ]

A szimplex tábla: példa Oldjuk meg a következő lineáris programot max 2x 1 + x 2 + 3x 3 st 2x 1 3x 2 + x 3 0 2x 2 + 4x 3 1 x 1 x 2 3 x 1, x 2, x 3 0 Slack-változókkal standard alakra hozva max 2x 1 + x 2 + 3x 3 + 0x 4 + 0x 5 + 0x 6 st 2x 1 3x 2 + x 3 + x 4 = 0 2x 2 + 4x 3 + x 5 = 1 x 1 x 2 + x 6 = 3 x 1, x 2, x 3, x 4, x 5, x 6 0 p 35

A szimplex tábla: példa A kezdeti szimplex tábla z x 1 x 2 x 3 x 4 x 5 x 6 RHS z 1 2 1 3 0 0 0 0 x 4 0 2 3 1 1 0 0 0 x 5 0 0 2 4 0 1 0 1 x 6 0 1 1 0 0 0 1 3 x 3 belép a bázisba, x 4 kilép x 4 sorának négyszeresét kivonjuk x 5 sorából, és a háromszorosát hozzáadjuk a nulladik sorhoz Degenerált pivot, mert b 4 = 0 A pivot után ugyanabban az extrém pontban fogunk maradni p 36

A szimplex tábla: példa A pivot utáni szimplex tábla z x 1 x 2 x 3 x 4 x 5 x 6 RHS z 1 8 10 0 3 0 0 0 x 3 0 2 3 1 1 0 0 0 x 5 0 8 10 0 4 1 0 1 x 6 0 1 1 0 0 0 1 3 x 2 belép a bázisba, x 5 kilép p 37

A szimplex tábla: példa Az új szimplex tábla z x 1 x 2 x 3 x 4 x 5 x 6 RHS z 1 0 0 0 1 1 0 1 x 3 0 2 5 0 1 1 5 x 2 0 4 5 1 0 2 5 x 6 0 9 5 0 0 2 5 A bázisba belépő változó x 4 3 3 0 10 10 1 1 0 10 10 1 31 1 10 10 Azonban x 4 oszlopában minden elem negatív Vagyis x 4 szabadon növelhető anélkül, hogy bármely változó értéke negatívvá válna, miközben a célfüggvény értéke szintén nő Nincs korlátos megoldás p 38

A szimplex tábla: példa A szimplex táblából kiolvasható a nemkorlátosságot okozó x+λd : λ 0 félegyenes egyenlete x az aktuális bázismegoldás d előáll a szimplex tábla x 4 nembázisváltozóhoz tartozó oszlopából x = x 1 x 2 x 3 x 4 x 5 x 6 Az indexelésre és az előjelekre vigyázni kell = 0 1 10 3 10 0 0 31 10 + 0 2 5 1 5 1 0 2 5 λ, λ 0 p 39