Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdJoachim Verhoeven Laatst gewijzigd meer dan 10 jaar geleden
1
NP-volledigheid Algoritmiek © Hans Bodlaender, Oktober 2002.
2
Polynomiale algoritmen of moeilijke problemen?
Algoritme A is polynomiaal, als er een constante c bestaat, zodat het algoritme bij inputs van formaat n O(nc) tijd gebruikt. Sommige problemen hebben een polynomiaal algoritme dat het oplost; voor andere is zo’n algoritme niet bekend. NP-volledigheid: theorie die indicatie geeft dat bepaalde problemen geen polynomiaal algoritme hebben. Algoritmiek
3
Exponentiële problemen
Er zijn problemen waarvoor bewezen kan worden dat elk algoritme voor die problemen exponentiële tijd gebruikt, bijv.: Generalized Chess; Generalized Go (gegeneraliseerd naar borden van willekeurig formaat) Gegeven een positie in spel, heeft de aan zet zijnde speler een winnende strategie … Maar … voor veel problemen hebben we niet zo’n bewijs… Algoritmiek
4
Het Handelsreizigersprobleem
1 2 3 4 5 Gegeven: stel steden 1, … n. Voor elk paar steden i, j, een afstand d(i,j), getal K. Gevraagd: is er een route die in stad 1 begint, elke stad precies 1 keer bezoekt en weer in stad 1 eindigt, en totale lengte hooguit K heeft? 4 4 1 2 1 2 3 3 2 2 5 De tweede route is dus beter dan de eerste. We zoeken de kortste route, dat is hier dus : 1, 2, 3, 4. In ‘t Engels: TSP: Travelling Salesman Problem, of: Travelling Sales Person problem. 5 2 2 3 3 4 2 4 2 13 11 Algoritmiek
5
Een graaf met een Hamiltonian circuit
Gegeven: Ongerichte graaf G=(N,A). Gevraagd: Is er een cycle in G, die elke knoop in G precies een keer bezoekt? Een graaf met een Hamiltonian circuit Algoritmiek
6
Subsetsum Gegeven: getallen a1, …, an, B.
Gevraagd: Bestaat er een deelverzameling van de getallen a1, …, an, die som precies B heeft? Representatie: getallen in `binaire notatie’ Een O(nB) algoritme gebruikt exponentiele tijd in het aantal bits nodig om de input te noteren. We zien later: als Jim de gewichten afrondt, dan maakt hij een niet al te grote fout! En kan hij DP gebruiken. Algoritmiek
7
Knapsack Een inbreker kan hooguit G gewicht dragen. Hij kan voorwerpen 1, … , n meenemen, met gewichten g1, …, gn, en waardes w1, …, wn. Alle gewichten en opbrengsten positieve gehele getallen. Gegeven ook getal W. Gegeven: positieve integers g1, …, gn, w1, …, wn Gevraagd: Kan de inbreker minstens spullen van totaalwaarde W meenemen? Ook hier: notatie van getallen binair; dus O(Wn) is exponentieel in inputgrootte Algoritmiek
8
Satisfiability Gegeven: logische expressie over Boolse variabelen.
Gevraagd: kan aan de variabelen waardes true en false toegekend worden zodat de expressie waar wordt? (x1 or not x2) and (x2 or not x1 or x3) and (not x3) Wordt waar als we bijv. nemen: x1 = true; x2 = true; x3 = false Algoritmiek
9
3-kleuring Gegeven: graaf G=(N,A).
Gevraagd: is er een functie f: N ® {1,2,3}, zodat voor elke kant {v,w} geldt: f(v) ¹ f(w). 1 2 2 3 3 1 2 Algoritmiek
10
??? Voor elk van deze problemen:
Is er geen algoritme bekend dat het probleem oplost en (worst case) polynomiale tijd gebruikt. Is er geen bewijs dat het probleem niet in polynomiale tijd op te lossen is. Er zijn nog veel meer problemen die zich net zo gedragen, uit allerlei toepassingen. Algoritmiek
11
Intuitie Makkelijker om oplossingen te controleren dan te vinden
Algoritmiek
12
Versies van problemen Beslissingsprobleem
Vb.: Gegeven n steden met afstand voor elk paar steden, en gegeven een getal k: is er een handelsreizigerstour met totale afstand hooguit k? Optimalisatieprobleem Gegeven n steden met afstand voor elk paar steden, wat is de lengte van de kortste handelsreizigerstour? Constructieprobleem Gegeven n steden met afstand voor elk paar steden, wat is de kortste handelsreizigerstour? Algoritmiek
13
Minstens zo moeilijk Stelling: Als er voor de optimalisatievariant (constructievariant) van het handelsreizigersprobleem een polynomiaal algoritme bestaat, dan bestaat er ook een polynomiaal algoritme voor de beslissingsvariant van het handelsreizigersprobleem. Wat lastiger, maar ook waar: in de andere richting. Algoritmiek
14
Over beslissingsproblemen
Theorie van NP-volledigheid gaat met name over beslissingsproblemen. Als we weten dat een beslissingsprobleem `moeilijk’ is, dan is de bijbehorende optimaliseringsvariant dat ook. Beslissingsprobleem kan je zien als verzameling: Verzameling van instanties die ja als antwoord geven. Algoritmiek
15
P Definitie: Een beslissings-probleem behoort tot de klasse P als er een (deterministisch) algoritme is dat het probleem oplost, en dat polynomiale tijd gebruikt. Deze problemen horen tot de klasse P: 2-Kleuring: gegeven een graaf, is er een kleuring van de knopen met 2 kleuren zodat grenzende knopen verschillend zijn. Kwadraat: gegeven een getal n, is n een kwadraat van een natuurlijk getal? Priemgetal: gegeven n, is n een priemgetal? Minimum Spanning Tree Algoritmiek
16
Bewijssysteem Veel problemen zijn van de vorm Gegeven: ….
Gevraagd: bestaat er een …., zodat …. Bewijssysteem voor probleem X is verzameling F van paren <x,q>, q Î Q, voor een verzameling Q van bewijzen of certificaten, zodat x Î X Û er bestaat een q met <x,q> Î F Algoritmiek
17
Voorbeelden van bewijssystemen
Samengesteld getal: (Niet-Priemgetal) Neem Q de verzameling getallen, en doe <x,q>Î F Û q is een deler van x Hamiltonian circuit: Neem Q de verzameling permutaties van knopen, en doe <G,p>Î F Û p vormt een Hamiltonian circuit in G. Knapsack, 3-kleuring, Satisfiability ook in NP. Controleer maar! Algoritmiek
18
Definitie NP NP is de klasse van de beslissingsproblemen B waarvoor een bewijssysteem F bestaat, en een polynoom p(n), en een algoritme A, zodat Voor alle mogelijke inputs x: er geldt: x Î B Û $ q: <x,q> Î F, en als x formaat n heeft, dan heeft q formaat hooguit p(n). A controleert of voor gegeven x, q, <x,q> Î F. A gebruikt polynomiale tijd Staat helaas fout in het boek. Algoritmiek
19
Stellinkjes Knapsack, Subsetsum, 3-kleuring, Satisfiability, Handelsreiziger, Hamiltonian circuit problemen behoren allen tot de klasse NP. P Í NP NP komt van niet-deterministisch polynomiaal: gebaseerd op Turing machine model met `niet-deterministische berekeningen’. Algoritmiek
20
Interessant wetenschappelijk probleem
Niet bekend: zijn P en NP aan elkaar gelijk? Veel wetenschappers denken van niet. Veel onderzoek is gedaan naar deze vraag! : verdien een miljoen dollar door dit probleem op te lossen. ? Algoritmiek
21
Transformaties 1 Stelling: Als er een polynomiaal algoritme voor het Handelsreizigersprobleem bestaat, dan bestaat er een polynomiaal algoritme voor Hamiltonian circuit. Stel we hebben algoritme X voor Handelsreiziger. Neem input G=(N,A) voor Hamiltonian circuit. Maak input voor Hand.reiz.probl.: N verzameling steden d(v,w) = 1 als {v,w} in A d(v,w) = n+1 als {v,w} niet in A. Pas algoritme X op deze input toe. G heeft Hamiltonian circuit, desd als X een tour met lengte hooguit n vindt. Algoritmiek
22
Transformaties 2 Stelling: Als er een polynomiaal algoritme voor het Knapsack probleem bestaat, dan bestaat er een polynomiaal algoritme voor Subsetsum. In feite is Subsetsum een speciaal geval, als voor elk voorwerp zijn gewicht gelijk is aan zijn waarde. Algoritmiek
23
SAT-3CNF Conjunctive Normal Form SAT-3CNF:
Eis dat de zin van de vorm is C1 en C2 en … en Cn (clauses) met elke Ci van de vorm (zi1 of zi2 of zi3) met elke zij van de vorm: Variable xa of negatie van variable: not(xa) Vb: (x1 of x3 of not(x2)) en (not(x2) of x3 of not(x1)) Algoritmiek
24
Transformaties 3 Stelling: Als er een polynomiaal algoritme voor het Sat-3CNF probleem bestaat, dan bestaat er een polynomiaal algoritme voor het 3-kleuringsprobleem. Stel we hebben algoritme voor SAT-3CNF. Gegeven graaf G=(N,A). Neem variabelen xv,i, voor elke knoop v in N, i=1,2,3. Je kan een logische zin g in 3CNF maken, die waargemaakt kan worden, d.e.s.d. als G 3-kleurbaar is. (Op bord.) Pas algoritme voor Satisfiability op g toe. g is O(n+a) lang Algoritmiek
25
Definitie 1 Laat A en B twee (beslissings)problemen zijn. A is polynomiaal Turing reduceerbaar tot B, als er een algoritme bestaat om A op te lossen, waarbij dit algoritme polynomiale tijd zou gebruiken wanneer we willekeurige instanties van probleem B in 1 tijdstap zouden kunnen oplossen. Notatie: Vaak wordt een andere soort reducties gebruikt: polynomially many-one reductions Algoritmiek
26
Many-one Laat A en B twee (beslissings)problemen zijn. A is polynomiaal many-one reduceerbaar tot B, als er een functie f bestaat, zodat: f kan in polynomiale tijd berekend worden Voor elke input x voor A geldt: het antwoord voor x voor probleem A is ja, dan en slechts dan als het antwoord voor f(x) voor probleem B is ja Algoritmiek
27
Over reducties Als A £TP B, en B kan worden opgelost in polynomiale tijd, dan kan A ook worden opgelost in polynomiale tijd. A £mP B impliceert A £TP B Dus ook: als A £mP B, en er bestaat geen polynomiaal algoritme voor A, dan bestaat er ook geen polynomiaal algoritme voor B. In feite bewezen we: Ham. Circuit £mP Handelsreizigersprobleem SubsetSum £mP Knapsack 3-kleuring £mP Sat-3CNF Intuitie: A is hooguit zo moeilijk als B. Algoritmiek
28
Nog zo’n reductie Stelling SAT-3NF £mP 3-Kleuring
Bewijs: Zij gegeven zin in 3CNF vorm, met variabelen x1 , …,xr. We maken nu een graaf: Vertaal dat variabelen true of false kunnen zijn: true false We noemen de kleuren: C, true, false C x1 not x1 x2 not x2 … Algoritmiek
29
Vervolg reductie Voor elke clause voegen we stuk graaf met 6 knopen en wat kanten toe. De graaf is precies 3-kleurbaar, desd als aan de variabelen true en false kan worden toegekend zodat de zin waar wordt. C true = een van de literals uit de clause Algoritmiek
30
Satisfiability en 3-kleuring zijn `even moeilijk’
SAT-3NF £mP 3-Kleuring 3-kleuring £mP SAT-3NF Dus: er is een polynomiaal algoritme voor 3-kleuring, desd als er een polynomiaal algoritme is voor SAT-3NF. Algoritmiek
31
NP-volledigheid Een probleem A is NP-volledig, als
A behoort tot de klasse NP Voor elk probleem B in NP geldt: B £mP A `Moeilijkste’ problemen in NP. Stelling: Als A NP-volledig, en er is een polynomiaal algoritme voor A, dan is er een polynomiaal algoritme voor elk probleem in NP. Algoritmiek
32
Stelling van Cook-Levin (1971)
SAT-(3)CNF is NP-volledig. Hoe bewijs je nog meer problemen NP-volledig? Stelling Stel A is NP-volledig. Stel beslissingsprobleem B zit in NP, en A £mP B. Dan is B ook NP-volledig. Geeft manier om voor meer problemen te bewijzen dat ze NP-volledig zijn Algoritmiek
33
Meer NP-volledige problemen
Stelling: 3-kleuring is NP-volledig. Bewijs: 3-kleuring Î NP. SAT-3CNF is NP-volledig. SAT-3NF £mP 3-Kleuring. Stelling: Hamiltonian circuit, Handelsreiziger, Knapsack, Subsetsum, Satisfiability and duizenden andere problemen uit allerlei toepassingen zijn allemaal NP-volledig. Bewijs: steeds met behulp van (polynomiale many-one) reducties met problemen die al eerder bewezen waren NP-volledig te zijn. Algoritmiek
34
Heel veel NP-volledige problemen
Uit veel praktische toepassingen Logica, databases, computationele biologie, logistiek, ... ... Algoritmiek
35
Gevolgen Als P = NP: Dan zijn alle problemen in NP, dus ook alle NP-volledige problemen op te lossen in polynomiale tijd. Maar … veel wetenschappers denken dat dit niet zo is. Als P ¹ NP: Dan is geen enkel NP-volledig probleem op te lossen in polynomiale tijd. Algoritmiek
36
NP-volledige problemen
Venn-diagram als P ¹ NP … P NP-volledige problemen NP Algoritmiek
37
Gevolgen 2 Als bekend is dat een probleem NP-volledig is, dan:
Weten we dat het onwaarschijnlijk is dat er een polynomiaal algoritme voor bestaat, Het in elk geval dat het vreselijk moeilijk zal zijn om zo’n algoritme te vinden. Want als we zo’n polynomiaal algoritme gevonden hebben, dan hebben we bewezen P=NP. (Kassa!) Moeten we dus zoeken naar alternatieve aanpakken: Speciale gevallen, benaderingsalgoritmen, slimme vormen van exponentiele algoritmen, etc. Algoritmiek
38
Achtergronden Cook bewees SAT-CNF NP-volledig. Gebruik Turing machines. Zelfde resultaat, gelijkertijd, verkregen door Levin. Veel onderzoek gedaan naar P=NP vraag, maar nog geen oplossing. ... O.a.: Millenium probleem Clay Math. Inst. Veel wetenschappelijke artikelen, boeken, … Algoritmiek
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.