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

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

A szimplex algoritmus

A szimplex tábla. p. 1

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

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

Diszkrét, egészértékű és 0/1 LP feladatok

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 2018/

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 alapjai

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.

2017/ Szegedi Tudományegyetem Informatikai Intézet

15. LINEÁRIS EGYENLETRENDSZEREK

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

Az ellipszoid algoritmus

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.

Algoritmusok bonyolultsága

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

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

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

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

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

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

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

3. el adás: Determinánsok

Nem-lineáris programozási feladatok

Matematika III. harmadik előadás

Vektorterek. =a gyakorlatokon megoldásra ajánlott

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

Vektorok, mátrixok, lineáris egyenletrendszerek

3. Lineáris differenciálegyenletek

Algoritmuselmélet 18. előadás

Lineáris algebra gyakorlat

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

Bevezetés az algebrába 1

Haladó lineáris algebra

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

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

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

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

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

További programozási esetek Hiperbolikus, kvadratikus, integer, bináris, többcélú programozás

Mátrixok 2017 Mátrixok

Általános algoritmustervezési módszerek

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

1. ábra ábra

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

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

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

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 egyenletrendszerek

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

Nemlineáris programozás 2.

További forgalomirányítási és szervezési játékok. 1. Nematomi forgalomirányítási játék

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

Az optimális megoldást adó algoritmusok

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

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

Adatszerkezetek 2. Dr. Iványi Péter

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

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

1. zárthelyi,

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

Példa Hajtsuk végre az 1 pontból a Dijkstra algoritmust az alábbi gráfra. (A mátrixban a c i j érték az (i, j) él hossza, ha nincs él.

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

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

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

Algoritmuselmélet 11. előadás

Diszkrét matematika 2.C szakirány

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

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

minden x D esetén, akkor x 0 -at a függvény maximumhelyének mondjuk, f(x 0 )-at pedig az (abszolút) maximumértékének.

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Bonyolultságelmélet. Monday 26 th September, 2016, 18:50

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

Kiegészítés az Operációkutatás I. (elemz ) jegyzethez

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

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

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

Numerikus módszerek 1.

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

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

LNM folytonos Az interpoláció Lagrange interpoláció. Lineáris algebra numerikus módszerei

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

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

y = y 0 exp (ax) Y (x) = exp (Ax)Y 0 A n x n 1 (n 1)! = A I + d exp (Ax) = A exp (Ax) exp (Ax)

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

Bevezetés az algebrába 2 Differencia- és differenciálegyenlet-rendszerek

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

Algoritmusok bonyolultsága

11. DETERMINÁNSOK Mátrix fogalma, műveletek mátrixokkal

λ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)

A következő feladat célja az, hogy egyszerű módon konstruáljunk Poisson folyamatokat.

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

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

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

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

Alkalmazott algebra. Lineáris leképezések EIC. Wettl Ferenc ALGEBRA TANSZÉK BMETE90MX57 (FELSŐBB MATEMATIKA INFORMATIKUSOKNAK )

Lineáris algebra Gyakorló feladatok

Bevezetés az algebrába 2

Átírás:

p. Egészértékű lineáris programozás Integer Linear Programming (ILP) és Mixed Integer Linear Programming (MIP) nevezetes kombinatorikus optimizálási problémák megfogalmazása ILP formájában definíció, tulajdonságok, bonyolultság lineáris programok megoldására visszavezethető ILP-k általános ILP megoldási módszerek: Gomory-féle duál-frakcionális vágások módszere korlátozás és szétválasztás (branch-and-bound) korlátozás és vágás (branch-and-cut) Lagrange-i relaxáció

p. Irodalom Jordán, Recski, Szeszlér: Rendszeroptimalizálás, Typotex, 2004. Nemhauser, Wolsey: Integer Programming and Combinatorial Optimization, Wiley, New York, 1988. Schrijver: Theory of Integer and Linear Programming, Wiley, Chichester,1986.

p. Példa max x 1 + x 2 s.t. x 1 + 2x 2 4 5x 1 + x 2 20 2x 1 2x 2 7 x 1 0 x 2 0 x 1 Z x 2 Z

Példa (folyt.) p.

Alapfeladat: ILP ILP (Integer Linear Programming) = lineáris programozás egészértékű változókkal max s.t. c T x Ax b x Z n ahol x a változók n elemű oszlopvektora, amelyről megköveteljük, hogy minden eleme egészértékű A egy m n méretű mátrix c T egy n elemű sorvektor b egy m elemű oszlopvektor továbbá Dx = d alakú feltételek is megengedhetőek p.

p. Alapfeladat: MIP MIP (Mixed Integer Programming) = lineáris programozás egészértékű és valós változókkal max c 1 T x 1 + c 2 T x 2 s.t. A 1 x 1 + A 2 x 2 b x 1 Z n 1 x 2 R n 2 ahol x 1 egy n 1 elemű egészértékű, x 2 egy n 2 elemű valós oszlopvektor A 1 egy m n 1 méretű, és A 2 egy m n 2 mátrix c 1 T egy n 1 elemű, és c 2 T egy n 2 elemű sorvektor b egy m elemű oszlopvektor

p. Az utazó ügynök probléma Traveling SalesPerson (TSP) adott egy irányított, összefüggő gráf G(V,E), ahol V a pontok és E V V az élek halmaza egy költségfüggvény c : E Z +, amely minden élhez egy pozitív egész költséget rendel keressük a gráf legrövidebb Hamilton-körét (c szerint) Hamilton-kör: a gráf minden pontján pontosan egyszer megy át minden pont be-foka 1 minden pont ki-foka 1 a pontok minden S V részhalmazának ki-foka legalább 1

p. Az utazó ügynök probléma (folyt.) jelölje x ij változó, hogy egy (i,j) E él benne van-e a Hamilton-körben min c ij x ij s.t. (i,j) E j:(j,i) E j:(i,j) E i S,j V \S x ji = 1 i V (be-fok) x ij = 1 i V (ki-fok) x ij 1 S V (részhalmazok foka) 0 x ij 1,x ij Z (i,j) E

p. Az utazó ügynök probléma (folyt.) probléma: exponenciális számú feltétel a TSP felírható polinom méretű ILP-ként is (Miller-Tucker-Zemlin, 1960) legyen n = V és induljunk tetszőleges v 0 -ból vezessünk be egy új változót z i : a i V pont a Hamilton-kör éppen z i -edik állomása legyen z v0 = 1

p. 1 Az utazó ügynök probléma (folyt.) (i,j) él benne van a Hamilton-körben z j = z i +1 ha i,j v 0 (i,j) él nincs benne a Hamilton-körben z i z j n 1 z i z j + nx ij n 1 minden v 0 -ra nem illeszkedő élre igaz

p. 1 Az utazó ügynök probléma (folyt.) min s.t. c ij x ij (i,j) E) j:(j,i) E j:(i,j) E (1) x ji = 1 i V (2) x ij = 1 i V (3) z i z j + nx ij n 1 (i,j) E : i,j v 0 (4) x ij {0, 1} (i,j) E (5) 2 z i n i V \ v 0 (6) z v0 = 1 (7)

Az utazó ügynök probléma (folyt.) Tétel: x,z megoldja (1) (7) ILP-t, akkor és csak akkor, ha x éppen megoldja a TSP-t Biz.: (2), (3) és (5) miatt a {(i,j) E : x ij = 1} élek halmaza mindig diszjunkt körök halmazát adja G-ben elég belátni, hogy (4) szerint csak egy kör van, a Hamilton-kör tegyük fel, hogy nem: létezik egy K kör (pontjait jelölje V K és éleit E K ), úgy, hogy v 0 / V K és (i,j) E K : x ij = 1, és legyen u : z u = maxz i K utolsó pontja i V K v : z v = min i V K z i K első pontja ekkor (4) miatt z v z u + 1 ellentmondás p. 1

p. 1 3-kielégíthetőség Boolean 3-satisfiability (3-SAT) létezik-e A, B, C és D logikai változó, hogy (A VAGY B VAGY C) ÉS (A VAGY C VAGY D) = IGAZ például C = IGAZ helyes választás

p. 1 3-kielégíthetőség (folyt.) 3-SAT: megválasztható-e X i : i {1,...,k} logikai változó úgy, hogy kielégítse az alábbi, konjunktív normálformában adott logikai függvényt: f(x 1,X 2,...,X k ) = d ) (( )X i1 ( )X i2 ( )X i3 i=1 = IGAZ matematikai logika: : logikai ÉS művelet : a logikai VAGY művelet ( )X ij az i j -edik változó vagy a negáltja X ij

3-kielégíthetőség (folyt.) X i -khez rendeljünk z i bináris változókat: z i {0, 1} konvertáljuk az elemi diszjunkciókat: ha mindhárom változó negálatlan (X i1 X i2 X i3 ): z i1 + z i2 + z i3 1 (8) ha az egyik változó negált (X i1 X i2 X i3 ): z i1 + (1 z i2 ) + z i3 1 (9) ha két változó negált ( X i1 X i2 X i3 ): (1 z i1 ) + (1 z i2 ) + z i3 1 (10) ha mindhárom változó negált ( X i1 X i2 X i3 ): (1 z i1 ) + (1 z i2 ) + (1 z i3 ) 1 (11) p. 1

p. 1 3-kielégíthetőség (folyt.) tehát X ij helyére rendre z ij -t írunk és X ij helyére pedig (1 z ij )-t az f(.) logikai függvénnyel adott 3-kielégíthetőség probléma ILP formájában: max s.t. k i=1 z i z i kielégíti a (8) (11) feltételeket z i {0, 1} a célfüggvény tetszőleges, a 3-SAT problémát a feltételrendszer írja le

p. 1 Példa f(a,b,c,d) =(A VAGY B VAGY C) ÉS (A VAGY C VAGY D) max z A + z B + z C + z D s.t. z A + (1 z B ) + z C 1 (1 z A ) + z C + (1 z D ) 1 z A,z B,z C,z D {0, 1}

p. 1 3-kielégíthetőség (folyt.) Tétel: az f(.) logikai függvénnyel adott 3-kielégíthetőség probléma akkor és csak akkor oldható meg, ha a megfelelő ILP megoldható Biz.: legyen X i = IGAZ z i = 1 ekkor f(.) igaz minden elemi diszjunkció (( )X i1 ( )X i2 ( )X i3 ) igaz minden (8) (11) feltétel teljesül az ILP megoldható

p. 1 Az ILP feladat bonyolultsága két nevezetes NP-teljes problémát ILP megoldására vezettük vissza vajon az ILP feladat is NP-teljes? eldöntendő kérdés: ILP: Van-e az S := {x : Ax b,x Z n } halmaznak olyan x eleme, amelyre teljesül c T x t? tegyük fel, hogy erre a kérdésre polinom időben meg tudjuk adni a választ ekkor tudjuk a max{c T x : Ax b,x Z n } feladatra is a választ polinom időben (bináris kereséssel)

p. 2 Az ILP feladat bonyolultsága (folyt.) Tétel: az ILP probléma NP-teljes Biz.: NP-beli, mert egy megfelelő x vektor polinom méretű és polinom időben ellenőrizhető tanú NP-nehéz, mert visszavezethető rá a TSP probléma: TSP: Van-e egy gráfban t-nél kisebb költségű Hamilton-kör? vagy a 3-kielégíthetőség probléma ILP NP-beli és NP-nehéz, ezért NP-teljes

p. 2 ILP visszavezetése lineáris programra adott egy ILP és ennek LP relaxációja kérdés: max{c T x : Ax b,x Z n } max{c T x : Ax b,x R n } max ILP? = max LP ilyenkor az ILP polinom időben megoldható

p. 2 Totálisan unimoduláris mátrixok Def.: egy mátrix totálisan unimoduláris (TU), ha minden négyzetes részmátrixának aldeterminánsa 0, 1 vagy 1 természetesen, egy TU mátrix minden eleme 0, 1 vagy 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 TU [ 1 1 1 1 ] nem TU, pedig minden elem 0, 1 vagy 1

p. 2 ILP-k TU feltételrendszerrel Tétel: legyen A egy TU mátrix, b egy egészértékű és c valós értékű vektor és tegyük fel, hogy a max{c T x : Ax b} (LP) lineáris program megoldható, és maximuma véges. Ekkor a max{c T x : Ax b,x Z n } (ILP) is megoldható, és maximuma megegyezik az LP maximumával. Biz.: belátjuk, hogy LP minden bázis megoldása egészértékű minden x B bázis megoldás felírható A egy megfelelő B bázisával Bx B = b mivel B bázis nemszinguláris és TU és b egész, a Cramer-szabályból az állítás már következik

Emlékeztető: a bázismegoldások adott max{c T x : Ax = b,x 0} lineáris program, ahol A mátrix mérete m n és sorai lineárisan függetlenek legyen B az A mátrix egy m m méretű nemszinguláris részmátrixa (bázis) a változók sorrendjének felcserélésével: A = [B N], x T = [x T B xt N ], ct = [c T B ct N ] max s.t. c T B B 1 b + (c T N ct B B 1 N)x N x B + B 1 Nx N = B 1 b x B 0,x N 0 és a bázison kívüli változókra x N = 0 ezért a B bázishoz tartozó bázismegoldás x B = B 1 b és a célfüggvény értéke c T B B 1 b p. 2

p. 2 Emlékeztető: Cramer szabály Cramer szabály: adott egy inhomogén lineáris egyenletrendszer nemszinguláris, kvadratikus együtthatómátrixszal Bx = b ekkor a megoldás létezik és egyértelmű (x = B 1 b), és i-edik koordinátája egyszerűen számítható x i = det(b i) det(b) ahol B i -t úgy kapjuk, hogy az B mátrix i-edik oszlopát lecseréljük b-re.

p. 2 ILP-k TU feltételrendszerrel (folyt.) min s.t. [ ] 0 1 1 x 1 0 0 0 1 0 0 0 1 x = 1 1 1 x opt = [ 0 1 2 ] x 0 1 1 2 3

p. 2 ILP-k TU feltételrendszerrel (folyt.) min s.t. [ ] 1 0 1 x 1 0 0 0 1 0 0 0 1 x = 1 1 1 x opt = [ 1 0 2 ] x 0 1 1 2 3

p. 2 ILP-k TU feltételrendszerrel (folyt.) min s.t. [ ] 2 2 1 x 1 0 0 0 1 0 0 0 1 x = 1 1 1 x opt = [ 1 1 1 ] x 0 1 1 2 3

p. 2 ILP-k TU feltételrendszerrel (folyt.) Következmény: ha max{c T x : Ax b,x Z n } ILP-ben A mátrix TU és b egészértékű, akkor az ILP polinom időben megoldható az LP relaxáció megoldásával néhány nevezetes problémáról tudjuk, hogy a feltételrendszere TU mátrixot ad: legrövidebb út minimális költségű folyam maximális folyam maximális súlyú párosítás páros gráfokban másrészt, egy mátrixról polinom időben eldönthető, hogy totálisan unimoduláris-e

p. 3 TU mátrixok transzformációi Tétel: egy TU A mátrix TU marad, ha a.) transzponáljuk b.) egy sorát (oszlopát) 1-gyel szorozzuk c.) hozzáadunk egy egységvektort új sorként (oszlopként) d.) egyik sorát (oszlopát) új sorként (oszlopként) hozzáadjuk

TU mátrixok transzformációi (folyt.) Biz.: csak a változás által érintett részmátrixok determinánsa változik a.) a determináns transzponálásra invariáns b.) a determináns 1-szeresére változik, ha a mátrix egy sorát (oszlopát) 1-gyel szorozzuk c.) adjunk a mátrixhoz egységvektort, és tekintsük az új sort (oszlopot) tartalmazó részmátrixokat ha az új sorban (oszlopban) benne van az 1-es, akkor fejtsük ki a determinánst ettől az elemtől ha nincs, akkor a determináns 0 (van csupa 0 sor vagy oszlop) d.) ha a megduplázott sor (oszlop) már egyszer benne volt a részmátrixban, akkor a determináns 0, egyébként a részmátrix A sorainak (oszlopainak) permutációjával előáll, így determinánsa változatlan p. 3

p. 3 TU mátrixok transzformációi (folyt.) Következmény: ha A TU, akkor [A,I] és [ A I ] is TU ha A TU és b egészértékű és c valós, akkor max{c T x : Ax b} max{c T x : Ax = b,x 0} (standard alak) (kanonikus alak) összes bázis megoldása egészértékű ha A TU és b és c egészértékű, akkor a max{c T x : Ax b} LP, továbbá a min{y T b : y T A = c,y 0} duális LP összes bázis megoldása egészértékű

p. 3 Legrövidebb út probléma adott G(V,E) irányított gráf és két pont s,d V,s d egy költségfüggvény c : E R +, amely minden élhez egy nemnegatív költséget rendel feladat: keressük a legrövidebb s d utat polinom időben megoldható (Dijkstra algoritmusa, Bellman-Ford algoritmusa, stb.) fogalmazzuk meg ILP formájában

p. 3 Példa Élek: l (i,j): 1 (1, 2), 2 (1, 3), 3 (3, 2), 4 (3, 4), 5 (2, 4) Élköltségek: c (1,2) = 4, c (1,3) = 1, c (3,2) = 2, c (3,4) = 7, c (2,4) = 3 és s = 1,d = 4

p. 3 Legrövidebb út probléma (folyt.) legrövidebb s d út minimális költségű 1-értékű folyam Def.: az f : E R függvény (hálózati) folyam, ha f(j,i) f(i,j) = 0 i V \ {s,d} j:(j,i) E j:(i,j) E f(i,j) 0 (i,j) E

p. 3 Legrövidebb út probléma (folyt.) min s.t. (i,j) E c ijx ij j:(j,i) E x ji j:(i,j) E x ij = x ij 0 x ij {0, 1} 0 ha i V \ {s,d} 1 ha i = s 1 ha i = d (i,j) E (i,j) E

p. 3 Legrövidebb út probléma (folyt.) min{c T x : Nx = e d e s,x {0, 1} m } N: illeszkedési mátrix (n m méretű, n = V, m = E ) (N) il = 1 ha l = (k,i) E valamely k V \ {i} pontra 1 ha l = (i,k) E valamely k V \ {i} pontra 0 egyébként x: folyamvektor (m elemű oszlopvektor), amelynek az l-edik koordinátája jelöli a folyamot az l-edik élen e i : (kanonikus) egységvektor (n elemű oszlopvektor), amelynek az i-edik eleme 1, a többi 0 c T : költségvektor (m elemű sorvektor), amelynek az l-edik koordinátája jelöli az l-edik él költségét

p. 3 Legrövidebb út probléma (folyt.) min s.t. [ ] 4 1 2 7 3 x 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 x = 0 0 0 1 1 1 0 0 1 x {0, 1} m

Az illeszkedési mátrix Tétel: irányított gráf illeszkedési mátrixa totálisan unimoduláris Biz.: kiválasztjuk N egy k méretű kvadratikus M részmátrixát, és k-ra vonatkozó teljes indukcióval belátjuk, hogy det(m) = 0, 1 vagy 1 k = 1: M = 0, 1 vagy 1 k 2: ha M-nek van olyan oszlopa, amelyben csak egy nemnulla elem van, fejtsük ki det(m)-t ennél az elemnél; det(m) így már csak k 1 méretű részmátrixoktól függ, ezekre pedig teljesül a feltétel ha M minden oszlopa pontosan egy 1 és egy 1 elemet tartalmaz, akkor a sorok összege 0, így a determináns is 0 p. 3

p. 4 Legrövidebb út probléma (folyt.) az ILP formában megfogalmazott legrövidebb útvonal probléma min{c T x : Nx = e d e s,x {0, 1} m } helyett elég ennek LP relaxációját megoldani min{c T x : Nx = e d e s,x 0} mivel N TU, az összes bázis megoldás egészértékű

p. 4 Legrövidebb út probléma (folyt.) min s.t. [ ] 4 1 2 7 3 x 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 x = 0 0 0 1 1 1 0 0 1 x 0 Bázis megoldások: x b1 = [ 1 0 0 0 1 ], c T x b1 = 7 x b2 = [ 0 1 1 0 1 ], c T x b2 = 6 x b3 = [ 0 1 0 1 0 ], c T x b3 = 8

p. 4 Legrövidebb út probléma (folyt.) Primál: min{c T x : Nx = e d e s,x 0} Duál: max{π T (e d e s ) : π T N c T } = max π d π s s.t. π j π i c ij (i,j) E minden P = {(s,u 2 ), (u 2,u 3 ),...,(u k,v)}, s pontból d pontba vezető útvonalra igaz, hogy π v π s = (π u2 π s )+(π u3 π u2 )+...+(π v π uk ) c ij (i,j) P potenciál: π v a v pont lehetséges legnagyobb össztávolsága s-től a c ij élköltségek függvényében

Legrövidebb út probléma (folyt.) Tétel: legyen P = {(s,u 2 ), (u 2,u 3 ),...,(u k,v)} egy minimális költségű s d útvonal; ekkor a duál LP minden π optimális megoldására (i,j) P : π j π i = c ij Biz.: ha P minimális költségű útvonal, akkor létezik olyan optimális és megengedett x megoldása a primál LP-nak, melyre (i,j) P : x ij > 0 alkalmazva a komplementáris változókra vonatkozó szabályt ( complementary slackness ): x ij > 0 π j π i = c ij p. 4

p. 4 Emlékeztető Tétel: legyen P := max{c T x : Ax b,x 0} és D := min{y T b : y T A c T,y T 0} a duálisa, továbbá legyen ˆx optimális megoldása P -nek és ŷ T optimális megoldása D-nek. Ekkor: Aˆx b, ˆx 0 (primal feasibility) ŷ T A c T,ŷ T 0 (dual feasibility) ŷ T (b Aˆx) = 0 (complementary slackness 1) (ŷ T A c T )ˆx = 0 (complementary slackness 2) a complementary slackness szabály bővebben: ŷ i > 0 a iˆx = 0 ˆx j > 0 ŷ T a j = 0 a iˆx > 0 ŷ i = 0 ŷ T a j > 0 ˆx j = 0

p. 4 Maximális folyam probléma adott G(V, E) összefüggő, irányított gráf és két pont s,d V,s d egy kapacitásfüggvény u : E R +, amely minden élhez egy nemnegatív élkapacitást rendel feladat: keressük a maximális s d folyamot úgy, hogy az éleken a folyam az élkapacitás alatt marad polinom időben megoldható (Edmonds-Karp algoritmusa, Goldberg-Tarjan preflow-push algoritmusai, stb.) fontos tulajdonság: ha az élkapacitások egészértékűek, akkor mindig van egészértékű maximális folyam fogalmazzuk meg LP formájában

p. 4 Példa Élek: l (i,j): 1 (1, 2), 2 (1, 3), 3 (3, 2), 4 (3, 4), 5 (2, 4) Élkapacitások: u (1,2) = 2, u (1,3) = 5, u (3,2) = 2, u (3,4) = 1, u (2,4) = 7 és s = 1,d = 4

p. 4 Maximális folyam probléma (folyt.) s.t. max t j:(j,i) E x ji 0 ha i V \ {s,d} j:(i,j) E x ij = t ha i = s t ha i = d 0 x ij u ij (i,j) E vektoros formában: max t s.t. Nx t(e d e s ) = 0 0 x u

Példa (folyt.) max [ 0 0 0 0 0 1 ] [ x t ] s.t. 1 1 0 0 0 1 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 [ x t ] = 0 0 0 0 2 5 2 1 7 x 0 p. 4

p. 4 Maximális folyam probléma (folyt.) max{t : [N (e d e s )] [ ] x t = 0, 0 x u} = (12) = max{(x ) (d,s) : N x = 0, 0 x u } (13) vagyis (12) átírható egy G (V,E ) gráf felett megfogalmazott ekvivalens (13) formába, ahol G -t úgy kapjuk, hogy G-t kiegészítjük egy d-ből s-be mutató éllel, melynek a kapacitásértékét végtelenre állítjuk N az új éllel kiegészített G gráf illeszkedési mátrixa u az új éllel kiegészített G gráf élkapacitásvektora (13) célja olyan x kört találni G -ben, mely a (d,s) élre maximális értékű folyamot vezet

Példa (folyt.) p. 5

p. 5 Maximális folyam probléma (folyt.) slack változókat bevezetve max (x ) (d,s) s.t. N x = 0 x + y = u x 0,y 0 y: m méretű oszlopvektor, minden kapacitásfeltételhez max{(x ) (d,s) : [ ] [ ] N 0 x I I y = [ ] 0 u,x 0,y 0}

p. 5 Maximális folyam probléma (folyt.) Tétel: ha u egészértékű, akkor a maximális folyam probléma minden bázis megoldása egészértékű Biz.: N definíció szerint TU [ N I ] is TU [ N 0 I I ] is TU (lásd: TU mátrixok transzformációi) említettük, hogy ha az élkapacitások egészértékűek, mindig létezik egészértékű maximális folyam (Ford és Fulkerson) most kaptunk egy alternatív bizonyítást

p. 5 Példa (folyt.) s = 1,d = 4 Bázis megoldások: x b1 = [ 2 0 0 0 2 ], t b1 = 2 x b2 = [ 2 1 0 1 2 ], t b2 = 3 x b3 = [ 0 0 0 0 0 ], t b3 = 0 x b4 = [ 0 1 0 1 0 ], t b4 = 1 x b5 = [ 0 3 2 1 2 ], t b5 = 3 x b6 = [ 0 2 2 0 2 ], t b6 = 2 x b7 = [ 2 3 2 1 4 ], t b7 = 5 x b8 = [ 2 2 2 0 4 ], t b8 = 4

p. 5 Maximális folyam probléma (folyt.) Primál: max t (14) s.t. Nx + t(e d e s ) = 0 (15) x u (16) x 0 (17) π T : duális változó (15) feltételhez (n méretű sorvektor) w T : duális változó (16) feltételhez (m méretű sorvektor) Duál: min w T u (18) s.t. π T N + w T 0 (19) π T (e d e s ) = 1 (20) w T 0 (21)

p. 5 Maximális folyam probléma (folyt.) min (i,j) E w iju ij s.t. π j π i w ij (i,j) E π d π s = 1 w ij 0 (i,j) E hasonló a legrövidebb útvonal probléma duáljához π v ismét potenciált definiál de az élköltségek (w ij ) most részei a problémának mint duális változók

Maximális folyam probléma (folyt.) a G(V, E)-beli vágások összefüggésbe hozhatók (18) (21) megoldásaival legyen (S,V \ S) egy G-beli s d vágás és π v = { 0 ha v S 1 ha v V \ S w ij = { 1 ha i S és j V \ S 0 egyébként π T,w T kielégíti (19) (21) feltételeket, és a vágás kapacitása éppen w T u ha (S,V \ S) minimális vágás, akkor π T,w T optimális megoldás a maximális folyam értéke (vagyis (14) (17) maximuma) megegyezik a minimális vágás kapacitásával (vagyis (18) (21) minimumával) lásd: LP dualitás tétel p. 5

Példa (folyt.) Élek: l (i,j): 1 (1, 2), 2 (1, 3), 3 (3, 2), 4 (3, 4), 5 (2, 4) Élkapacitások: u (1,2) = 2, u (1,3) = 5, u (3,2) = 2, u (3,4) = 1, u (2,4) = 7 és s = 1,d = 4 S = {1, 3}, V \ S = {2, 4} p. 5

p. 5 Minimális költségű folyam probléma adott G(V, E) összefüggő, irányított gráf és két pont s,d V,s d egy költségfüggvény c : E R +, amely minden élhez egy nemnegatív költséget rendel egy kapacitásfüggvény u : E R +, amely minden élhez egy nemnegatív élkapacitást rendel t igény s és d pont között feladat: keressük azt a folyamot, mely s pontból d pontba t igényt a minimális költséggel vezeti el szintén polinom időben megoldható (network simplex, out-of-kilter, stb.) fogalmazzuk meg LP formájában

p. 5 Minimális költségű folyam (folyt.) min c T x s.t. Nx = t(e d e s ) 0 x u a feltételrendszer totálisan unimoduláris egészértékű élkapacitások és egészértékű igény esetén mindig van egészértékű minimális költségű folyam a minimális költségű folyam probléma megoldására a lineáris programozási módszer a gyakorlatban is versenyképes lásd: network simplex algoritmus

p. 6 ILP: mégegyszer ILP = lineáris programozás egészértékű változókkal max s.t. c T x Ax = b x 0 x Z n ahol A egy m n méretű mátrix c T egy n elemű sorvektor b egy m elemű oszlopvektor x egy n elemű oszlopvektor, amelyről megköveteljük, hogy minden eleme egészértékű és nemnegatív

p. 6 ILP-k megoldása az ILP visszavezetése LP-re csak bizonyos ILP-kre használható például ha a feltételrendszer totálisan unimoduláris ilyenkor polinom időben megvan a megoldás az ILP megoldása LP-k sorozataként minden ILP-re használható véges, de nem feltétlenül polinom idejű megoldás Cutting plane algoritmusok (Gomory-féle duál-frakcionális vágások módszere) korlátozás és szétválasztás (branch-and-bound) korlátozás és vágás (branch-and-cut) Lagrange-i relaxáció

p. 6 Cutting plane algoritmusok 0.) adott ILP: max{c T x : Ax = b,x 0,x Z n } 1.) oldjuk meg az LP relaxációt: max{c T x : Ax = b,x 0} 2.) ha a megoldás x 0 egészértékű, készen vagyunk 3.) ha nem, készítünk egy f T x g feltételt, amely az optimális megoldásra biztos teljesül: f T x opt g de x 0 pontot elvágja: f T x 0 > g 4.) hozzáadjuk az LP relaxációhoz f T x g feltételt és folytatjuk 1.) pontban

p. 6 Jelölések LP: max{c T x : Ax = b,x 0} legyenek A sorai lineárisan függetlenek és legyen B az A mátrix egy bázisa számozzuk át A oszlopait, továbbá x és c elemeit úgy, hogy A = [B N], x = [ x B xn ] és c T = [c T B c T N ] max c T B x B + c T N x N s.t. Bx B + Nx N = b x B, x N 0 max c T B B 1 b + (c T N ct B B 1 N)x N (22) s.t. x B + B 1 Nx N = B 1 b (23) x B,x N 0 (24)

Gomory-féle vágások legyen B a fenti LP relaxáció optimális megoldásához tartozó bázis ekkor x N = 0 és x B = B 1 b ha x B egészértékű, készen vagyunk ellenkező esetben x B = ˆb = B 1 b elemei között van törtértékű (frakcionális), például az i-edik felhasználva (23)-t x Bi + j J y ij x Nj = ˆb i (25) ahol x Bi az i-edik bázisbeli változó és y ij a B 1 N mátrix i-edik sorához és j-edik oszlopához tartozó eleme p. 6

p. 6 Gomory-féle vágások (folyt.) jelölje x az x alsó egészrészét ( 1.7 = 2!) bontsuk az együtthatókat (25)-ben egész és tört részeikre x Bi + j J ( y ij + (y ij y ij ))x Nj = ˆb i + (ˆb i ˆb i ) vigyünk mindent át a jobboldalra, amiről tudjuk, hogy egészértékű (y ij y ij )x Nj = (ˆb i ˆb i )+ j J + ( x Bi j J y ij x Nj + ˆb i ) = ˆb i ˆb i + k, k Z

p. 6 Gomory-féle vágások (folyt.) mivel y ij y ij 0 és x Nj 0, tudjuk, hogy j J (y ij y ij )x Nj 0 továbbá tudjuk, hogy 0 ˆb i ˆb i < 1 és (y ij y ij )x Nj = ˆb i ˆb i + k, k Z j J innen következik, hogy k 0, és ezért (y ij y ij )x Nj ˆb i ˆb i (26) j J Gomory-féle duális frakcionális vágás nemtriviális, ha ˆb i / Z

Gomory-féle vágások (folyt.) adjuk tehát hozzá az alábbi sort az LP relaxáció optimális szimplex táblájához (y ij y ij )x Nj s = ˆb i ˆb i, s 0 j J Tétel: az (26) szerint adott vágást az optimális táblához adva nem zárunk ki egészértékű elemet de kizártuk az aktuális optimális megoldást az új bázis a duál szimplex módszerrel optimalizálható a Gomory-féle vágásokat használó cutting plane algoritmus véges lépésben megadja az ILP optimális megoldását p. 6

p. 6 Példa max x 2 s.t. 3x 1 + 2x 2 6 3x 1 + 2x 2 0 x 1, x 2 0 x 1 Z x 2 Z

Példa (folyt.) p. 6

p. 7 Példa (folyt.) az ILP kanonikus alakban max x 2 s.t. 3x 1 + 2x 2 + x 3 = 6 3x 1 + 2x 2 + x 4 = 0 x 1, x 2, x 3, x 4 0 x 1 Z x 2 Z x 3 Z x 4 Z

p. 7 Példa (folyt.) az LP relaxáció kanonikus alakban max x 2 s.t. 3x 1 + 2x 2 + x 3 = 6 3x 1 + 2x 2 + x 4 = 0 x 1, x 2, x 3, x 4 0

p. 7 Emlékeztető: a szimplex tábla max s.t. z z + (c T B B 1 N c T N )x N = c T B B 1 b x B + B 1 Nx N = B 1 b x B 0,x N 0 z x B x N RHS z 1 0 c T B B 1 N c T N ct B B 1 b 0. sor x B 0 I B 1 N B 1 b 1-m sorok

p. 7 Emlékeztető: a szimplex tábla (folyt.) z x B1... x Bm x N1... x Nn m RHS z 1 0... 0 z N1... z Nn m ˆb0 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

p. 7 Emlékeztető: a szimplex tábla (folyt.) max ˆb0 j J z jx Nj x Bi = ˆb i j J y ijx Nj x Bi,x Nj 0 i {1,...,m} primál szimplex megengedett táblák: i : ˆb i 0 optimalitás: j J : z j 0 belép a bázisba: k = argmin (z j : j J) ) kilép a bázisból: r = argmin( ˆbi y ik,i : y ik > 0

p. 7 Emlékeztető: a szimplex tábla (folyt.) pivot az y rk elem mentén az r-edik sort elosztjuk y rk -val az r-edik sor kivételével az összes i sorthoz hozzáadjuk az r-edik sor y ik -szorosát a 0-dik sorhoz hozzáadjuk az r-edik sor z k -szorosát

p. 7 Példa (folyt.) x 1 x 2 x 3 x 4 RHS z 0 1 0 0 0 x 3 3 2 1 0 6 x 4 3 2 0 1 0 bázis: x 3 = 6, x 4 = 0 nembázis : x 1 = x 2 = 0 célfüggvény: ˆb 0 = 0 belép a bázisba: x 2 kilép a bázisból: x 4

p. 7 Példa (folyt.) x 1 x 2 x 3 x 4 RHS z 3 2 0 0 1 2 0 x 3 6 0 1 1 6 x 2 3 2 1 0 1 2 0 bázis: x 2 = 0, x 3 = 6 nembázis : x 1 = x 4 = 0 célfüggvény: ˆb 0 = 0 belép a bázisba: x 1 kilép a bázisból: x 3

p. 7 Példa (folyt.) x 1 x 2 x 3 x 4 RHS z 0 0 1 4 x 1 1 0 1 6 1 6 1 x 2 0 1 1 4 1 4 1 4 3 2 3 2 bázis: x 1 = 1, x 2 = 3 2 nembázis : x 3 = x 4 = 0 célfüggvény: ˆb 0 = 3 2

Példa (folyt.) p. 7

p. 8 Példa (folyt.) az x 2 változó nem egészértékű x 2 + 1 4 x 3 + 1 4 x 4 = 3 2 készítsünk Gomory-féle vágást: (y ij y ij )x Nj ˆb i ˆb i j J 1 4 x 3 + 1 4 x 4 1 2 behelyettesítve x 1 és x 2 változókat: x 2 1 bevezetve az s 1 slack változót 1 x 4 3 + 1x 4 4 s 1 = 1, s 2 1 0

p. 8 Példa (folyt.) hozzáadjuk az új feltételt az LP relaxációhoz max x 2 s.t. 3x 1 + 2x 2 + x 3 = 6 3x 1 + 2x 2 + x 4 = 0 1x 4 3 1x 4 4 + s 1 = 1 2 x 1, x 2, x 3, x 4, s 1 0 az eredeti változók (x 1, x 2 ) terében max x 2 s.t. 3x 1 + 2x 2 6 3x 1 + 2x 2 0 x 2 1 x 1, x 2 0

Példa (folyt.) p. 8

Példa (folyt.) x 1 x 2 x 3 x 4 s 1 RHS z 0 0 1 4 1 3 0 4 2 1 x 1 1 0 1 0 1 6 6 1 1 3 x 2 0 1 0 4 4 2 s 1 0 0 1 1 1 1 4 4 2 bázis: x 1 = 1, x 2 = 3, s 2 1 = 1 2 nembázis : x 3 = x 4 = 0 célfüggvény: ˆb 0 = 3 2 belép a bázisba: x 3 kilép a bázisból: s 1 p. 8

p. 8 Emlékeztető: a szimplex tábla (folyt.) max ˆb0 j J z jx Nj x Bi = ˆb i j J y ijx Nj x Bi,x Nj 0 i {1,...,m} duál szimplex megengedett táblák: j J : z j 0 optimalitás: i : ˆb i 0 ) kilép a bázisból: r = argmin(ˆbi : i {1,...,m} ( ) zj belép a bázisba: k = argmin y rj, j J : y rj < 0

p. 8 Példa (folyt.) x 1 x 2 x 3 x 4 s 1 RHS z 0 0 0 0 1 1 x 1 1 0 0 1 2 2 3 3 3 x 2 0 1 0 0 1 1 x 3 0 0 1 1 4 2 bázis: x 1 = 2 3, x 2 = 1, x 3 = 2 nembázis : x 4 = s 1 = 0 célfüggvény: ˆb 0 = 1

Példa (folyt.) p. 8

p. 8 Példa (folyt.) az x 1 változó nem egészértékű x 1 1 3 x 4 + 2 3 s 1 = 2 3 készítsünk Gomory-féle vágást 2 3 x 4 + 2 3 s 1 2 3 bevezetve az s 2 slack változót 2 3 x 4 2 3 s 1 + s 2 = 2 3, s 2 0 behelyettesítve x 1 és x 2 változókat x 2 x 1

p. 8 Példa (folyt.) hozzáadjuk az új feltételt az LP relaxációhoz max x 2 3x 1 + 2x 2 + x 3 = 6 3x 1 + 2x 2 + x 4 = 0 1x 4 3 1x 4 4 + s 1 = 1 2 2x 3 4 2s 3 1 + s 2 = 2 3 x 1, x 2, x 3, x 4, s 1, s 2 0

p. 8 Példa (folyt.) az eredeti változók (x 1, x 2 ) terében max x 2 s.t. 3x 1 + 2x 2 6 3x 1 + 2x 2 0 x 2 1 x 1 + x 2 0 x 1, x 2 0

Példa (folyt.) p. 9

p. 9 Példa (folyt.) x 1 x 2 x 3 x 4 s 1 s 2 RHS z 0 0 0 0 1 0 1 x 1 1 0 0 1 2 2 0 3 3 3 x 2 0 1 0 0 1 0 1 x 3 0 0 1 1 4 0 2 s 2 0 0 0 2 3 2 3 1 2 3

p. 9 Példa (folyt.) x 1 x 2 x 3 x 4 s 1 s 2 RHS z 0 0 0 0 1 0 1 x 1 1 0 0 0 1 1 2 1 x 2 0 1 0 0 1 0 1 x 3 0 0 1 0 1 3 1 2 2 x 4 0 0 0 1 1 3 1 2 optimum: x 1 = x 2 = 1 két Gomory-féle vágás elég volt sajnos általában jóval több kell MIP-re is kiterjeszthető

p. 9 Korlátozás és szétválasztás branch-and-bound max s.t. c T x Ax b f x g x Z n ahol f és g egészértékű vektorok a megengedett megoldások halmaza S = {x : Ax b,f x g,x Z n } legyen z S = max{c T x : x S}

p. 9 Oszd meg és uralkodj! osszuk S-t diszjunkt alhalmazokra S 1 = {x : Ax b,f x h,x Z n } S 2 = {x : Ax b,h x g,x Z n } S = S 1 S2 és S 1 S2 = ekkor egyrészt z S = max(z S1,z S2 ) másrészt z S1 z S és z S2 z S

p. 9 Korlátozás és szétválasztás (folyt.) oldjuk meg az LP relaxációt: max{c T x : Ax b,f x g} ha az optimális megoldás egészértékű, kész Szétválasztás: osszuk fel S-t a fentiek szerint S 1 és S 2 diszjunkt halmazokra és oldjuk meg az LP relaxációt S 1 -en és S 2 -n is Korlátozás: ha valamelyik részprobléma megoldása egészértékű, jegyezzük meg, mert z S már nem lehet ennél kisebb folytassuk az S 1 és S 2 részhalmazaival rekurzívan ha valamelyik alhalmazon az LP relaxáció megoldása a korlátnál kisebb, akkor az alhalmazt már nem kell tovább szétválasztanunk és a rekurzió itt megáll

p. 9 Inicializálás legyen tehát a megoldandó ILP max{c T x : Ax b,f x g,x Z n } az algoritmus az ILP-k egy L listáján dolgozik, melybe az eredeti S halmaz alhalmazain megfogalmazott ILP-ket helyezi el ezenkívül számon tartja az az eddig talált legjobb, egészértékű x megoldást és a hozzá tartozó célfüggvényértéket: z = c T x 0. lépés: adjuk hozzá L-hez a megoldandó ILP-t, legyen z = és x nem definiált

p. 9 Relaxáció 1. lépés: ha L =, végeztünk ha nem, akkor válasszunk egy ILP-t L-ből és töröljük onnan oldjuk meg az LP relaxációt max{c T x : Ax b,f k x g k } ahol S k = {x : Ax b,f k x g k } a k-edik alhalmaz ha nincs megoldás, vissza az 1. lépésre ha van, legyen x k egy optimális megoldás és a hozzá tartozó célfüggvényérték z k = c T x k

p. 9 Korlátozás 2. lépés: három alesetet különböztetünk meg z k z : ilyenkor az S k alhalmamazon nem tudunk javítani az eddig talált optimumon; vissza az 1. lépésre, mert az összes további részfeladat optimuma is legfeljebb z k lehet ez a kulcslépés, hiszen így a keresési fa egy egész ágát lemetszettük, nincs szükség az összes alhalmaz bejárására z k > z és x k egészértékű: x k jobb megoldás, mint az eddig talált optimum, ezért eltároljuk: z = z k és x = x k z k > z de x k nem egészértékű: folytatjuk a 3. lépéssel

p. 9 Szétválasztás 3. lépés: S k halmazt két további alhalmazra osztjuk legyen x k i / Z egy nem egészértékű változó S k+1 = {x : Ax b,f k x g k,x i x k i } S k+2 = {x : Ax b,f k x g k,x i x k i + 1} és adjuk hozzá max{c T x : x S k+1 } és max{c T x : x S k+2 } ILP-ket L-hez folytassuk az 1. lépésnél

p. 10 Példa Z = max 21x 1 + 11x 2 s.t. 7x 1 + 4x 2 13 x 1, x 2 0 x 1, x 2 Z

Példa (folyt.) p. 10

p. 10 Példa (folyt.) 1. lépés Start? y 1. probléma x 1 0, x 2 0 Z = 39, x 1 = 13 7, x 2 = 0? y 2. probléma x 1 2, x 2 0 nincs megoldás 2. lépés x 1 2 szétválasztás x 1 -en 3. lépés x 1 1 3. probléma 1 x 1 0, x 2 0 Z = 37 1 2, x 1 = 1, x 2 = 3 2

p. 10 Példa (folyt.) S 2 = {x : 7x 1 + 4x 2 13, x 1 2,x 2 0} = nincs megoldás S 2 -ben a rekurzió itt nem folytatódik 2. probléma x 1 2, x 2 0 nincs megoldás

p. 10 Példa (folyt.) 3. probléma 1 x 1 0, x 2 0 Z = 37 1 2, x 1 = 1, x 2 = 3 2

p. 10 Példa (folyt.) 3. probléma 1 x 1 0, x 2 0 Z = 37 1 2, x 1 = 1, x 2 = 3 2? y 5. probléma 1 x 1 0, x 2 2 Z = 37, x 1 = 5 7, x 2 = 2 5. lépés x 2 2 szétválasztás x 2 -n 4. lépés x 2 1 4. probléma 1 x 1 0, 1 x 2 0 Z = 32, x 1 = 1, x 2 = 1

p. 10 Példa (folyt.) x 1 = x 2 = 1 egészértékű megoldás, pillanatnyilag a legjobb megjegyezzük 4. probléma 1 x 1 0, 1 x 2 0 Z = 32, x 1 = 1, x 2 = 1

p. 10 Példa (folyt.) 5. probléma? y 6. probléma 1 x 1 0, x 2 2 nincs megoldás 6. lépés x 1 1 szétválasztás x 1 -en 7. lépés x 1 0 7. probléma 0 x 1 0, x 2 2 Z = 35 3 4, x 1 = 0, x 2 = 3 1 4? y 8. probléma 0 x 1 0, 3 x 2 2 Z = 33, x 1 = 0, x 2 = 3 8. lépés x 2 3 szétválasztás x 2 -n 9. lépés x 2 4 9. probléma 0 x 1 0, x 2 4 nincs megoldás

p. 10 Példa (folyt.) x 1 = 0, x 2 = 3 egészértékű megoldás Z = 33 pillanatnyilag a legjobb, mert Z > Z megjegyezzük mivel a további keresés során nem találunk jobb megoldást, ez az optimum 8. probléma 0 x 1 0, 3 x 2 2 Z = 33, x 1 = 0, x 2 = 3

p. 10 Praktikus megfontolások a következő ILP kiválasztása L-ből LIFO: a legutoljára generált ILP-t oldjuk meg ekkor ugyanis a pillanatnyi bázismegoldás duál szimplex-szel tovább optimalizálható mélységi bejárás a keresési fán FIFO: szélességi bejárás melyik változónál alkalmazzunk szétválasztást? általában azt a változót érdemes választani, amely a legmesszebb van az egészértékűségtől ( maximum integer infeasibility ) vagy: felhasználó által megadott prioritások

p. 11 Korlátozás és vágás branch-and-cut az előző kettő kombinációja induljunk az LP relaxációból használjuk a Gomory-féle (vagy egyéb) módszert néhány gyors vágás elkészítésére, amelyek az LP nem egészértékű megoldásainak nagy részét hamar kiküszöbölik egy idő után az újabb vágások már csak egészen kis tartományokat metszenek el; ekkor térjünk át a korlátozás és szétválasztás módszerére a résztartományokon ismét készíthetünk új vágásokat előny: a korlátozás és szétválasztás fázisában jóval kisebb tartományon kell keresni

p. 11 Lagrange-i relaxáció Lagrangian relaxation dekompozíciós módszer: komplex problémák egyszerűbb részekre bontása Példa: Constrained Shortest Path Problem (CSPF) adva egy G(V,E) gráf, s,t V, és két élköltségfüggvény c : E R + : egységnyi folyam átvitelének ára az élen t : E R + : az él késleltetése keressük a legrövidebb P útvonalat s és d között melynek a késleltetése kisebb mint egy T korlát

p. 11 A CSPF probléma Z = min c ij x ij (i,j) E s.t. x ji j:(j,i) E (i,j) E t ij x ij T x ij {0, 1} j:(i,j) E x ij = 0 ha i V \ {s,d} 1 ha i = s 1 ha i = d komplikáló feltétel (i,j) E

p. 11 Példa (folyt.) s = 1, d = 4 és legyen T = 5 P 1 = (1 2 4): c P1 = 2, t P1 = 6 P 2 = (1 3 2 4): c P2 = 6, t P2 = 4 P 3 = (1 3 4): c P3 = 7, t P3 = 5

p. 11 Lagrange-i relaxáció a CSPF probléma NP-teljes de a komplikáló feltétel nélkül legrövidebb út problémát kapunk az optimális útvonal mind c mind t szerint rövid keressünk egy olyan útvonalat, ami c-t és t-t is minimalizálja min (c ij + λt ij )x ij (i,j) E beépítjük a komplikáló feltételt a célfüggvénybe (egy λ értékkel megszorozva) ha eltaláljuk a megfelelő λ értéket, megvan a megoldás (a fenti példában válasszunk λ = 3-at)

p. 11 Lagrange-i relaxáció (folyt.) legyen P egy nehéz kombinatorikus optimalizálási probléma Z = min c T x s.t. Ax b Dx e x 0 és egészértékű feltételezzük, hogy X = {x : Dx e,x 0,x Z n } halmaz felett könnyű optimalizálni és Ax b komplikáló feltétel

p. 11 Lagrange-i relaxáció (folyt.) oldjuk meg inkább a Lagrange-i problémát ( Z(λ) = min c T x + λ(ax b) ) x X λ a Lagrange-i multiplikátorok vektora a komplikáló feltételt, beszorozva λ-val, felvittük a célfüggvénybe (dualizálás) Tétel: minden λ > 0-ra: Z(λ) Z Biz: legyen x optimális P -ben. Ekkor Z = c T x c T x + λ(ax b) (mert λ > 0 és x kielégíti a komplikáló feltételt: Ax b) és mivel x X, vagyis x megengedett megoldás a Lagrange-i problémában is, ezért : c T x + λ(ax b) Z(λ).

p. 11 A CSPF Lagrange-i relaxációja s.t. Z(λ) = min (c ij + λt ij )x ij λt = i,j) E = min i,j) E x ji x ij = j:(j,i) E j:(i,j) E c ij x ij + λ( t ij x ij T) i,j) E 0 ha i V \ {s,d} 1 ha i = s 1 ha i = d x ij {0, 1} (i,j) E

p. 11 Lagrange-i relaxáció (folyt.) a Lagrange-i problémát könnyű megoldani, és a megoldása alsó határa a bonyolult probléma optimumának remekül használható a korlátozás és szétválasztás módszerében, gyors és jó alsó határok előállítására minél nagyobb alsó határt találunk, annál jobb ehhez meg kell találni az optimális Lagrange-i multiplikátort szubgradiens módszer oldjuk meg a Lagrange-i problémát valamely kezdeti λ-ra, és legyen a megoldás x ha x megengedett P -ben és λ(ax b) = 0, készen vagyunk állítsunk λ-n és új iteráció