TW2020 Optimalisering Hoorcollege 11 Leo van Iersel Technische Universiteit Delft 25 november 2015 Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 1 / 28
Vandaag Vraag Voor welke problemen bestaat er waarschijnlijk geen polynomiaal algoritme? Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 2 / 28
Snelle en langzame algoritmes Polynomiale-tijd algoritmes: Algoritme van Dijkstra voor Kortste Pad; Algoritmes voor Minimum Opspannende Boom; Interior Point Methods voor LP; Max Flow algoritme met kortste stroom-vermeerderende paden. Exponentiële-tijd algoritmes: Brute Force (alle oplossingen afgaan); Branch & Bound algoritme voor ILP. Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 3 / 28
Definitie P is de klasse van beslissingsproblemen die in polynomiale tijd oplosbaar zijn. Definitie NP is de klasse van beslissingsproblemen waarvoor voor elke ja-instantie een certificaat bestaat waarmee in polynomiale tijd geverifiëerd kan worden dat het antwoord ja is. Intuïtief: NP bestaat uit de problemen waarvoor een oplossing in polynomiale tijd geverifiëerd kan worden. NP staat voor niet-deterministisch polynomiaal P NP Één van de zeven millennium problemen: P = NP? Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 4 / 28
Optimaliseringsprobleem bestuderen via geassocieerd beslissingsprobleem Een Hamilton circuit van een graaf is een circuit dat elk punt precies één keer doorloopt. Probleem TSP (Travelling Salesman Problem) Gegeven: volledige graaf G = (V, E) en lengtefunctie l : E Z. Gevraagd: een Hamilton circuit in G van minimale lengte. Probleem TSP-beslis Gegeven: volledige graaf G = (V, E), lengtefunctie l : E Z en bovengrens k Z. Beslis: heeft G een Hamilton circuit van lengte hoogstens k? Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 5 / 28
Voorbeeld Welke van de onderstaande beslissingsproblemen zitten met zekerheid in de klasse NP? 1 Gegeven een graaf G = (V, E), heeft G een Hamilton circuit? 2 Gegeven een graaf G = (V, E) met lengtefunctie l : E Z en k Z, heeft G een Hamilton circuit van lengte hoogstens k? 3 Gegeven een graaf G = (V, E) met lengtefunctie l : E Z en k Z, heeft G geen Hamilton circuit van lengte hoogstens k? 4 Gegeven een graaf G = (V, E) met lengtefunctie l : E Z en k Z, heeft het kortste Hamilton circuit van G lengte k? Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 6 / 28
Definitie Een reductie van een beslissingsprobleem Π 1 naar een beslissingsprobleem Π 2 is een functie die aan elke instantie I van Π 1 een instantie f (I ) van Π 2 toewijst, zodanig dat: 1 er een algoritme bestaat dat f berekent in polynomiale tijd; 2 voor elke instantie van I van Π 1 geldt: I is een ja-instantie van Π 1 f (I ) is een ja-instantie van Π 2. De notatie Π 1 Π 2 betekent: er bestaat een reductie van Π 1 naar Π 2. Dit betekent (intuïtief): probleem Π1 is een speciaal geval (special case) van probleem Π 2 ; probleem Π1 is makkelijker of net zo moeilijk als Π 2. Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 7 / 28
Lemma Als Π 1 Π 2 and Π 2 P, dan Π 1 P. Definitie Een beslissingsprobleem Π is NP-moeilijk (NP-hard) als voor elke Π NP geldt dat Π Π. Dus als er een polynomiale-tijd algoritme bestaat voor één NP-moeilijk probleem, dan bestaat er een polynomiale-tijd algoritme voor elk probleem in NP (dus dan is P = NP). Dus als een probleem NP-moeilijk is, dan is het onwaarschijnlijk dat het opgelost kan worden in polynomiale tijd. Intuïtief: een probleem is NP-moeilijk als het minstens zo moeilijk is als elk probleem in NP. Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 8 / 28
Definitie Een beslissingsprobleem Π is NP-volledig (NP-complete) als 1 Π is NP-hard is en 2 Π in NP zit. Intuïtief: NP-volledige problemen zijn de moeilijkste problemen in NP. Vraag Bestaan er NP-volledige problemen? Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 9 / 28
Definitie Een boolean expressie is een formule bestaande uit boolean variabelen x 1, x 2,... (variabelen die de waarden TRUE en FALSE kunnen aannemen) en de symbolen,, x die de volgende betekenis hebben: Definitie x 1 is TRUE x 1 is FALSE; x 1 x 2 is TRUE tenminste één van x 1 en x 2 is TRUE; x 1 x 2 is TRUE x 1 en x 2 zijn beiden TRUE. Een literal is een boolean variabele (x i ) of een negatie van een boolean variabele (x i ). Een clause is een disjunctie van literals, bijv: (x 1 x 2 x 4 x 9 ). Een conjunctie van clauses C 1, C 2,..., C k is: C 1 C 2... C k. Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 10 / 28
Definitie Een waarde toekenning voor een verzameling U van boolean variabelen is een functie t : U {TRUE, FALSE}. Stelling Elke boolean expressie kan geschreven worden als een conjunctie van clauses (Conjunctive Normal Form (CNF)). Probleem Satisfiability (SAT) Gegeven: een verzameling U van boolean variabelen en een conjunctie C = C 1... C k van clauses over U. Beslis: bestaat er een waardetoekenning voor U die de expressie C TRUE maakt? C is TRUE elke clause van C is TRUE Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 11 / 28
Voorbeeld Bestaat er een waardetoekenning die de volgende expressie TRUE maakt? (x 1 x 2 x 3 ) (x 1 x 4 ) (x 4 x 5 ) (x 1 x 4 x 5 ) Voorbeeld Bestaat er een waardetoekenning die de volgende expressie TRUE maakt? (x 1 x 2 ) (x 1 x 3 ) (x 2 x 3 ) (x 1 x 4 ) (x 2 x 4 ) (x 3 x 4 ) Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 12 / 28
Stelling (Cook, 1971) SAT is NP-volledig. Bewijs (idee) SAT NP want een waardekenning die de expressie TRUE maakt is een certificaat dat gecontroleerd kan worden in polynomiale tijd. Laat Π NP. Te bewijzen: Π SAT. Er bestaat een polynomiale-tijd algoritme A dat gegeven een instantie I en een certificaat C(I ) beslist of C(I ) inderdaad bewijst dat I een ja-instantie is. Idee achter het bewijs van Cook: codeer A als een boolean expressie, met boolean variabelen die o.a. het certificaat coderen. Er is een waardetoekenning die de boolean expressie TRUE maakt er bestaat een certificaat dat bewijst dat I een ja-instantie is I is een ja-instantie. Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 13 / 28
Lemma (transitiviteit) Als Π 1 Π 2 en Π 2 Π 3 dan Π 1 Π 3. Lemma Als Π 1 NP-moeilijk is en Π 1 Π 2 dan is Π 2 ook NP-moeilijk. Om te bewijzen dat een probleem Π in P zit: geef een reductie van Π naar een probleem in P. Om te bewijzen dat een probleem Π NP-moeilijk is: geef een reductie van een NP-moeilijk probleem naar Π. Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 14 / 28
Vraag Stel Π 1, Π 2 NP en Π 1 Π 2. 1 Als Π 2 P, wat zegt dit over Π 1? 2 Als Π 1 NP-volledig is, wat zegt dit over Π 2? 3 Als Π 2 NP-volledig is, wat zegt dit over Π 1? 4 Als Π 1 P, wat zegt dit over Π 2? Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 15 / 28
Om te bewijzen dat een beslissingsprobleem Π NP-volledig is: 1 laat zien dat Π NP; 2 kies een NP-hard probleem Π en geef een reductie van Π naar Π d.w.z. laat zien dat een willekeurige instantie I van Π getransformeerd kan worden in een instantie f (I ) van Π zodanig dat: (a) I ja-instantie f (I ) ja-instantie; (b) f (I ) ja-instantie I ja-instantie; (c) transformatie kan uitgevoerd worden in polynomiale tijd. Let op: instantie f (I ) mag niet exponentiëel veel groter zijn dan instantie I (volgt uit (c)). Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 16 / 28
Geheeltallig programmeren (IP) is NP-volledig. Probleem 0,1-IP Stelling Gegeven: geheeltallige m n matrix A en vector b Z m Beslis: is er een x {0, 1} n met Ax b? 0,1-IP is NP-volledig 0,1-IP zit duidelijk in NP. Reductie: SAT 0,1-IP. Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 17 / 28
SAT 0,1-IP Bewijs Neem een algemene instantie van SAT: Variabelen U = {u1,..., u n } Conjunctie van clauses: C = C1 C 2... C m. Creëer een instantie van 0,1-IP als volgt: Voor elke variabele u i van de SAT instantie, creëer binaire variabelen x i en y i voor de 0,1-IP instantie en een restrictie x i + y i = 1. Voor elke clause C k, zeg van de vorm C k = i I u i j J u j met I, J {1,..., n} creëer een restrictie: x i + y j 1. i I j J Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 18 / 28
Bewijs (vervolg) Neem eerst aan dat er een waardetoekenning t : U {TRUE, FALSE} bestaat die de expressie TRUE maakt. Dan kunnen we als volgt een toegelaten oplossing van het IP vinden: voor elke ui U met t(u i ) = TRUE, kies x i = 1 en y i = 0; voor elke u i U met t(u i ) = FALSE, kies x i = 0 en y i = 1; dan wordt aan alle restricties voldaan. Neem nu aan dat er een toegelaten oplossing van het IP bestaat. Dan kunnen we als volgt een waardetoekenning vinden: als xi = 1 en y i = 0, kies t(u i ) = TRUE; als x i = 0 en y i = 1, kies t(u i ) = FALSE; dit zijn de enige mogelijkheden door de restricties x i + y i = 1; aan elke clause wordt voldaan door de restricties x i + y j 1. j J i I dus maakt de waardetoekenning de expressie TRUE. Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 19 / 28
Een clique in een graaf is een deelgraaf waarin elk tweetal punten met elkaar verbonden is. Voorbeeld Vind de grootste clique in de onderstaande graaf. Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 20 / 28
Probleem CLIQUE Stelling Gegeven: een graaf G = (V, E) en een geheel getal k. Beslis: heeft G een clique met tenminste k punten? Het probleem CLIQUE is NP-volledig. CLIQUE zit duidelijk in NP. Reductie: SAT CLIQUE. Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 21 / 28
Bewijs (SAT CLIQUE) Neem een algemene instantie van SAT: Variabelen U = {u 1,..., u n } Conjunctie van clauses: C = C 1 C 2... C m. Creëer een instantie G = (V, E), k van CLIQUE als volgt: k = m V := {(σ, C i ) σ is een literal in C i } E := {{(σ, C i ), (τ, C j )} i j en τ σ} Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 22 / 28
Bewijs (vervolg) Stel eerst dat er een waardetoekenning is die de expressie TRUE maakt. Dan kunnen we zo k punten in G vinden die een clique vormen: Elke clause C i bevat tenminste één literal die TRUE is. Kies zo n literal en noem hem σ i. Dan is {(σ i, C i ) i = 1,..., m} een clique van G met m = k punten. Stel nu dat G een clique K heeft bestaande uit k punten. Dan kunnen we zo een waardetoekenning vinden die C TRUE maakt: Voor elk punt (σ, C i ) K zet σ op TRUE. Het is niet mogelijk dat σ en σ beiden op TRUE zijn gezet omdat de bijbehorende punten niet met elkaar verbonden zijn. Maak de waardetoekenning op een willekeurige manier af. Per clause zit precies één punt in K, want er zitten k punten in K en de punten behorende bij dezelfde clause zijn niet met elkaar verbonden. Dus bevat K precies één punt (σ, C i ) voor elke clause C i en die σ is op TRUE gezet, dus wordt aan elke clause C i voldaan. Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 23 / 28
Definitie co-np is de klasse van beslissingsproblemen waarvoor voor elke nee-instantie een certificaat bestaat waarmee in polynomiale tijd geverifiëerd kan worden dat het antwoord nee is. Stelling P (NP co NP) Niet bekend: is NP = co-np? Vermoedens: P NP NP co-np Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 24 / 28
Vraag Welke van de onderstaande beslissingsproblemen zitten met zekerheid in de klasse co-np? 1 Gegeven een graaf G = (V, E), heeft G een Hamilton circuit? 2 Gegeven een graaf G = (V, E), heeft G geen Hamilton ciruit? 3 Gegeven een gerichte graaf D = (V, A) met een capaciteit b ij 0 voor elke pijl (i, j) A, twee speciale punten s, t V en een getal F, is er een stroom van s naar t met waarde tenminste F? 4 Gegeven een m n matrix A en een vector b Z m, bestaat er een x R n waarvoor Ax = b en x 0? Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 25 / 28
De meeste problemen in NP co-np blijken in P te zitten. Het volgende probleem is wel bewezen in NP co-np te zitten, maar het is niet bekend of het in P zit: Probleem Integer Factorization Gegeven: m, n N Gevraagd: heeft m een deler kleiner dan n en groter dan 1? Van het probleem PRIMES (gegeven een geheel getal, is het een priemgetal) is recent wel bewezen dat het in P zit. Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 26 / 28
Stelling (Ladner, 1975) Als P NP, dan zijn er problemen die niet in P zitten en ook niet NP-volledig zijn. Van de meeste bekende problemen is echter ofwel bekend dat ze in P zitten ofwel dat ze NP-volledig zijn. Uitzonderingen zijn Integer Factorization en: Probleem Graph Isomorphism Gegeven: twee grafen G = (V, E), H = (V, E ). Gevraagd: zijn G en H isomorf? D.w.z. bestaat er een bijectie f : V V zodanig dat {u, v} E {f (u), f (v)} E Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 27 / 28
Volkskrant, 17 november 2015: Babai heeft laten zien dat Graph Isomorphism oplosbaar is in O(2 poly(log(n)) ) tijd, bijna polynomiaal. http://people.cs.uchicago.edu/~laci/2015-11-10talk.mp4 Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 28 / 28