A szimplex algoritmus

Hasonló dokumentumok
A szimplex tábla. p. 1

A lineáris programozás alapjai

Opkut deníciók és tételek

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

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

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

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

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

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

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

A szimplex algoritmus

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

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

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

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

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

Érzékenységvizsgálat

Diszkrét Matematika MSc hallgatók számára. 4. Előadás

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

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

Nemlineáris programozás 2.

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

4. Előadás: Erős dualitás

Nem-lineáris programozási feladatok

11. Előadás. 1. Lineáris egyenlőség feltételek melletti minimalizálás

3. Lineáris differenciálegyenletek

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

Vektorterek. =a gyakorlatokon megoldásra ajánlott

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

Lineáris programozás. A mese

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

Vektorterek. Több esetben találkozhattunk olyan struktúrával, ahol az. szabadvektorok esetében, vagy a függvények körében, vagy a. vektortér fogalma.

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

Jegyzet. az Operációkutatás (elemz, programozó matematikus) tárgyhoz április. Fábián Csaba, Király Tamás, Papp Olga

Vektorok, mátrixok, lineáris egyenletrendszerek

LINEÁRIS ALGEBRA. matematika alapszak. Euklideszi terek. SZTE Bolyai Intézet, őszi félév. Euklideszi terek LINEÁRIS ALGEBRA 1 / 40

15. LINEÁRIS EGYENLETRENDSZEREK

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

Optimalizálási eljárások GYAKORLAT, MSc hallgatók számára. Analízis R d -ben

Matematika III előadás

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.

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

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

Nemkonvex kvadratikus egyenlőtlenségrendszerek pontos dualitással

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

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

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

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

KONVEX HALMAZ, FARKAS TÉTEL, GORDAN TÉTEL, EXTREMÁLIS PONT, EXTREMÁLIS IRÁNY, LINEÁRIS PROGRAMOZÁS ELMÉLETE

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

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

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

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

6. Előadás. Megyesi László: Lineáris algebra, oldal. 6. előadás Bázis, dimenzió

Diszkrét matematika II., 8. előadás. Vektorterek

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

Numerikus módszerek 1.

1. Házi feladat. Határidő: I. Legyen f : R R, f(x) = x 2, valamint. d : R + 0 R+ 0

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

Diszkrét matematika I.

Matematika (mesterképzés)

1.1. Vektorok és operátorok mátrix formában

Matematika A1a Analízis

Az ellipszoid algoritmus

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

karakterisztikus egyenlet Ortogonális mátrixok. Kvadratikus alakok főtengelytranszformációja

Jegyzet. az Operációkutatás II cím tantárgyhoz. Király Tamás és Papp Olga. Utolsó frissítés: február

10. Előadás. 1. Feltétel nélküli optimalizálás: Az eljárás alapjai

4. Előadás. A legkisebb négyzetek problémája a következő optimalizálási alapfeladat: Minimalizáljuk

Glevitzky Béla. Operációkutatás I. mobidiák könyvtár

Lineáris algebra zárthelyi dolgozat javítókulcs, Informatika I márc.11. A csoport

Sorozatok, sorok, függvények határértéke és folytonossága Leindler Schipp - Analízis I. könyve + jegyzetek, kidolgozások alapján

Differenciálegyenlet rendszerek

Boros Zoltán február

Fraktálok. Kontrakciók Affin leképezések. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék. TARTALOMJEGYZÉK Kontrakciók Affin transzformációk

1. Mit jelent az, hogy egy W R n részhalmaz altér?

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

Gráfelmélet/Diszkrét Matematika MSc hallgatók számára. 3. Előadás

LINEÁRIS VEKTORTÉR. Kiegészítő anyag. (Bércesné Novák Ágnes előadása) Vektorok függetlensége, függősége

A L Hospital-szabály, elaszticitás, monotonitás, konvexitás

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

Numerikus módszerek 1.

Lineáris algebra 2. Filip Ferdinánd december 7. siva.banki.hu/jegyzetek

Principal Component Analysis

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

Jegyzet. Operációkutatás I cím tantárgyhoz január 26. Fábián Csaba el adásai alapján készítette Papp Olga

1. zárthelyi,

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

Megoldott feladatok november 30. n+3 szigorúan monoton csökken, 5. n+3. lim a n = lim. n+3 = 2n+3 n+4 2n+1

Bevezetés az állapottér elméletbe: Állapottér reprezentációk

Relációk Függvények. A diákon megjelenő szövegek és képek csak a szerző (Kocsis Imre, DE MFK) engedélyével használhatók fel!

1. Diagonalizálás. A Hom(V) diagonalizálható, ha van olyan bázis, amelyben A mátrixa diagonális. A diagonalizálható van sajátvektorokból álló bázis.

Mátrixok 2017 Mátrixok

Hadamard-mátrixok Előadó: Hajnal Péter február 23.

3. Fuzzy aritmetika. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

Lineáris algebrai alapok

10. előadás. Konvex halmazok

Lineáris egyenletrendszerek

Lineáris algebra gyakorlat

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

Átírás:

A szimplex algoritmus Ismétlés: reprezentációs tétel, az optimális megoldás és az extrém pontok kapcsolata Alapfogalmak: bázisok, bázismegoldások, megengedett bázismegoldások, degenerált bázismegoldás A szimplex algoritmus, indítás megengedett bázismegoldásról, áttérés a nembázis változók terére, új változó felvétele a bázisba, változó kiléptetése a bázisból, végződtetés, optimalitás p. 1

Lineáris programok és extrém pontok Egy max{c T x : Ax b} lineáris program optimális megoldása előáll a megengedett tartomány valamely extrém pontján Ha a megengedett tartományt reprezentáló X poliéder korlátos, akkor X felírható x j extrém pontjainak konvex kombinációjaként X = {x : Ax b} = conv(x j : j {1,...,k}) Emlékeztető: konvex kombináció { conv(x j ) = x : x = k j=1 λ j x j, k j=1 λ j = 1,λ j 0 } p.

Lineáris programok és extrém pontok Ekvivalens lineáris program λ j változókban max { k j=1 (c T x j )λ j : k j=1 λ j = 1,λ j 0 j {1,...,k} A megoldás előáll a megengedett tartomány valamely extrém pontján x opt = argmax c T x j x j :j {1,...,k} z opt = max c T x j j {1,...,k} ahol z opt a célfüggvény optimumát fogja jelölni } p. 3

Extrém pont megoldások: példa Tekintsük az alábbi feltételrendszert x 1 + x x 1 + x 6 x 1, x 0 Extrém pontok: x 1 = x 3 = 0 0, x = 0, 6 x -x 1 + x 6 -x 1 + x 6 x 1 p.

Extrém pont megoldások: példa Tegyük fel, hogy a x 1 +x célfüggvényt szeretnénk maximalizálni 0 0 c T x 1 = 1 = 0, c 0 T x = 1 =, c T x 3 = 1 = A megoldás az extrém pontok közül az, amelyik maximalizálja a c T x j szorzatot x opt = argmax c T x j = x j :j {1,...,k} z opt = max c T x j = j {1,...,k} 0 p. 5

Extrém pont megoldások: példa Ha most ehelyett a x 1 +3x célfüggvényt szeretnénk maximalizálni, akkor nincs véges megoldás Ekkor ugyanis választható d irányvektor és x 0 megengedett megoldás, hogy x 0 -ból d irány mentén haladva tetszőlegesen nagy megengedett megoldást kapunk Vagyis az x 0 +µd minden µ 0 esetén megengedett, és növeli a célfüggvény értékét Például ha d = 1, x 0 =, akkor x = +µ 1 megoldás megengedett minden µ 0-ra és a célfüggvény értéke c T (x 0 +µd) = c T x 0 +µc T d Lemma: a nemkorlátossághoz elégséges d : c T d > 0 Itt teljesül, mert c T d = 1 3 T 1 = 1 > 0 p. 6

Bázismegoldások Az extrém pontok geometriai értelemben írják le egy lineáris program megoldásait A megoldáshoz viszont algebrai értelmezés kell: megengedett bázismegoldások Tekintsük a X = {x : Ax = b,x 0} poliéderrel adott feltételrendszert, ahol A egy m n mátrix, b egy oszlop m-vektor, x pedig oszlop n-vektor Tegyük fel, hogy rang(a) = rang(a, b) = m Ekkor A oszlopait átrendezve A = B N, ahol B egy m m méretű kvadratikus, nemszinguláris mátrix (a bázis) N pedig m (n m) méretű mátrix (a nembázis) p. 7

Bázismegoldások Megjegyzés: a sorok és oszlopok szabadon átrendezhetőek egy lineáris programban xb Rendezzük át x-et: x = x N B oszlopaihoz tartozó, és x N nembázisváltozók az N oszlopaihoz tartozó változók A feltételrendszert B bázisban felírva Ax = B N x B x N, ahol x B bázisváltozók a = Bx B +Nx N = b Mivel B bázis nemszinguláris, szorozhatunk balról az inverzével x B +B 1 Nx N = B 1 b p. 8

Bázismegoldások Megkaptuk a bázisváltozókat a nembázisváltozók függvényében x B = B 1 b B 1 Nx N x N -t nullára választva adódik a B bázishoz tartozó bázismegoldás B 1 b x B = B 1 b, x N = 0, x = xb x N = 0 Ha még ráadásul x B 0, akkor megengedett bázismegoldást kaptunk x B = B 1 b 0, x N = 0, x = xb x N = B 1 b 0 0 p. 9

Bázismegoldások Ha x B minden komponense pozitív (x B > 0), akkor x nemdegenerált bázismegoldás, ellenkező esetben pedig degenerált bázismegoldás A megengedett bázismegoldások jelentősége, hogy ezek megfelelnek a lineáris program megengedett tartománya extrém pontjainak Tétel: x akkor és csak akkor megengedett bázismegoldása egy max{c T x : Ax = b,x 0} lineáris programnak, ha x az X = {x : Ax = b,x 0} megengedett tartomány egy extrém pontja Ha ráadásulxmég nemdegenerált is, akkor egyedib bázis azonosítja A megengedett bázismegoldásokon iterálva előállítható a lineáris program optimális megoldása: szimplex algoritmus p. 10

Bázismegoldások: példa Tekintsük a megengedett tartományt x 1 + x 6 x 3 x 1, x 0 A fenti példa kanonikus alakban van, standard alakra kell hoznunk Addicionális (slack) változókat vezetünk be: x 3 és x x 1 + x + x 3 = 6 x + x = 3 x 1, x, x 3, x 0 p. 11

Bázismegoldások: példa A feltételrendszer mátrixa A = a 1,a,a 3,a = 1 1 1 0 0 1 0 1 A teljes sorrangú, ezért bázisai méretűek Ezek közül azok eredményeznek megengedett bázismegoldást, melyekre B nemszinguláris és B 1 b 0 6 0 3 T 0 0 T x x 1 + x 6 3 3 T x 3 6 6 0 T x 1 p. 1

Bázismegoldások: példa 1 1 1. B = a 1 a = 0 1 x1 1 1 x B = = B x 1 b = 0 1 x3 0 x N = =, extrém pont: x 0 1 0. B = a 1 a = 0 1 x1 1 0 x B = = B x 1 b = 0 1 x 0 x N = =, extrém pont: x 3 0 megengedett bázis 6 3 x x1 3 = 3 3 = 3 megengedett bázis 6 3 x x1 6 = 3 6 = 0 p. 13

Bázismegoldások: példa 1 1 3. B = a a 3 = 1 0 x 0 1 x B = = B x 1 b = 3 1 1 x1 0 x N = =, extrém pont: x 0 1 0. B = a a = 1 1 x 1 0 x B = = B x 1 b = 1 1 x1 0 x N = = x 3 0 megengedett bázis 6 3 x x1 3 = 3 0 = 3 nem megengedett bázis 6 3 = 6 3 0 p. 1

Bázismegoldások: példa 1 0 5. B = a 3 a = 0 1 x3 1 0 x B = = B x 1 b = 0 1 x1 0 x N = =, extrém pont: x 0 1 1 6. B = a 1 a 3 = 0 0 bázismegoldást megengedett bázismegoldás 6 3 x x1 6 = 3 0 = 0 szinguláris, nem generál p. 15

Degenerált bázismegoldások: példa Adjunk egy új, redundáns feltételt az előbbihez x 1 + x 6 x 3 x 1 + x 9 x 1, x 0 6 0 3 T 0 0 T x x 1 + x 6 3 3 T x 3 6 A slack változókkal standard alakra hozott rendszer x 1 + x + x 3 = 6 x + x = 3 x 1 + x + x 5 = 9 x 1, x, x 3, x x 5 0 x 1 + x 9 6 0 T x 1 p. 16

Degenerált bázismegoldások: példa A = a 1,a,a 3,a,a 5 = 1 1 1 0 0 0 1 0 1 0 1 0 0 1 A B = a 1,a,a 3 bázishoz tartozó megengedett bázismegoldás degenerált bázismegoldás x B = x1 x x 3 0 1 0 1 0 1 1 1 x N = x x 5 = B 1 b = = 6 3 9 0 0 1 1 1 1 6 0 1 0 3 1 0 9 = 3 3 0 0, extrém pont: x1 x = 3 3 = p. 17

Degenerált bázismegoldások: példa Hasonlóan a B = a 1,a,a is degenerált bázis 1 x1 1 1 0 6 x B = x = B 1 b = 0 1 1 3 = x 1 0 9 0 1 6 3 1 0 1 3 = 3 0 1 1 1 9 0 x3 0 x1 3 x N = =, extrém pont: = x 5 0 x 3 A két degenerált bázismegoldáshoz ugyanaz az extrém pont tartozik Egy kétdimenziós térben egy extrém pontot két hipersík határoz meg Az x = 3 3 extrém pontban azonban 3 hipersík találkozik p. 18

A szimplex algoritmus Láttuk, hogy egy lineáris program megoldása, ha létezik, előáll a megengedett tartomány valamely extrém pontján Az extrém pontok pedig megfelelnek a megengedett bázismegoldásoknak Ezekből sajnos ( n m) számú lehet, ezeket lehetetlen egyenként előállítani már pár tucat változó esetén is A szimplex algoritmus egy módszer, amely egy megengedett bázismegoldásból kiindulva újabb és újabb, a célfüggvény értékét javító megengedett bázismegoldásokat állít elő A gyakorlatban a szimplex az extrém pontok csak egy kis hányadát járja be p. 19

A szimplex algoritmus Tekintsük az alábbi lineáris programot z = max c T x s.t. 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 x = xb x N = B 1 b 0 egy kezdeti megengedett bázismegoldás, B a hozzá tartozó bázis, és A = B N Felírjuk a lineáris programot a nembázisváltozók terében Így megtudjuk, hogy az ezek megváltoztatása hogyan befolyásolná a célfüggvény és a bázisváltozók értékét p. 0

A szimplex algoritmus A feltételrendszert B bázisban felírva Ax = B N x B x N = b, vagyis Bx B +Nx N = b x B = B 1 b B 1 Nx N (*) Legyen N a nembázis változók halmaza, jelöljük a B 1 N mátrix oszlopait sorra y j -vel minden j N-re és legyen b = B 1 b Ekkor a feltételrendszer a nembázisváltozók szerint x B = b j N y j x j p. 1

A szimplex algoritmus Rendezzük át a célfüggvényt is a bázisváltozókhoz tartozó tagokat előrehozva: c T = c B T c N T Behelyettesítve a célfüggvénybe és felhasználva (*)-ot z = c T x = c B T c N T xb x N = c B T x B +c N T x N = c B T (B 1 b B 1 Nx N )+c N T x N = c B T B 1 b+(c N T c B T B 1 N)x N Legyen z 0 = c B T B 1 b és jelöljük c N T c B T B 1 N sorvektor elemeit z j -vel minden j N-re z = z 0 + j N z j x j p.

A szimplex algoritmus A lineáris program a nembázis változók terében max z 0 + j N z jx j s.t. x B = b j N y jx j x B,x N 0 ahol N a nembázis változók halmaza b = B 1 b y j a B 1 N mátrix j-edik nembázis-változóhoz tartozó oszlopa 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

A szimplex algoritmus: példa Tekintsük a lineáris programot Bevezetve a slack-változókat max x 1 + x s.t. x 1 + x x 1 x 1, x 0 max 1 1 0 0 x 1 1 0 0 1 0 1 x = 1 x 1,x,x 3,x 0 p.

A szimplex algoritmus: példa Legyen B = a,a 3, ekkor B = {,3}, N = {1,} 1 0 1 1 0 B =, B 1 0 1 =, N =, 1 0 1 c T B = 1 0, c T N = 1 0 0 1 1 b = B 1 b = = 1 1 0 1 1 0 0 1 B 1 N = = 1 0 1 1 z 0 = c B T b = 1 0 1 = 1 c N T c B T B 1 N = 1 0 1 0 1 0 0 1 = 1 1 0 1 1 0 1 0 1 = p. 5

A szimplex algoritmus: példa A lineáris program a nembázis változók terében max 1+x 1 x x 1 0 s.t. = x x 3 1 1 x 1,x,x 3,x 0 1 x x x 1 + x 0 1 T x 1 6 A B bázishoz tartozó megengedett bázismegoldás: x 1 x = x 1 x x 3 x = 0 1 0 p. 6

A szimplex algoritmus: pivot A lineáris program a nembázis változók terében max z 0 + j N z jx j Mivel xb x N s.t. x B = b j N y jx j x B,x N 0 bázismegoldás, ezért x N = 0 A fenti alak jelentősége, hogy megmondja a célfüggvény és a bázisváltozók értékét az aktuális bázisban (a célfüggvény értéke z 0, és x B = b) továbbá, hogy hogyan változna az egyes bázisváltozók és a célfüggvény értéke, ha az egyik nembázis változót nulláról elkezdenénk növelni p. 7

Pivot: példa x max 1+x 1 x x 1 0 s.t. = x x 3 1 1 x 1,x,x 3,x 0 1 x x 1 + x 0 1 T Például ha x -et nulláról 1-re növeljük míg x 1 marad 0 a célfüggvény értéke 1-ről nullára csökken, mert z = 1 x értéke 1-ről nullára csökken, mert y = 1 x 3 értéke -ről -re nő, mert y 3 = x -et nem érdemes növelni, mert akkor a célfüggvény értéke csökken x 1 6 x 1 p. 8

Pivot: példa x max 1+x 1 x x 1 0 s.t. = x x 3 1 1 x 1,x,x 3,x 0 1 x x 1 + x 0 1 T x 1 6 Ha a másik nembázis változót, x 1 -et nulláról 1-re növeljük a célfüggvény értéke 1-ről -re nő, mert z 1 = 1 x értéke nem változik, mert y 1 = 0 x 3 értéke -ről 1-re csökken, mert y 31 = 1 Érdemes x 1 -et növelni, mert a célfüggvény értéke nő Addig növelhetjük, amíg valamelyik változó negatívvá válik Esetünkben x 1 = esetén x 3 értéke 0, x 1 > -re negatív x 1 p. 9

A szimplex algoritmus: pivot Tekintsük a nembázisváltozót, amelynek a növelésével a célfüggvény értéke a legjobban nő k = argmax j N z j Rögzítsünk minden más nembázisváltozót nullában és növeljük x k -t z x B1 x B. x Bm = = z 0 +z k x k b1 b. bm y 1k y k. y mk x k p. 30

A szimplex algoritmus: pivot Az x k nembázis változót addig növelhetjük, amíg valamelyik bázisváltozó nullává nem válik Legyen x i : i B egy bázisváltozó, amelyre y ik > 0 Ekkor x k nembázis változó növelésével x i nemnegatív ha 0 x i = b i y ik x k x k b i y ik Az első bázisváltozó, amely kinullázódik r = argmin i {1,...,m} { bi y ik : y ik > 0 } p. 31

A szimplex algoritmus: pivot Legyen az aktuális bázis nemdegenerált ( b > 0) és tegyük fel, hogy k N : z k > 0 és i B : y ik > 0 { } bi Legyen k = argmaxz j, r = argmin : y ik > 0 j N i B y ik x k -t nulláról br y rk -ra növelve: z = z 0 +z k br y rk x k = b r y rk > 0,x r = 0 x Bi = b i y ik y rk br x j = 0 i B \{r} j N \{k} A célfüggvény értéke nő: z > z 0 mert z k br y rk > 0 p. 3

A szimplex algoritmus: pivot Tétel: a fenti feltételekkel kapott pont megengedett bázismegoldás Biz.: a változók értéke a feltételek miatt nemnegatív, ezért elég belátnunk, hogy az új bázis, vagyis az A mátrix a B1,a B,...,a Br 1,a k,a Br+1,...,a Bm oszlopai is lineárisan függetlenek Ha a k -t felírjuk B = a B1,...,a Bm oszlopainak lineáris kombinációjaként, akkor a r együtthatójának pontosan y rk adódik a k = N k = B(B 1 N) k = By k = i B a i y ik mert y k éppen B 1 N mátrix k-hoz tartozó oszlopa Az új bázis lineáris függetlensége következik y rk 0-ból az alábbi lemma felhasználásával p. 33

Egy lemma Lemma: legyen a 1,...,a n lineárisan független és cseréljük le az egyik a j vektort egy a vektorra, mely a 1,...,a n vektorokkal lineárisan összefüggő: a = n λ i=1 ia i. Ekkor a 1,...,a j 1,a,a j+1,...,a n akkor és csak akkor lineárisan független, ha λ j 0 A bizonyítástól most eltekintünk A pivot után kapott x tehát megengedett bázismegoldás Bázis, mert a kilépő változó tesztjében y rk 0 biztosítva van { } bi r = argmin : y ik > 0 i {1,...,m} y ik A k nembázisváltozó belép a bázisba, míg az r bázisváltozó kinullázódik és kilép a bázisból p. 3

Pivot: példa x max 1+x 1 x x 1 0 s.t. = x x 3 1 1 1 x x 1 + x 0 1 T x 1 x 1,x,x 3,x 0 Belép a bázisba x 1, mert 6 x 1 z 1 = max j N z j = max{1, 1} = 1 Kilép a bázisból x 3, mert b3 = min y 31 i B { bi y ik : y ik > 0 } = min{} = p. 35

Pivot: példa A pivot után kapott új pont k = 1, r = 3 B = {1,}, N = {3,} br z = z 0 +z k = 1+ = 3 y rk x 1 = b r = y rk x = b y k = 1 0 = 1 y 3k b3 x 3 = b 3 y 3k = = 0 y 3k b3 x = 0 x = 1 0 0 T x 0 1 T 1 T 6 x 1 p. 36

Pivot: példa B = {1,},N = {3,}, 1 1 0 B =, N = 0 1 0 1 1 B 1 = 0 1 c B T = 1 1,c N T = 0 0 Az új bázisban felírva a lineáris programot, x 1 T 6 x 1 max 3 x 3 +x x1 1 s.t. = x x 1 0 3 x 1,x,x 3,x 0 x 1 p. 37

Szimplex: optimális megoldás Emlékeztetőül 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 Ha minden j N : z j 0, akkor egyik nembázis változót sem érdemes növelni, mert ekkor nem növelnénk a célfüggvény értékét Tétel: a (primál) szimplex algoritmus optimalitási feltétele j N : z j 0 Biz.: ha valamely x megengedett bázismegoldásra j N : z j 0, akkor x lokális optimum Mivel a megengedett tartomány konvex és a célfüggvény konkáv, ezért x globális optimum is p. 38 }

Optimális megoldás: példa A korábbi példánknál maradva max 3 x 3 +x x1 1 s.t. = x x 1 0 3 x 1,x,x 3,x 0 x 1 Ez a bázismegoldás nem optimális, mert z > 0 tehát x belép a bázisba és x kilép a bázisból, mert b = min y i B { bi y i : y i > 0 } = min{1} = 1 p. 39

Optimális megoldás: példa Az új bázisban B = {1,},N = {,3},c T B = 1 0,c T N = 1 0 1 0 1 1 0 B =,N =,B 0 1 1 0 1 = 0 1 Az x = 0 0 1 T megengedett bázismegoldás optimális x max x x 3 x1 s.t. = x x 1 1 x 1,x,x 3,x 0 1 x 0 3 1 T 0 T 6 x 1 p. 0

Szimplex példa: összefoglalás p. 1

Egyedi optimális megoldás Def.: max{c T x : Ax = b,x 0} lineáris programnak x megengedett megoldás egyedi optimális megoldása, ha minden x x megengedett megoldásra c T x < c T x Tétel: az x megengedett bázismegoldás egyedi optimális megoldás, ha j N : z j < 0 Biz. legyen x bármely x-től különböző megengedett megoldás, és legyen a hozzá tartozó célfüggvényérték z Legyen N az x megengedett bázismegoldáshoz tartozó nembázis változók halmaza, ekkor z = z 0 + j N z j x j j N : x j > 0 (különben x = x) és z j < 0 z < z 0 p.

Egyedi optimális megoldás: példa Tekintsük az iménti lineáris program x = 0 0 1 T megengedett bázismegoldását B = {1,},N = {,3} 1 0 1 B =,N = 0 1 1 0 c B T = 1 0,c N T = 1 0,B 1 = 1 0 0 1 max x x 3 x1 s.t. = x x 1 1 1 x 0 3 x x 1,x,x 3,x 0 0 T Tehát x egyedi, optimális megoldás 6 p. 3 x 1

Alternatív optimális megoldások Tegyük fel, hogy x optimális megengedett bázismegoldás (tehát j N : z j 0), de létezik olyan nembázisváltozó, mondjuk k, melyre az optimalitási feltétel egyenlőséggel teljesül: z k = 0 Ha x nemdegenerált, akkor x k nulláról megnövelhető valamely ǫ > 0-val anélkül, hogy kinullázódna valamelyik bázisváltozó z = z 0 +z k x k = z 0 +0x k x B1. x Bm = b1. bm y 1k. y mk xk Minden 0 < x k ǫ választás optimális megengedett megoldást eredményez, hiszen z k = 0 miatt a célfüggvény értéke nem változik p.

Alternatív optimális megoldások A lineáris program az x k nembázisváltozó függvényében, z k = 0 és minden más z j 0 max s.t. x = xb x N z 0 +0x k b = 0 x 0 + yk e k x k ahol szokás szerint y k a B 1 N mátrix k-hoz tartozó oszlopa, e k pedig a k-adik kanonikus egységvektor Alternatív optimális megoldásokat kapunk amíg x B 0 { b yk bi x = +λ 0 λ min : y 0 e ik > 0 k i B y ik } p. 5

Alternatív optimális megoldások: példa Tekintsük a lineáris programot max x 1 + x s.t. x 1 + x x 1 + x 1 x 1, x, 0 Slack-változókkal standard alakra hozva max x 1 + x s.t. x 1 + x + x 3 = x 1 + x + x = 1 x 1, x, x 3, x 0 p. 6

Alternatív optimális megoldások: példa Legyen a bázis B = a 1 a = 1 0, B 1 1 1 = 1 0 1 1 A bázishoz tartozó megengedett bázismegoldás x B = b = x N = x x 3 x1 x = 0 0 = B 1 b = 1 0 1 1 1 = 5 p. 7

Alternatív optimális megoldások: példa A bázismegoldáshoz tartozó paraméterek c T B = 0,c T N = 0 1 0 1 1 B 1 N = = 1 1 1 0 3 1 z 0 = c B T b = 0 5 c N T c B T B 1 N = 0 0 = 8 1 3 1 = 0 = 0 p. 8

Alternatív optimális megoldások: példa A lineáris program a nembázisváltozók terében max 8+0x x 3 x1 s.t. = x x 5 3 x 1,x,x 3,x 0 1 x 1 3 Alternatív optimális megoldások x = 0 0 +λ 5 A 0 T és a 3 1 0 : 0 < λ 5 3 3 5 3 T pontok összes konvex kombinációja 0 1 T 0 0 T x /3 5/3 T -x 1 +x 1 x 1 + x 6 0 T p. 9 x 1