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

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

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

A szimplex algoritmus

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

A szimplex tábla. p. 1

Opkut deníciók és tételek

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

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. 4. konzultáció: Szállítási feladat. A feladat LP modellje

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

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

Lineáris egyenletrendszerek

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

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.

7. gyakorlat. Lineáris algebrai egyenletrendszerek megoldhatósága

1. tétel - Gráfok alapfogalmai

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

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

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

15. LINEÁRIS EGYENLETRENDSZEREK

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

8. Előadás. Megyesi László: Lineáris algebra, , oldal. 8. előadás Mátrix rangja, Homogén lineáris egyenletrendszer

7. gyakorlat. Lineáris algebrai egyenletrendszerek megoldhatósága

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.

: s s t 2 s t. m m m. e f e f. a a ab a b c. a c b ac. 5. Végezzük el a kijelölt m veleteket a változók lehetséges értékei mellett!

Lineáris algebra gyakorlat

Vektorterek. =a gyakorlatokon megoldásra ajánlott

Bevezetés. 1. fejezet. Algebrai feladatok. Feladatok

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

3. el adás: Determinánsok

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

GAZDASÁGMATEMATIKA KÖZÉPHALADÓ SZINTEN

rank(a) == rank([a b])

Érzékenységvizsgálat

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

Lineáris leképezések. Wettl Ferenc március 9. Wettl Ferenc Lineáris leképezések március 9. 1 / 31

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

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

A KroneckerCapelli-tételb l következik, hogy egy Bx = 0 homogén lineáris egyenletrendszernek

KOVÁCS BÉLA, MATEMATIKA I.

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

Gazdasági matematika II. tanmenet

Diszkrét matematika 2.C szakirány

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

A lineáris programozás alapjai

Diszkrét matematika II. gyakorlat

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám.

25 i, = i, z 1. (x y) + 2i xy 6.1

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

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

Diszkrét matematika 2. estis képzés

0,424 0,576. f) P (X 2 = 3) g) P (X 3 = 1) h) P (X 4 = 1 vagy 2 X 2 = 2) i) P (X 7 = 3, X 4 = 1, X 2 = 2 X 0 = 2) j) P (X 7 = 3, X 4 = 1, X 2 = 2)

Algoritmusok bonyolultsága

Diszkrét matematika 2.C szakirány

Nemkonvex kvadratikus egyenlőtlenségrendszerek pontos dualitással

Diszkrét matematika 2.C szakirány

LINEÁRIS ALGEBRA (A, B, C) tematika (BSc) I. éves nappali programtervező informatikus hallgatóknak évi tanév I. félév

Függvények július 13. f(x) = 1 x+x 2 f() = 1 ()+() 2 f(f(x)) = 1 (1 x+x 2 )+(1 x+x 2 ) 2 Rendezés után kapjuk, hogy:

Diszkrét Matematika MSc hallgatók számára 7. Előadás Párosítási tételek Előadó: Hajnal Péter Jegyzetelő: Kovácsházi Anna

HÁLÓZAT Maximális folyam, minimális vágás

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 2.

Taylor-polinomok. 1. Alapfeladatok április Feladat: Írjuk fel az f(x) = e 2x függvény másodfokú Maclaurinpolinomját!

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

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

Diszkrét matematika 2. estis képzés

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

Lineáris egyenletrendszerek

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

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

Lin.Alg.Zh.1 feladatok

Relációk. 1. Descartes-szorzat. 2. Relációk

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz

Diszkrét matematika 1. estis képzés

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

1. A k-szerver probléma

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

Sztöchiometriai egyenletrendszerek minimális számú aktív változót tartalmazó megoldásainak meghatározása a P-gráf módszertan alkalmazásával

Lineáris algebrai alapok

Bázistranszformáció és alkalmazásai

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

DiMat II Végtelen halmazok

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

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

Rang, sajátérték. Dr. Takách Géza NyME FMK Informatikai Intézet takach/ február 15

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

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

Lineáris algebra Gyakorló feladatok

Függvények határértéke, folytonossága

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

GRÁFELMÉLET. 7. előadás. Javító utak, javító utak keresése, Edmonds-algoritmus

Vektorok, mátrixok, lineáris egyenletrendszerek

Érdemes egy n*n-es táblázatban (sorok-lányok, oszlopok-fiúk) ábrázolni a két színnel, mely éleket húztuk be (pirossal, kékkel)

Mátrixjátékok tiszta nyeregponttal

Javító és majdnem javító utak

1. feladat Az egyensúly algoritmus viselkedése: Tekintsük a kétdimenziós Euklideszi teret, mint metrikus teret. A pontok

EGYSZERŰSÍTETT ALGORITMUS AZ ELEMI BÁZISCSERE ELVÉGZÉSÉRE

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11.


Átírás:

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

Tartalomjegyzék. Bevezetés 3 2. A szimplex módszer 5 2.. A szimplex módszer elméleti vs. gyakorlati megfontolásai... 9 3. Dualitás 6 4. Farkas lemma 24 5. Hálózati folyam feladat 26 6. Speciális esetek hálózati folyam feladatra 37 6.. Szállítási feladat.......................... 37 6.2. Hozzárendelési feladat...................... 37 6.3. Párosítási feladat......................... 38 7. König-Egerváry eljárás 38 8. Magyar módszer 4 2

. Bevezetés Lineáris programozási feladat (LP) kanonikus alakja. [ x T ] A = b [ c T ] Ahol A R mxn, m n, c, x R n, b R m. Ax = b x maxc T x Tegyük fel, hogy az A mátrix teljesrangú - azaz van m darab független oszlopvektora... Denició (Megoldás). Azt mondjuk, hogy x R n vektor megoldás, ha Ax = b a fenti LP feladatra..2. Denició (Megengedett megoldás). Azt mondjuk, hogy x R n vektor megengedett megoldás, ha Ax = b x a fenti LP feladatra..3. Denició (Optimális megoldás). Azt mondjuk, hogy x R n vektor optimális megoldás, ha x megengedett megoldás és tetsz leges x megengedett megoldás esetén c T x c T x.. Megjegyzés. Biztos, hogy van megoldás, mert A teljesrangú. A független oszlopai kifeszítik az R m teret, így b el állítható ezen független vektorok lineáris kombinációjaként..4. Denició (Bázis). Bázisnak nevezünk egy olyan B leképezést a sorok halmazából az oszlopok halmazába, amelyre az a B, a B2,..., a Bm oszlopvektorok lineárisan függetlenek..2. Megjegyzés. A lineáris algebrától eltér en itt nem halmazt, hanem rendezett halmazt tekintünk bázisnak. 3

m 2...... a B a Bm a B2.5. Denició (Bázishoz tartozó bázismátrix). a B a B2... a Bm =: B.3. Megjegyzés. A B mátrix invertálható, mert teljesrangú. A továbbiakban tegyük fel, hogy adott a B bázis. Tegyük fel azt is, hogy A-ban a bázisoszlopok egymás után következnek. A =... B..... Jelölés. Jelöljük x B -vel az x vektor bázishoz tartozó részét. (x B ) i := x Bi Jelöljük c B -vel az c vektor bázishoz tartozó részét. (c B ) i := c Bi.6. Denició (B bázishoz tartozó bázismegoldás). Ha az x vektorra teljesül, hogy a bázison kívüli komponensei -ák, a bázishoz tartozó komponensekre pedig teljesül, hogy Bx B = b, akkor x-et B bázishoz tartozó bázismegoldásnak nevezzük. 4

.4. Megjegyzés. Ilyen bázismegoldás létezik és egyértelm : x B = B b. Ez a vektor a feladat megoldása, ugyanis Ax = Bx B = b. Azt viszont nem tudjuk, hogy ez a megoldás megengedett vagy sem..5. Megjegyzés. Minden bázishoz egyetlen bázismegoldás tartozik, de el fordulhat, hogy két különböz bázishoz tartozó bázismegoldás ugyanaz: [ ] [ ] [ ] = A fenti példában két különböz bázishoz is (,2 és 2,3 oszlopok) ugyanaz a bázismegoldás tartozik. A továbbiakban tegyük fel, hogy olyan B bázisunk van, amihez tartozó bázismegoldás megengedett (azaz x B komponensei -k). Továbbá tegyük fel, hogy az A mátrixunkat úgy transzformáltuk, hogy a bázismátrix az egységmátrix legyen (az egyenletrendszer rendezésével ez elérhet ). A =... I... A továbbiakban ezt a transzformált mátrixot fogjuk A-val jelölni, a transzformált jobboldalt pedig b-vel (az x és a c vektorok nem változnak). 2. A szimplex módszer A szimplex módszer alaplépése. Vegyünk egy tetsz leges j oszlopot, ami nem tartozik a bázishoz (ekkor x j =, mert j / B ). Kezdjük el növelni x j -t, és a báziskomponenseket igazítsuk úgy, hogy az Ax = b egyenl ség megmaradjon. Meg fogjuk mutatni, hogy igazíthatunk, és hogy ez az igazítás egyértelm lesz. Kezdeti megoldás. a j + m x Bi a Bi = b i= Mivel B = I, ezért a Bi = e i és x Bi = b i, így a j + m b i e i = b i= 5

Növeljük x j -t -ról ϑ-ra. ϑa j + m (b i ϑa ij )e i = b Láthatjuk, hogy az utánaigazítás lehetséges és egyértelm. Ha x j -t ϑ-ra növeljük, akkor x Bi := x Bi ϑa ij (= b i ϑa ij ) Javítunk ezzel a lépéssel a célfüggvényen? i= Változó Eredeti érték Új érték változás célfüggvény +ϑc j megoldás i. báziskomponense b i b i ϑa ij ehhez tartozó célfüggényérték c Bi x Bi c Bi (b i ϑa ij ) megoldás ϑa ij célfüggvény ϑc Bi a ij Összegezve a változást: m i= ϑc B i a ij = ϑ( m i= c B i a ij ) = ϑc T B a j Tehát akkor érdemes az alaplépést elvégezni, ha ϑc j ϑc T B a j = ϑ(c j c T B a j), (ϑ > ), azaz amikor c j c T B a j > 2.. Megjegyzés. Ezt könny végigvenni az egyes nembázisbeli oszlopokkal: ha az eredmény >, akkor javító oszlopvektort találtunk. 2.. Denició (Javító-oszlop). Azt mondjuk, hogy a j-edik oszlopvektor javító-oszlop, ha c T B a j < c j. Ha olyan állapotba érünk, hogy nincs javító oszlopvektor, akkor az eljárás leáll. Meg fogjuk mutatni, hogy ebben az esetben optimális megoldást találunk. A továbbiakban tegyük fel, hogy a p-edik oszlopvektor javítóoszlop. Meddig lehet növelni a ϑ-t? Az alaplépésben ϑa p + m i= (x B i ϑa ip ) = b, ahol x Bi = b i és a Bi = e i. A célfüggvény növekedés pedig: ϑ(c p c T B a p). ϑ tehát addig növelhet, amíg (x Bi ϑa ip ) (= b i ϑa ip ) sehol sem válik negatívvá, azaz a megoldás megengedett marad. Ha a ip valamely i. sorindexre, akkor a (b i ϑa ip ) nem fog csökkenni. Az ilyen i-k nem jelentenek korlátot. Ha a ip >, akkor ϑ b i a ip A legnagyobb megengedett ϑ így: ϑ = min aip > 6 b i a ip

2.2. Megjegyzés. Ha a ip i =..m, akkor ϑ minden határon túl növelhet. Ezért a célfüggvény is minden határon túl növelhet lesz. Az eljárás leáll. A továbbiakban feltesszük, hogy az a p oszlopvektornak vannak pozitiv komponensei. Legyen q n olyan sorindex, amelyre bq a qp b i a ip minden olyan i sorindexre, ahol a ip >. Válasszuk ϑ-t a lehet legnagyobbra: ϑ = b q a qp. Nézzük meg az alaplépés hatását az adott p, q-ra. A megoldás változása: ϑa p + m (b i ϑa ip )e i i= 2.3. Megjegyzés. A fenti szummában a q-ik sorhoz tartozó tag: b q b q a qp a qp = kezdeti megoldás p B ϑ-hoz tartozó megoldás ϑ B q -hoz tartozó oszlopindex új kezdeti mátrix q + I Az új bázis: Ez valóban bázis. { Bi ha i q B i = p ha i = q 7

Az alábbi oszlopok lineárisan függetlenek: azaz a B,..., a Bq,..., a Bm a B,..., a p,..., a Bm Bizonyítás Legyenek λ,..., λ q,... λ m olyan súlyok, hogy λ i a Bi =. Az a B,..., a p,..., a Bm -b l csak a q. egységvektor hiányzik (e q ) - ehelyett vettük be a p -t. A q sorban a vektorok poziciói mind -k, kivéve a qp >. Ebb l következik, hogy λ q =. A többi vektor együtthatója is, hiszen azok eleve lineárisan függetlenek voltak. Az új B bázishoz tartozó bázismegoldás megengedett. Transzformáljuk a feladatot (sorkivonogatással) úgy, hogy a bázisban lev oszlopok egységvektorokká váljanak. Így a feladat formálisan ugyanolyan állapotban van, mint az alaplépés el tt: a bázismegoldás megengedett, a bázismátrix az identitásmátrix. Az eredetihez képest a különbség csak az, hogy a célfüggvény n tt: ϑ(c p c T B a p). Ismételjük az eljárást. Hogyan állhat meg az eljárás?. Nincs javítóvektor. Stop. Nincs megengedett megoldás. A javítóoszlopban nincs > komponens. Stop. A megoldás nem korlátos. A szimplex ( ) módszer megengedett bázisokon lépked. A bázisok száma n véges: m Tegyük fel, hogy minden lépésben ϑ > adódik. Ekkor minden lépésben határozottan javul a célfüggvény érték. Ezért ilyenkor nem térhetünk vissza olyan bázisba,amelybe már jártunk. A fenti feltétel mellett a szimplex módszer véges sok lépésben leáll. Mikor lehet ϑ =?. Akkor, ha b i = valamely i =..m. b i = azt jelenti, hogy a b jobboldalvektor benne van az a B,..., a Bi, a Bi+,..., a Bm bázisoszlopok által kifeszített altérben. 2.4. Megjegyzés. Ha a jobboldalt véletlenszer en választom folytonos eloszlás szerint, akkor ennek az esetnek a valószín sége. 8

2.2. Denició (Általános helyzet jobboldal). Ha a jobboldal egyetlen altérben sincs benne, akkor azt mondjuk, hogy a jobboldal általános helyzet. Tegyük fel, hogy a szimplex módszer azzal állt le, hogy nem találunk javítóoszlopot, azaz c T B a j c j minden nem bázisbeli oszlopindexre. B c B B = I = c T B Bázisoszlopokra pedig: c T B a B i = c Bi teljesül. Megállási feltétel. c T B A ct Meg fogjuk mutatni, hogy ebben az esetben az aktuális megoldásra (x) (a B bázishoz tartozó bázismegoldás) teljesül a következ : Minden x megengedett megoldásra (A x = b, x ) c T x c T x azaz x optimális megoldás. 2.. A szimplex módszer elméleti vs. gyakorlati megfontolásai Elméletileg. Van olyan feladat, amelyre ha elég ügyetlenül választjuk a báziscseréket - a szimplex módszer ciklizál. Tekintsük a kétdimenziós teret. Ebben a térben az Ax b x maxc T x 9

feladatban minden a i x b i feltételnek megfelel a következ ábra: x 2 x El fordulhat degenerált feladat - ilyenkor egy adott csúcs (bázismegoldás) több bázishoz is tartozik( lásd az x csúcsot, amely a (2,3), (3,4) és (2,4) bázisokhoz egyaránt tartozik) x 2 () (2) x (4) (5) (3) x A szimplex a megengedett tartomány szomszédos csúcsain lépked. Ha a feladat degenerált, el fordulhat, hogy a fent említett x csúcshoz érve, a szimplex ciklizál - báziscsere van, de nem tud kilépni a csúcsból. Gyakorlatilag. ez nem fordulhat el, mivel a numerikus hibák miatt a síkok kicsit elmozdulnak.

Megoldás. csúsztassuk el a redundáns feltételt: Ez a jobboldal perturbálásának felel meg. w x b + ε... b m + ε A I = b + ε b m + ε m Könny megmutatni, hogy ha ε elég kicsi, akkor a degeneráció megsz nik. Eredeti feladat Perturbált feladat B megengedett kezd bázis B megengedett kezd bázis nem tudjuk, hogy a jobboldal általános van olyan pozitiv ε, helyzet -e hogy a jobboldal általános helyzet 2.. Állítás. Ha ε-t elég kicsire választjuk, akkor teljesül a következ állítás: Legyen B a perturbált feladatnak megengedett bázisa ( azaz a hozzá tartozó bázismegoldás megengedett). Akkor B az eredeti feladatban is megengedett bázis. Bizonyítás A denicióból következik. Megmutattuk tehát, hogy lehet úgy perturbálni a feladatot, hogy azon végighaladva a szimplex módszerrel, és ezeket a lépéseket megfeleltetve az eredeti feladatnak - szabályos lépések sorozatát kapjuk. Kijelenthetjük a következ t: 2.2. Állítás. A szimplex módszer bázisba lép és az onnan kilép vektorok megválaszthatók úgy, hogy az eljárás véges sok lépésben leálljon.

Elméletileg. ha x R n, akkor tudok olyan LP feladatot szerkeszteni, amelynek 2 n megengedett bázismegoldása van. Például: (... ) x (... ) - nek a megengedett tartománya az n-dimenziós kocka. A megengedett bázismegoldások száma pedig: 2 n. Nézzük a következ táblázatot: n 2 3 4 5 6 pontok bejárásának ideje sec sec 8 min 2 nap 35 év 36. év Ha a számítógépek 24-szer gyorsabbak, akkor is csak eggyel tolódik jobbra az alsó oszlop. Ez azt jelentené, hogy még a kis feladatokat sem tudnánk megoldani a szimplex módszerrel valós id ben. Gyakorlatban. általában 2m lépésre van szüksége a szimplex módszernek, ha jól van implementálva. Legyen A teljes- Hogyan lehet megengedett kezd bázist keresni?. rangú mátrix, b megfelel dimenziós vektor. Ax = b x Nincs szükségünk célfüggvényre, mivel csak megengedett bázismegoldást akarunk keresni. Tegyük fel, hogy b. (Ha b-nek negatív komponensei lennének, a megfelel sort (-)-el kell szorozni.) A kib vített feladat: (A, I)(x, u) = b, (x, u). A feladat megengedett bázismegoldása: (x, u) = (, b). Legyen a célfüggvény: min(,) T (x, u). 2.5. Megjegyzés. A kib vített feladatban minden megengedett megoldáshoz nemnegatív célfüggvényérték tartozik, mivel (,) és (x, u). Ha van megengedett kezd megoldásunk, alkalmazhatjuk a szimplex módszert. Mivel a célfüggvény korlátos ( nem javítható minden határon túl) - a szimplex módszer optimális megoldást fog találni. Két eset fordulhat el : az optimális célfüggvényérték > az optimális célfüggyvényérték = 2

Tegyük fel, hogy az els eset áll fenn. Ekkor: 2.3. Állítás. Az eredeti feladatnak nincs megengedett megoldása. Bizonyítás Indirekt Legyen x megengedett megoldása az eredeti feladatnak. Ekkor ( x, ) a kib vített feladatnak olyan megengedett megoldása, amelynek a célfüggvényértéke. Ez nyilvánvalóan ellentmondás, mivel az optimális célfüggvényérték pozitiv. Tegyük fel, hogy a második eset áll fenn. Ekkor a bázisunk kétféleképpen nézhet ki: B u... A vagy B u A Jelölje (x, u ) az optimális megoldást. Mivel (,) T (x, u ) = T x + T u =, így x megengedett megoldása az eredeti feladatnak. Nézzük a következ textilipari felada- Implementációs megfontolások. tot: 3

F ona F onb SzovA SzovB AllF on AllSzov 3 2 4 2 2 = Jelöljük a kezdeti mátrixot A -val, a kezdeti jobboldalt pedig b -val. Végezzük el a következ transzformációkat: b 8 3 Kerüljön SzovA a bázisba. A transzformált mátrixot jelöljük A -el, az új jobboldalt pedig b -el. [ 3 2 3 2 5 4 2 ] = [ 3 3 2 Ez a transzformáció megfelel annak, hogy az A mátrixot balról az E mátrixszal beszorozzuk: [ ] 5 E = 2 [ 5 2 ] [ 3 2 3 2 5 4 2 ] ] = [ 3 3 2 ] A = E A b = E b Vigyük SzovB-t a bázisba. Az új mátrix legyen A 2, az új jobboldal legyen b 2, a transzformációs mátrix pedig E 2 : [ 2 3 6 ] [ 2 4 2 3 2 3 6 3 3 4 3 ] = [ 2 ] A 2 = E 2 A b 2 = E 2 b A ritka mátrix nemnulla elemekkel való feltöltése illetve a numerikus hibák felhalmozódása ellen az implementációs trükk az eredeti mátrix és az E-mátrixok tárolása lesz. Ily módon egy adott oszlop transzformáltját 4

úgy kapjuk meg, hogy az eredeti oszlopot megszorozzuk a transzformációs mátrixszal. A 2 = E 2 E A b 2 = E 2 E b A kérdés az, hogy meg lehet úgy oldani a szimplex módszer implementálását, hogy csak ezeket az adatokat tároljuk? Ha igen, az így kapott megoldás optimális lesz? Javítóvektor keresése. Hasonlítsuk össze c T B A 2-t c T -al. Ha teljesül a reláció, akkor optimális megoldásunk van. Különben keressünk olyan indexet, ahol a komponensek között van < reláció. Hogyan számítható c T B A 2? c T BA 2 = c T B(E 2 E A ) = (c T BE 2 E )A A javítóvektor kereséséhez elég az A, E 2, E,... mátrixok ismerete. Általános eset. Tegyük fel, hogy a j-edik oszlopvektor javító. Ekkor szükségünk lesz az eredeti j oszlopvektor transzformált alakjára. B K E [ ]. A [ ] E K I A K [ c T B K ] E K... E }{{} B K = I B K A szimplex módszer így sokkal tömörebben tárolható - lényegében az E transzformációs mátrixnak is elég, ha csak egy-egy oszlopát tároljuk. 5

Hasonlítsuk tehát össze c T B K (E K E K... E }{{} )A -t és a c T vektorokat. Ehhez B K számítsuk ki: c T B K B K -et. Ha találunk javítóvektort, akkor azt transzformálni kell az új bázisba, azaz szorozzuk balról a B K = E KE K... E mátrixszal. 2.3. Denició. Árnyékár vektor A c T B K B K -et az adott bázishoz tartozó árnyékár vektornak nevezzük. Az árnyékár vektor azt mutatja meg, hogy hogyan változik a célfüggvényérték ha a jobboldal változik. 3. Dualitás A feladatunk:, ahol A teljes sorrangú mátrix. Ax = b x maxc T x 3.. Denició. Megengedett bázis A B bázis megengedett, ha a hozzá tartozó bázismegoldás megengedett: x B = B b. 3.2. Denició. Optimális bázis A B bázis optimális, ha megengedett és teljesül a szimplex módszer megállási feltétele (azaz nincs javítóvektor): c T B B}{{ A} transzformált mátrix c T c T BB A c }{{} T árnyékár vektor 3.. Jelölés. Jelöljük y T B = ct B B a B bázishoz tartozó árnyékár vektort. 3.. Megjegyzés. Ha van egy optimális bázismegoldásunk, akkor nem biztos, hogy a bázis optimális - ilyen a degenerált feladat. (Azt tudjuk, hogy ha van egy optimális bázisunk, akkor a hozzá tartozó bázismegoldás optimális.) 3.3. Denició. Duál-megengedett bázis Egy B bázis duál-megengedett, ha a hozzá tartozó árnyékár vektorra teljesül, hogy: y T B A ct. 3.. Állítás. Ha egy bázis megengedett és duál-megengedett, akkor optimális. 6

Térjünk vissza a textilipari feladatra. szöv gép kapacitás megengedett tartomány fonógép kapacitás Melyek azok a pontok, ahol ugyancsak (SzovA, SzovB) az optimális bázis? A jobboldalt változtatva csak a megengedettség változhat(romolhat). A megengedettség csak azokra a jobboldalakra marad meg, amelyekre teljesül a B b homogén lineáris egyenl tlenségrendszer. Most nézzük ugyanezt a textilipari feladatot másik szempontból: A textilgyár ki akarja adni a fonó- és szöv gépekre a gépid t. Erre kell ajánlatokat beküldeni. Minden ajánlat a fonógépid ért y pénzegységet ajánl, a szöv gépid ért pedig y 2 pénzegységet. Tegyük fel, hogy az ajánlattev a teljes gyártókapacitást meg szeretné szerezni. Teljesülnie kell tehát a következ knek: 3y + y 2 8, különben a tulajdonos azt mondaná, hogy inkább A fonalat gyárt. 2y + y 2 9, különben a tulajdonos azt mondaná, hogy inkább B fonalat gyárt. y + 2y 2 5, különben a tulajdonos azt mondaná, hogy inkább A szövetetgyárt. 4y + 2 y 2 9 7

, különben a tulajdonos azt mondaná, hogy inkább B szövetet gyárt. y, különben a tulajdonos azt mondaná, hogy inkább áll a fonógép. y 2, különben a tulajdonos azt mondaná, hogy inkább áll a szöv gép. a teljes kapacitás bérleti díja. min(8y + 3y 2 ) 3.2. Megjegyzés. Mindkét megfogalmazás ugyanazt a feladatot írja le, csak egyszer a gyártulajdonos szempontjából, egyszer pedig az ajánlattev szempontjából. Az utóbbi feladatot az eredeti feladat duál feladatának nevezzük. Minden LP feladathoz felírható a párja - a duál feladat, ami ugyanazt írja le mint az eredeti LP feladat, csak más szemszögb l. Általánosan. Legyen a primál feladat a következ : Ax = b (P ) x maxc T x A (P ) feladatnak megfelel duál feladat pedig:,ami ekvivalens a következ vel: (D) A T y c y minb T y y T A c T y miny T b 3.. Tétel. Gyenge dualitási tétel Legyen x a (P ) feladatnak, és y a (D) feladatnak megengedett megoldása. Ekkor teljesül az, hogy c T x y T b 8

célfüggvényérték (D) feladat megengedett megoldásai optimális megoldás + x (P) feladat megengedett megoldásai y + optimális megoldás Bizonyítás Az y (D)-megengedettség miatt: y T A c T, azaz y T A c T. Mivel x pedig (P )-megengedett, ezért x. Ekkor (y T A c T )x, azaz y T Ax c T x. Mivel x (P )-megengedett, emiatt y T b c T x, és kész a }{{} b bizonyítás. 3.2. Tétel. Er s dualitási tétel Tegyük fel, hogy mind a (P ) mind a (D) feladatnak van megengedett megoldása. Ekkor mindkett nek van optimális megoldása is, és az optimális célfüggvényértékek megegyeznek. Bizonyítás Oldjuk meg a (P ) feladatot szimplex módszerrel. Ha nem állna rendelkezésünkre kezd megengedett bázismegoldás, akkor az ismertetett els fázissal tudunk ilyet keresni. Ez az eljárás is szimplex módszeren alapszik. Amint láttuk, a szimplex módszerrel a ki- és belép vektorokat meg lehet úgy választani, hogy az eljárás véges sok lépésben leálljon. Mivel feltettük, hogy a (P ) feladatnak van megengedett megoldása, ezért az els fázis megengedett kezd bázismegoldással fog leállni. A megengedett kezd bázis megoldásból kiindulva, szimplex módszerrel oldjuk meg a (P ) feladatot. A be- és kilép vektorok megválaszthatók úgy, hogy az eljárás véges sok lépésben véget érjen. A szimplex módszer általában kétféleképpen érhet véget:. kiderül, hogy a célfüggvény minden határon túl növelhet 2. optimális bázist kapunk 9

Az els eset nem fordulhat el, mert a (D) feladatnak a feltevésünk szerint van y megengedett megoldása, amihez tartozó célfüggvényérték fels korlátja a (P ) feladat megengedett megoldásaihoz tartozó célfüggvényértékeknek a gyenge dualitási tétel miatt. Tehát a szimplex módszer a második eset szerint egy B optimális bázissal áll le. Jelölje x a B bázishoz tartozó bázismegoldást. y [... x T B... ] [ A B c T B ] b x Ax = b B x B = b Jelölje y a B bázishoz tartozó árnyékár vektort. Ekkor y T B = c T B y T = c T B B Mivel B optimális bázis, teljesül a szimplex módszer megállási feltétele (azaz nincs javítóvektor): y T A c T. Tehát az optimális bázishoz tartozó y árnyékár vektor megengedett megoldása a (D) feladatnak.(x pedig megoldása a (P ) feladatnak.) Megmutatjuk, hogy az x vektorhoz tartozó (P ) célfüggvényérték megegyezik az y vektorhoz tartozó (D) célfüggvényértékkel: c T x = c T B x B = (y T B )x B = y T (B x B }{{ ) = y } T b b 3.2. Állítás. Tegyük fel, hogy a (P ) feladatnak van megengedett megoldása, de a (D) feladatnak nincs. Ekkor a (P ) feladat célfüggvényértéke minden határon túl javítható. Bizonyítás A bizonyítás menete az er s dualitási tétel bizonyításához hasonló. A (P ) feladatra alkalmazzuk a szimplex módszert. Meg lehet úgy választani a be- és kilép vektorokat, hgoy véges sok lépésben leálljon. Általában két eset lehetséges: 2

. kiderül, hogy nem korlátos a célfüggvény 2. optimális bázist találunk. A második eset nem fordulhat el, mert az optimális bázishoz tartozó árnyékár vektor a (D) feladatban megengedett megoldás volna, ami a feltételezés szerint nem létezik. Marad az els eset. Legyen most a feladatunk a következ formájú: Ax b (P ) x maxc T x [ ] x T u T y A I b [ c T... ] (A, I)(x, u) = b (P ) (P ) (x, u) max(c, ) T (x, u) Írjuk fel (P ) feladathoz tartozó duál feladatot: Tehát y T (A, I) (c, ) T (D ) y miny T b y T A c T y T miny T b Ax b (P ) x maxc T x y T A c T (D) y T miny T b A T y c (D) y T minb T y 2

A fenti gyenge és er s dualitási tétel örökl dik erre a (P )-(D) feladatpárra is. Most megmutatjuk, hogy a (D) feladat duálisa a (P ) feladat(ekvivalens átalakításokkal). A T y c y minb T y A T y c y max( b) T y Ennek a feladatnak írjuk fel a duálisát: ( A) T y ( c) (P ) y max( b) T y x T ( A) ( b) (D) x minx T ( c) A T x b (D) x maxc T x 3.3. Állítás. A fenti szimmetrikus (P )-(D) feladatokra a következ esetek lehetségesek:. ha mindkett nek van mgengedett megoldássa, akkor mindkett nek van optimális megoldása, és az optimális célfüggvényértékek megegyeznek 2. ha a (P ) feladatnak van megengedett megoldása, de a (D) feladatnak nincs, akkor a (P ) célfüggvényérték minden határon túl javítható 3. ha a (D) feladatnak van megengedett megoldása, de a (P ) feladatnak nincs, akkor a (D) célfüggvényérték minden határon túl javítható 4. el fordulhat, hogy sem a (P ), sem a (D) feladatnak nincs megengedett megoldása. Hogyan kezeljük az olyan feladatokat, amelyeknél nincs megkötés a változókra? Nézzük például az alábbi feladatot: (I) Ax b, maxc T x [ x T ] A b [ c T ] 22

Alakítsuk át a feladatot úgy, hogy a változókra nemnegativitási feltételünk legyen. Legyen x = x + x, x +, x. Ekkor a feladat az alábbi alakban írható fel: [ [ x + x ] A A c T c T ] (II) (A, A)(x +, x ) b (x +, x ) max(c, c) T (x +, x ) Mennyire ekvivalens ez a feladat az el z vel? b 3.4. Állítás. Ha (x +, x ) a (II) feladat megengedett megoldása, akkor x + x az (I) feladat megengedett megoldása és a megfelel célfüggvény értékek azonosak. Bizonyítás (c, c) T (x +, x ) = c T x + c T x = c T (x + x ) 3.5. Állítás. Ha x az (I) feladat megengedett megoldása, akkor x + = [x] +, x = [x] választással (x +, x ) a (II) feladat megengedett megoldása. Írjuk fel a (II) feladat duálisát: y A A b [ c T c T ] y T (A, A) (c, c) T y miny T b y T a c T és y T ( A) ( c) T }{{} y T A=c T y miny T b 23

Láthattuk tehát, hogy ha a primál feladatban egyenl ség van, akkor a duál feladatban nincs nemnegativitási feltétel a változóra és fordítva, ha a primál feladatban van nemnegativitási feltétel, akkor a duál feladatban egyenl tlenség van. Most nézzük meg, hogy lehet (viszonylag) automatikusan felírni egy feladat duálisát: [ ] x T x T 2 y y 2 A A 2 A 2 A 22 = b b 2 [ = c T c T 2 ] A x + A 2 x 2 = b A 2 x + A 22 x 2 b 2 (P ) x x 2 maxc T x + c T 2 x 2 4. Farkas lemma (D) y T A + y2 T A 2 c T y T A 2 + y2 T A 22 = c T 2 y y 2 miny T b + y2 T b 2 4.. Lemma. Az alábbi egyenl tlenségrendszerek közül pontosan az egyik megoldható: (I) Ax = b x (II) y T A y T b < Bizonyítás Könnyen látható, hogy egyszerre nem oldhatók meg: (y T A) }{{}}{{} x = y T (Ax) = y T b < 24

Írjuk fel a (I) feladatot a következ ekvivalens formába, és írjuk fel a hozzá tartozó duál feladatot: Ax = b (P ) x max T x (D) y T A y miny T b A fenti (D) feladatnak az y = (,..., ) vektor mindig megengedett megoldása. A dualitási tételben felsorolt négy eset közül kett következhet csak be: Ha a (P ) feladatnak van megengedett megoldása, akkor van optimális megoldása is, és az optimális célfüggvényérték, mivel minden primál célfüggvényérték. Ekkor a (D) feladat célfüggvényértéke nem csökkenthet alá, azaz y T b minden megengedett megoldásra (azaz minden olyan y-ra, amire y T a ). Tehát a (II) feladat nem megoldható, miközben az (I) feladat megoldható. Ha a (P ) feladatnak nincs megengedett megoldása, azaz (I) nem megoldható, akkor a dualitási tételb l következik, hogy a duál célfüggvényérték minden határon túl csökkenthet ( nevezetesen alá is). Tehát a (II) feladat megoldható, miközben az (I) feladat nem megoldható. Szemléltetés - szeparációs tétel. A a a 2... a n = b Az, hogy (I) megoldható, azt jelenti, hogy b el állítható az a i -kb l nemnegatív súlyokkal, azaz b Cone(a,..., a n ). a a 2 a n b 25

y a a 2... a n b Az, hogy (II) megoldható, azt jelenti, hogy az y minden a i vektorral hegyes szöget zár be. Azaz az y-ra mer leges altérnek az összes a i az y oldalán van, a b viszont a hipersík másik oldalán lesz. a a 2 a n b y 5. Hálózati folyam feladat Nézzük meg a következ feladatot. Van egy termel (), aki egységnyi olajat termel egy fogyasztó (4), aki egységnyi olajat fogyaszt két csomópont (2), (3) És van egy cs rendszer, ami továbbítja az olajat. A továbbítási költséget egységnyi olajra tekintjük. A cs kapacitása nem lehet korlátolt. (2) () (4) (3) 26

Milyen útvonalon lehet a legolcsóbban továbbítani az olajat a termel t l a fogyasztóig? A fenti feladat felírható LP feladatként: A döntési változók: az egyes éleken továbbítandó olajmennyiség. A korlátozó feltételek: az egyes csúcsok egyenlegeire(be- és kifolyó olaj egyenlege) vonatkoznak. [ x2 x 3 x 23 x 24 x 34 ] [ ] = amit megtermel, azt elszállítja ami bejön, az kimegy ami bejön, az kimegy minden bejöv t elfogyaszt További feltétel: a változók nemnegatívak. A mátrix speciális szerkezet : minden oszlopban csak egy -es és egy -es van. Ha erre a feladatra szeretnénk a szimplex módszert alkalmazni, nem lehetne, hiszen a mátrix nem teljes sorrangú (ha összeadjuk a sorokat, -át kapunk eredményül). Javítsunk: vezessünk be egy mesterséges élt, ami a termel b l vezetne ki, de az él súlya legyen. (2) () (4) (3) [ x. x 2 x 3 x 23 x 24 x 34 ] [ ] = A fenti feladat megoldható szimplex módszerrel. De mivel ez egy speciális feladat - a szimplex módszer is szemléletes - a módszer lépései a gráfon követhet ek. Nézzük meg el ször, hogy mi a kapcsolat a két megközelítés között: 27

(i) élek oszlopvektorok (ii) élek halmaza oszlopok halmaza (iii) élek olyan halmaza, ami tartalmaz irányított kört oszlopok lineárisan összefügg halmaza Bizonyítás Nézzünk el ször egy irányított kört: 2 3 4 5 Ekkor az oszlopvektorok felírhatók a következ képpen:... Az oszlopokat összeadva -t kapunk. Ha valamelyik él visszafele van irányítva, akkor a megfelel oszlopvektor ( )-szeresét kell venni az oszlopok összegzésénél. (iv) élek olyan halmaza, amely nem tartalmaz irányítatlan kört lineárisan független oszlopok halmaza Bizonyítás Teljes indukció. Olyan élek halmaza, amely nem tartalmaz irányítatlan kört irányítatlan erd t alkot. Tudjuk, hogy egy fának mindig van fokú pontja. Legyen ez a pont i. Mivel i -fokú, ezért pontosan egy él illeszkedik rá. Ez az él lehet (j, i) vagy (i, j). Szimmetria okok miatt maradjunk az (i, j) jelölésnél. Nézzük meg azon oszlopok halmazát, amelyek az adott élhalmazhoz tartoznak: (i, j) i j... ±... 28

Ha a kijelölt oszlopok lineáris kombinációjaként a vektort el állítjuk, akkor az (i, j) oszlophoz súly tartozik. Ha ehhez az oszlophoz súly tartozik, akkor ezt az oszlopot elhagyhatjuk, vele együtt a gráfból is a hozzá tartozó élt. Így újabb fokú csúcs keletkezik. Indukcióval könnyen belátható, hogy minden súly kell, hogy legyen. (v) bázis (oszlopok olyan rendszere, ami lineárisan független, és erre a tulajdonságra nézve maximális - azaz bármely más vektort hozzávéve a rendszer már lineárisan összefügg lesz) feszít fa. El fordulhat, hogy van olyan csúcs, amibe a gyökérb l nem lehetne eljutnia kijelölt éleken keresztül? - Ha a gráf összefügg, akkor minden élhez eljuthatunk. A fenti gráf tulajdonságai (a) a gyökérb l minden csúcs elérhet irányítatlan úton, és az az út egyértelm (b) ha egy küls élt hozzáveszünk a kijelölt élek halmazához, akkor pontosan egy kört kapunk Most nézzük meg, hogyan követhet ek a szimplex módszer lépései a gráfon. Tegyük fel, hogy van egy kezdeti bázisunk. 29

c,. = c,2 2 4 3 5 c,3 + c 3,5 c,3 c,2 + c 2,4 6 c,2 + c 2,4 + c 4,6 Legyen a bázisunk: x,., x,2, x 2,4, x 4,6, x,3, x 3,5. Írjuk fel a bázishoz tartozó y árnyékár vektort (y T B = c T B). Értelmezése: a lehetséges szállítási útvonalakon belül van egy hivatalos útvonal - ezekhez a szállítási útvonalakhoz vannak az egyes városokban az olajárak igazítva. y c,2 c,2 + c 2,4 c,2 + c 2,4 + c 4,6 c,3 c,3 + c 3,5 x T [ x,. x,2 x 2,4 x 4,6 x,3 x 3,5 x 4,3 x 5,4 x 5,6 ] [ B = =... = >... > ] c,. c,2 c 2,4 c 4,6 c,3 c 3,5 c 4,3 c 5,4 c 5,6 = b Mikor lesz egy a p oszlop javítóoszlop? - ha y T a p > c p. Speciálisan: mikor lesz a (4, 3) oszlop javító? - ha y 4 + y 3 > c 4,3, azaz y 3 > y 4 + c 4,3. Azaz a 3 városbeli hivatalos olajár kisebb, mint a 4 városbeli hivatalos olajár + a szállítási költség a 4 városból a 3 városba. Legyen a (4, 3) él javítóél. Nézzük a szimplex módszert. Ha a (4, 3) élt hozzávesszük a feszít fához, akkor pontosan egy kör keletkezik. Vegyünk egy h vektort, amelyben a (4, 3) élnél érték van, minden nem körbeli él esetében érték van, és minden körbeli él esetében: ha az él irányítása megfelel a kör körüljárási iránynak, amit az új él irányítása határoz meg, akkor érték, különben érték van. 3

x,. x,2 x 2,4 x 4,6 x,3 x 3,5 x 4,3 x 5,4 x 5,6 h T [ ] Tudjuk, hogy Ah =, Ax = b, tehát A(x + ϑh) = b h-ból látható, hogyan kell az x-eket megváltoztatni, hogy az egyenl ség megmaradjon. x,. x,2 x 2,4 x 4,6 x,3 x 3,5 x 4,3 x 5,4 x 5,6 (x + ϑh) T [x,. + x,2 + ϑ x 2,4 + ϑ x 4,6 + x,3 ϑ x 3,5 + x }{{} 4,3 +ϑ ] = Így az egyenleg sehol sem fog változni, miközben a szállítási költség csökken. Meddig növelhetjük ϑ-t? - amíg az egyik változó nem fog alá csökkenni. Általános eset. Ha nem lenne olyan él, ami alá csökkenthet, akkor a célfüggvény minden határon túl növelhet, ami azt jelenti, hogy az eredeti gráfban van olyan kör, amelyben a szállítási költségek összege negatív. Ha találunk egy javítóélt, akkor azt hozzávesszük a bázishoz. Így keletkezik egy kör. A keletkezett kör mentén a folyamértékeket változtatjuk az új él irányításának megfelel en. Ennek hatására minden pont egyensúlya változatlan. Mivel az hozzávett él javító volt, a szállítási költség csökkenni fog. Ha a ϑ növeléssel valamelyik él lesz, akkor azt az élt elhagyjuk a bázisból. Két eset lehetséges: a célfüggvény minden határon túl növelhet valamelyik régi bázisélen a folyam -vá válik. Ebben az esetben báziscserét hajtunk végre: az új (javító)élt a bázisba vesszük, és egy - vá vált élt kiveszünk. Könny meggondolni, hogy így továbbra is bázisunk(feszít fánk) lesz - és folytathatjuk a szimplex módszert. Tekintsük a következ feladatot: 2 4 3 5 3 6

Legyen a forrás, ami egységet termel, 6 a nyel, ami egységet fogyaszt. Az élek kapacitása legyen. Nézzünk egy kezd megengedett bázismegoldást - ez a gráfban egy feszít fa lesz, azonfelül pedig út is. Az éleken jelöljük a folyamértéket (mennyit szállítunk), a csúcsokon pedig a szállítási költségeket. 2 4 3 Keressünk egy javítóélt: legyen ez az 2 él. 2 4 ϑ ϑ ϑ 3 Vegyük észre, hogy ϑ -ig növelhet. az új bázis: ϑ 2 ϑ ϑ 9 ϑ itt is -ig növelhet. Az új bázis: 5 5 3 32

2 ϑ ϑ 2 9 8 Jelen esetben ϑ-t nem növelhetjük -n túl, degenerált lépést hajtunk végre. Az új bázis: ϑ ϑ 2 ϑ 9 ϑ Újabb degenerált lépés: ϑ =. Az új bázis: ϑ 2 Itt már ϑ -ig növelhet, az új bázis: + ϑ + ϑ ϑ + ϑ ϑ 2 2 33

2 3 4 Itt már nem találunk javítóélt, így ez az optimális megoldás. 5 5.. Megjegyzés. A fenti módszer a szimplex módszer egy specializálása: itt nem kell osztani vagy szorozni, csak összeadni és kivonni. Így, ha a kiindulási értékek egészek, és van optimális megoldás, akkor az optimális megoldás is egészérték lesz, mivel sehol sem kell osztani. Most nézzünk egy olyan feladatot, ahol vannak élkapacitások: 2 2 kap = 4 3 Legyen a termel, ami 2 egységet termel, 4 a fogyasztó, ami 2 egységet fogyaszt, és az 2 él kapacitása legyen. 5.2. Megjegyzés. A fenti feladat megoldható úgy is, hogy felírjuk az általános szimplex változatot, és azt specializáljuk, de az nehézkes - helyette kezeljük a fels korlátot. Nézzük a kezdeti bázist: 34

2 ϑ 2 2 ϑ 3 2 ϑ ϑ itt 2-ig növelhet lenne, de a fels korlát miatt csak -ig növelhet. Így az új bázis: 2 2 ϑ ϑ 3 ϑ ϑ -ig növelhet. ϑ ϑ + ϑ + ϑ Itt a fels korlátos élnél csökkenteni kell a folyamértékeket. ϑ -ig növelhet. 35

2 2 5.3. Megjegyzés. Osztani, szorozni ebben az esetben sem kell. 5.4. Megjegyzés. Ha vannak kezdeti kapacitáskorlátok, nem könny kezdeti bázist találni. A kezdeti bázis keresése hasonló a szimplex módszernél ismertetett els fázis módszerhez. Írjunk fel egy új feladatot: tekintsünk el a továbbítási költségekt l(legyenek a továbbítási költségek -k), és vezessünk be egy új mesterséges élt a forrásból a nyel be. Ennek a kapacitása legyen nagyobb, mint a továbbítandó olaj mennyisége. Így keressünk minimális továbbítási költséget. A kib vített feladatra már könny kezd bázist találni. ha a továbbítási költséget le lehet -ra csökkenteni, akkor kezd bázist találtunk. ha nem, akkor az eredeti feladatnak nincs megengedett megoldása. 5.5. Megjegyzés. Ha több forrás vagy nyel van, akkor vezessünk be egy új forrást, és egy új nyel t a következ képpen: 36

termel k t. kap = t s kap = t i t i. kap = t n t n......... fogyasztók f. f j kap = f j. f m kap = f t kap = f m Legyen a mesterséges éleken a továbbítási költség. Ekkor az új feladat megoldása megfelel az eredeti feladat megoldásának. A célfüggvény értéke is megfelel az eredeti feladat célfüggvényértékének. 6. Speciális esetek hálózati folyam feladatra 6.. Szállítási feladat Vannak termel k, fogyasztók, útvonalhálózat, de nincsenek csomópontok. termel k t. 6.2. Hozzárendelési feladat fogyasztók f. f j t i. t n Vannak feladatok, és vannak vállalkozók. Minden vállalkozónak pontosan egy feladatot kell kapnia. Minden vállalkozó rendelkezésre bocsát egy listát, hogy milyen feladatokra vállalkozik, és azokat milyen összegért végezné el. Adott tehát egy (n x n)-es táblázat: a sorokban a feladatok, az oszlopokban a vállalkozók találhatók. Legyen a táblázat egy eleme c ij az a költség, amiért a j. vállalkozó az i. feladatot elvállalja. Keressük a maximális párosítást. 37. f m

Mivel az eljárás egészérték optimális megoldást ad, a feladat visszavezethet a szállítási feladatra. Legyenek a vállalkozók a termel k, a fogyasztók pedig a feladatok. Minden t i -b l f j -be vezet él kapacitása legyen, és legyen a folyamérték c ij. Mit l lesz a két feladat ekvivalens? - Mivel egy-egy termel nél maximálisan lehet a termelés, lesz egy kijelölt él, ahol a folyamérték, a többi folyamérték pedig. - A fogyasztóknál ugyanez mondható el. A feladat a Magyar módszerrel oldható meg hatékonyan (lásd a [8] fejezetet). 6.3. Párosítási feladat Bált szervezünk. Vannak úk, és vannak lányok, akik részt vesznek a bálon. Adott, hogy ki kivel hajlandó táncolni. Célunk az, hogy minél többen táncoljanak - ha lehet, teljes párosítást keresünk, ha nem, maximális párosítást. A feladat a König-Egerváry eljárással oldható meg hatékonyan (lásd a [7] fejezetet). 7. König-Egerváry eljárás A König-Egerváry eljárás a párosítási feladatra nyújt megoldómódszert. A párosítási feladatot szemléltethetjük gráal vagy mátrixszal. a b c 2 3 2 3 a b c x x x x x 7.. Denició (Független élrendszer). Bármely két kiválasztott élnek nincs közös végpontja (nincs két olyan x, ami azonos sorban vagy oszlopban van). Keressük a maximális független élrendszert (a maximális független x-ek rendszerét). 7.2. Denició (Lefogó pontrendszer). Pontok olyan halmaza, amelyhez bármely élnek legalább az egyik végpontja hozzátartozik. Keressük a minimális lefogó pontrendszert. 38

7.3. Denició (Lefogó vonalrendszer). Minden x rajta van egy kiválasztott vonalon. 7.. Megjegyzés. Könnyen látható, hogy tetsz leges független rendszer elemszáma kisebb tetsz leges lefogó pontrendszer elemszámánál. Algoritmus. lépés Amíg lehet, valamiképpen párosítunk. Alaplépés Keressünk alternáló utat. Az alternáló út mentén változtassuk meg a kiválasztottságot(a kiválasztott élek legyenek kiválasztatlanok, a nem kiválasztottak pedig legyenek kiválasztottak). A kapott független élrendszer elemszáma eggyel nagyobb, mint az eredetié. 7.4. Denició (Alternáló út). Párosítatlan fels halmazbeli pontot összeköt egy párosítatlan alsó halmazbeli ponttal. 7.2. Megjegyzés. Alternáló út nem kezd dhet és nem végz dhet kiválasztott éllel (azaz a nem kiválasztott élek száma -el nagyobb, mint a kiválasztottaké). Nézzük a következ példát: Keressünk egy párosítást: Keressünk egy alternáló utat: Módosítsuk a kijelöltséget: 39

Kaptunk egy eggyel nagyobb párosítást. 7.. Tétel (Gyenge dualitás tétel). Legyen F egy független élrendszer és L egy lefogó pontrendszer. Ekkor F L. Bizonyítás... A szaggatott élek függetlenek (F ). Az F -beli élek mindegyikének lefogásához egy-egy külön lefogó pontra van szükségünk. Ezzel kész is a bizonyítás. Nézzük meg az er s dualitást. 7.2. Tétel (Er s dualitás tétel). Legyen F egy maximális elemszámú független élrendszer, és legyen L egy minimális elemszámú lefogó pontrendszer. Ekkor F = L. Továbbá 7.3. Tétel. Adott egy F független élrendszer. Ha nincs alternáló út a párosítatlan fels pontokból a párosítatlan alsó pontokba, akkor F maximális. A fenti két tételt egyszerre bizonyítjuk: Bizonyítás Ha F olyan, mint a második tételben megadott, akkor találni fogunk olyan L lefogó pontrendszert, amelyre L = F. A gyenge dualitás tétel miatt ilyenkor F maximális, és L minimális - ez lesz a második tétel bizonyítása. Keressünk egy lefogó pontrendszert: A Legyen X...... X Ȳ...... Y B 4

A a párosítatlan fels pontok halmaza B a párosítatlan alsó pontok halmaza X azon alsó pontok halmaza, amelyek A-ból elérhet k alternáló úton Y azon fels pontok halmaza, amelyek A-ból nem érhet k el alternáló úton 7.. Állítás. X Y lefogó pontrendszer. Bizonyítás Csak meg kell nézni, hogy hol vannak még élek. Legyen X az X-beli pontok párosítás menti fels párjai Y az Y -beli pontok párosítás menti alsó párjai A-ból nem mehet él Y-ba, különben A-ból vezetne alternáló út Y -ba. A-ból nem mehet él B-ba, különben A-ból vezetne alternáló út B-be. X-b l nem mehet él Y-ba, mert A X alternáló utak meghosszabbíthatóak lennének Y -ba. Ezzel kész is a bizonyítás. 7.3. Megjegyzés. Az A-ból X-be vezet alternáló utak keresése hatékonyan implementálható egyszer b vítéssel. 8. Magyar módszer Mint már említettük, a magyar módszer a hozzárendelési feladathoz ad megoldó algoritmust. Tekintsük tehát a hozzárendelési feladatot: adott n db munka, és ugyanennyi vállalkozó. A feladathoz tartozó n x n-es mátrixban c ij jelenti azt, hogy a j. vállalkozó mennyiért végezné el az i. munkát. Továbbá tegyük fel, hogy minden vállalkozó minden munkára ajánlatot tesz - ezek mind pozitív egész számok. c ij, c ij Z, i =... n, j =... n. A hozzárendelési feladat ábrázolható páros gráal is. Ebben a páros gráfban keresünk minimális súlyú teljes párosítást. 8.. Észrevétel. Legyen ε R, és legyen j... n oszlopindex. Az eredetivel ekvivalens feladatot kapunk, ha a j. oszlop minden eleméb l kivonunk ε-t. 4

Bizonyítás Eredeti feladat j c j Módosított feladat j c j ε c nj c nj ε A fenti ábrán a körök jelölik az egyes párosításokat. A párosításnak az felel meg, hogy minden sorban és minden oszlopban egyetlen kiválasztott elem lehet. Látjuk, hogy a két feladat megengedett megoldásai azonosak. Legyen az adott párosítás ára C az eredeti feladatban. Ekkor ugyanannak a párosításnak az ára a módosított feladatban C ε lesz. (a j. oszlopban pontosan egy kiválasztott elem lesz mindkét feladatban.) 8.2. Észrevétel. Legyen ε R, és legyen j... n sorindex. Az eredetivel ekvivalens feladatot kapunk, ha a j. sor minden eleméb l kivonunk ε-t. Bizonyítás A bizonyítás ugyanaz, mint az el bbi észrevétel esetében. 8.. Denició (-kból álló független rendszer). A táblázatból úgy vannak kiválasztva -k, hogy semelyik kett nincs azonos oszlopban vagy azonos sorban. 42

8.. Megjegyzés. A -kból álló maximális független rendszer keresése megfelel a párosítási feladatnak, ahol a fels pontok az oszlopok, az alsó pontok pedig a sorok, él pedig akkor van, ha az illet sor/oszlop metszerben van. A -k független rendszere megfelel az élek független rendszerének. 8.2. Denició (-kból álló teljesen független rendszer). Ha minden sorban és minden oszlopban van kijelölt. 8.3. Észrevétel. Tegyük fel, hogy van a táblázatunkban -kból álló teljesen független rendszer. Ha ezen rendszer mentén párosítjuk össze a vállalkozókat a feladatokkal, akkor az optimális hozzárendelést kapjuk. Bizonyítás A fenti hozzárendelés költsége lesz. A feltevésünk szerint minden c ij nemnegatív, emiatt minden összerendelés költsége. Ekkor egy költség összerendelés optimális lesz. Tekintsük a táblázatbeli -kat. Két eset lehetséges: (i) van -kból álló teljesen független rendszer. Ekkor kész vagyunk, optimális megoldást kaptunk (lásd a harmadik észrevételt). (ii) találunk egy n-nél kisebb elemszámú lefogó vonalrendszert. A keresést König-Egerváry módszerével végezzük. Tudjuk, hogy a -kból álló maximális független rendszer elemszáma megegyezik a minimális lefogó vonalrendszer elemszámával. Algoritmus Minden lefogó oszlop minden eleméhez adjunk ε-t(megengedett lépés - lásd els észrevétel). Minden lefogatlan sor minden eleméb l vonjunk ki ε-t. A végeredmény: a duplán lefogott elemek n nek ε-nal, míg a lefogatlan elemek csökkennek ε-nal. Válasszuk ε-nak a lefogatlan elemek minimumát. 8.. Állítás. A fenti m velettel az elemek összege csökken. Bizonyítás l + k < n, tehát a csökkentett részben több mez van, mint a megnövelt részben. Tekintsük a következ feladatot: 43

2 2 6 3 8 7 7 4 2 5 4 3 9 Vonjuk ki minden sorból a sorbeli legkisebb elemet: 6 5 4 4 2 3 9 3 2 8 Vonjuk ki minden oszlopból az oszlopbeli legkisebb elemet: 6 3 5 4 6 2 3 3 2 Nézzük meg, hogyan tudjuk lefedni az összes nullát a táblázatban: az els két oszloppal és az utolsó sorral. Most minden lefedett oszlop elemeihez adjunk hozzá ε-t és minden lefedetlen sorból vonjunk ki ε-t: + ε - ε + ε - ε 6 - ε 3 - ε + ε - ε 5 + ε - ε 4 - ε 6 - ε 2 + ε - ε + ε - ε 3 - ε - ε 3 + ε 2 + ε A legnagyobb ε amit alkalmazhatunk: ε =. 5 2 5 3 5 2 2 4 3 Most viszont négy vonalat kell használnunk, hogy minden -t lefedjünk a táblázatban. Tehát a megoldásunk optimális. Olvassuk le a megoldást: a második sorban egyetlen nulla van, így a második munkát az els vállalkozóra osztjuk; a harmadik oszlopban is egyetlen nulla van, így a harmadik vállalkozó kapja a negyedik munkát; mivel az els vállalkozó már kapott munkát, így az els munkát a második vállalkozó kapja meg; a megmaradt harmadik munkát pedig a negyedik vállalkozónak adjuk. 44