Samenvatting college 1-12
Probleemformulering Duidelijk definiëren van beslissingsvariabelen Zinvolle namen voor variabelen bv x ij voor ingrediënt i voor product j, niet x 1,..., x 20 Beschrijving van de voorwaarden Vergeet niet de 0, {0, 1} voorwaarden Zorg dat de voorwaarden lineair zijn Zie college 9 voor modelleertechnieken 10 december 2014 1
Lineair Programmeren Polynomiaal oplosbaar (niet met simplex) Belangrijk onderdeel van algoritmen Branch-and-Bound, Gomory sneden, Approximatiealgoritmen Standaardvorm: min c T x Ax = b x 0 10 december 2014 2
Basisoplossingen Definitie: Zet n m variabelen gelijk aan 0. Los Ax = b op voor overige m variabelen. Unieke oplossing is een basisoplossing Definitie: Een toegelaten basisoplossing, x 0, is een bfs. Definitie: Als een bfs tenminste één basisvariabele met waarde 0 heeft, is de bfs gedegenereerd. Stelling: Als meer dan één basis behoort tot dezelfde bfs x, dan is x gedegenereerd. Stelling: Voor elke instantie van LP bestaat er een optimale bfs. 10 december 2014 3
Simplexalgoritme Het vinden van een startoplossing -voorwaarde: slackvariabele in de basis =-voorwaarde: artificiële variabele in de basis -voorwaarde: artificiële variabele in de basis In geval van artificiële variabele: FASE 1 10 december 2014 4
Simplexalgoritme Het vinden van een startoplossing -voorwaarde: slackvariabele in de basis =-voorwaarde: artificiële variabele in de basis -voorwaarde: artificiële variabele in de basis In geval van artificiële variabele: FASE 1 Bepalen van een pivotelement Intredende var: j met c j = min{ c j c j 0} Uittredende var: Min-ratiotest i zdd b i ā i j = min{ b i ā ij ā ij > 0} 10 december 2014 4
Simplexalgoritme Het vinden van een startoplossing -voorwaarde: slackvariabele in de basis =-voorwaarde: artificiële variabele in de basis -voorwaarde: artificiële variabele in de basis In geval van artificiële variabele: FASE 1 Bepalen van een pivotelement Intredende var: j met c j = min{ c j c j 0} Uittredende var: Min-ratiotest i zdd b i ā i j = min{ b i ā ij ā ij > 0} Conclusies trekken Niet-teogelaten: fase 1 eindigt met w > 0 Onbegrensd: alle ā ij 0 Niet-uniek optimum: c j = 0 voor niet-basis variabele Gedegenereerde oplossing: x j = 0 voor een j in de basis 10 december 2014 4
Dualiteit max c T x min b T π a i x b i π i 0 a i x = b i π i R a i x b i π i 0 x j R x j 0 x j 0 π T A j = c j π T A j c j π T A j c j 10 december 2014 5
Dualiteit Gegeven het volgende primaal-duaal paar: min z(x) = c T x max w(π) = b T π (P) Ax b (D) π T A c x 0 π 0 Stelling: (Zwakke dualiteit) Als ˆx toegelaten voor (P) en ˆπ toegelaten voor (D): z(ˆx) w(ˆπ) Stelling: (Sterke dualiteit) Stel (P) en (D) zijn toegelaten. Als (P) een begrensd optimum x heeft, dan heeft (D) ook een begrensd optimum π en z(x ) = w(π ) 10 december 2014 6
Complementary slackness Sterke dualiteit geeft waarde van duale optimum. Complementary slackness geeft ook de oplossing zelf. Stelling: Stel ˆx, ˆπ toegelaten voor (P) en (D). ˆx en ˆπ optimaal d.e.s.d.a. ˆx j (ˆπ T A j c j ) = 0 ˆπ i (b i a i ˆx) = 0 j = 1,...n i = 1,...m 10 december 2014 7
Orde-notaties voor groei Definitie: Zij f (n) en g(n) functies zijn van de positieve integers naar de positieve reële getallen: (a) f (n) = O(g(n)) als er een constante c > 0 is zdd, voor groot genoege n, f (n) cg(n) 10 december 2014 8
Orde-notaties voor groei Definitie: Zij f (n) en g(n) functies zijn van de positieve integers naar de positieve reële getallen: (a) f (n) = O(g(n)) als er een constante c > 0 is zdd, voor groot genoege n, f (n) cg(n) (b) f (n) = Ω(g(n)) als er een constante c > 0 is zdd, voor groot genoege n, f (n) cg(n) 10 december 2014 8
Orde-notaties voor groei Definitie: Zij f (n) en g(n) functies zijn van de positieve integers naar de positieve reële getallen: (a) f (n) = O(g(n)) als er een constante c > 0 is zdd, voor groot genoege n, f (n) cg(n) (b) f (n) = Ω(g(n)) als er een constante c > 0 is zdd, voor groot genoege n, f (n) cg(n) (c) f (n) = Θ(g(n)) als er constanten c, c > 0 zijn zdd, voor groot genoege n, cg(n) f (n) c g(n) 10 december 2014 8
Nuttige eigenschap f (n) lim n g(n) = 0, then f (n) O(g(n)) f (n) lim n g(n) = c > 0, then f (n) Θ(g(n)) f (n) lim n g(n) =, then f (n) Ω(g(n)) 10 december 2014 9
De klassen P, NP en NP-volledig Definitie: De klasse P is de verzameling van alle beslissingsproblemen die in polynomiale tijd oplosbaar zijn. Definitie: NP = verzameling problemen die in polytime verifiëerbaar zijn = verzameling beslissingsproblemen Π: ja-instanties I, certificaat c(i ) en polynomiaal algoritme om geldigheid van c(i ) na te gaan. Definitie: Π 2 is NP-volledig (NP-complete) als a) Π 2 NP b) Π 1 NP: Π 1 Π 2 10 december 2014 10
Implicaties Stel Π 1, Π 2 NP en Π 1 Π 2 (1) Π 2 P (2) Π 1 NP-volledig (3) Π 2 NP-volledig 10 december 2014 11
Implicaties Stel Π 1, Π 2 NP en Π 1 Π 2 (1) Π 2 P Π 1 P (2) Π 1 NP-volledig Π 2 NP-volledig (3) Π 2 NP-volledig Zegt niets over Π 1 10 december 2014 11
Bewijs van NP-volledigheid Hoe bewijs je dat een probleem NP-volledig is? 1) Bewijs dat je probleem behoort tot NP 2) Toon aan dat een NP-volledig probleem naar jouw probleem reduceert 10 december 2014 12
Problemen in de klasse P KORTSTE PAD Dijkstra s algoritme MAX FLOW Ford-Fulkerson Max Flow-Min Cut stelling MST Prim, Greedy, Kruskal 10 december 2014 13
Integer Lineair Programmeren Lineair Programmeren met integer variabelen NP-volledig Belangrijke relatie: Z TOEG Z IP Z LP Z LP Z IP Z TOEG (Maximalisatie) (Minimalisatie) Voor TUM matrices A geldt: Hoekpunten van {x Ax = b, x 0} en {x Ax b, x 0} zijn geheeltallig voor iedere geheeltallige b. LP-relaxatie geeft oplossing voor ILP. 10 december 2014 14
Oplosmethoden ILP Branch-and-Bound Herhaaldelijk LP relaxatie oplossen. Wanneer kan ik een tak afsnoeien? Gomory sneden Rij uit simplex tableau geeft een geldige ongelijkheid Oplossing LP relaxatie wordt afgesneden, geen geheeltallige punten afgesneden Duale Simplex om probleem na toevoegen van voorwaarde op te lossen Beide methoden hebben niet-polynomiale worst-case 10 december 2014 15
Approximatie algoritmen Definitie: Een algoritme A is een ρ-approximatiealgoritme voor probleem Π als A voor iedere toegelaten instantie I van Π in polynomiale tijd een oplossing produceert van waarde z A (I ) zdd: z A (I ) ρ z OPT (I ) (minimalisatie) z A (I ) ρ z OPT (I ) (maximalisatie) 3 stappen voor bewijs algoritme approximatiealgoritme: 1 Heeft het algoritme polynomiale rekentijd? 2 Retourneert het algoritme een toegelaten oplossing? 3 Wat is de prestatiegarantie van het algoritme? 10 december 2014 16
Vragen? 10 december 2014 17