NP-volledigheid Algoritmiek.

Slides:



Advertisements
Verwante presentaties
Sudoku puzzels: hoe los je ze op en hoe maak je ze?
Advertisements

Minimum Spanning Tree. Wat is MST? • Minimum spanning tree • De meest efficiënte manier vinden om een verbonden netwerk op te bouwen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3 005 Deel 2 College 5 Cees Witteveen
1 Hashtabellen Datastructuren. 2 Dit onderwerp Direct-access-tabellen Hashtabellen –Oplossen van botsingen met “ketens” (chaining) –Analyse –Oplossen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica IN3005 deel 2 College 2 Cees Witteveen
Computationele complexiteit: NP-volledigheid
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Fibonacci & Friends Met dank aan Gerard Tel.
NP-volledigheid Algoritmiek © Hans Bodlaender, Oktober 2002.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
Een workshop over katten, muizen en nadenken in de Informatica
Continue kansverdelingen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 5 Cees Witteveen.
TU Delft Groep Parallelle en Gedistribueerde Systemen Voorbeeld uitwerking reductie bewijs in3120 Cees Witteveen.
Fundamentele Informatica IN3120
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in3005 Deel 2 College 6 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 Oplossing Langste Pad Probleem Cees Witteveen
TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica In3 005 Deel 2 College 1 Cees Witteveen Parallelle en Gedistribueerde Systemen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3120 College 5 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3 005 Deel 2 College 4 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in3005 Deel 2 College 6 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3005 Deel 2 College 3 Cees Witteveen
1 Datastructuren Skiplists. 2 Skiplists  Vrij eenvoudige datastructuur  “Makkelijker” dan gebalanceerde bomen  Kunnen hetzelfde als gebalanceerde bomen.
WIS21.
Datastructuren Sorteren, zoeken en tijdsanalyse
1 Datastructuren Een informele inleiding tot Skiplists Onderwerp 13.
Hashtabellen Datastructuren. 2 Dit onderwerp Direct-access-tabellen Hashtabellen –Oplossen van botsingen met “ketens” (chaining) –Analyse –Oplossen van.
T U Delft Groep Parallelle en Gedistribueerde Systemen PGS College in345 Deel 2 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit Informatie.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 Laatste College ! Cees Witteveen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 3 Cees Witteveen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 2 Cees Witteveen.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3120 College 3 Cees Witteveen
TU Delft Groep Parallelle en Gedistribueerde Systemen Fundamentele Informatica IN3120 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit EWI,
H4 Differentiëren.
H2 Lineaire Verbanden.
Vergelijkingen oplossen
Presentatie Machten,Wortels & Ontbinden Deel 2
AI101  Historisch Perspectief Weak Methods Logic Theorist General Problem Solver  Resolution Theorem Proving Leeswijzer: Hoofdstuk 13.0, 13.1, 13.2 AI.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 4 Cees Witteveen
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen.
MBR AtT1 College 9 Diagnose met correctmodellen. Verdieping in de formalisatie. In reader: Characterizing diagnoses and Systems J. de Kleer, A.
Les 0 Structured Query Language SQL. Programma Les 0 – Introductieopdracht Les 1 Les 2 Les 3 Schriftelijke toets.
Gecijferdheid les 1.4 Grootst gemene deler Kleinst gemene veelvoud
Grafentheorie Graaf Verzameling knopen al dan niet verbonden door takken, bijv:
Recursie…. De Mandelbrot Fractal De werking… De verzameling natuurlijke getallen… 0 ∞-∞
Rekenen en Redeneren met Oneindig Jeroen Spandaw NWD, 5 februari 2016.
Minimum Opspannende Bomen Algoritmiek. 2 Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee.
Doorzoeken van grafen Algoritmiek. Algoritmiek: Divide & Conquer2 Vandaag Methoden om door grafen te wandelen –Depth First Search –Breadth First Search.
Kortste Paden Algoritmiek. 2 Vandaag Kortste Paden probleem All pairs / Single Source / Single Target versies DP algoritme voor All Pairs probleem (Floyd’s.
Netwerkstroming Algoritmiek. 2 Vandaag Netwerkstroming: definitie en toepassing Het rest-netwerk Verbeterende paden Ford-Fulkerson algoritme Minimum Snede.
Les 1. Wat voor les krijgen we nu? Tijdens de lessen over hoofdstuk 9, 10 en 11 krijg je op een andere manier les. Het doel is om je zelfstandigheid te.
Heuristieken en benaderingsalgoritmen Algoritmiek.
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek.
Datastructuren voor grafen Algoritmiek. 2 Grafen Model van o.a.: –Wegennetwerk –Elektrische schakeling –Structuur van een programma –Computernetwerk –…
Gerandomiseerde algoritmes
Kortste Paden Algoritmiek.
Doorzoeken van grafen Algoritmiek.
Netwerkstroming Algoritmiek.
Deze les hoofdrekenen les 1 vervolg
All-Pairs Shortest paths
Minimum Opspannende Bomen
Benaderingsalgoritmen
Hoofdstuk 9 M&O + in groepjes Havo3 iPad.
Modelleren en Programmeren voor KI Practicumopdracht 4: SAT Solver
Significante cijfers © Johan Driesse © 2013 – Johan Driesse.
Minimodules voor de 3e klas
3 vmbo-KGT Samenvatting Hoofdstuk 10
Modderdorp UNPLUGGED Bron: csunplugged.org.
GGD en KGV.
Transcript van de presentatie:

NP-volledigheid Algoritmiek

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

Exponentiele problemen Er zijn problemen waarvoor bewezen kan worden dat elk algoritme voor die problemen exponentiele 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

Moeilijk probleem 1: Het Handelsreizigersprobleem 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

Moeilijk probleem 2: 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

Moeilijk probleem 3: Subsetsum Gegeven getallen w1, …, wn, W. Bestaat er een deelverzameling van de getallen w1, …, wn, die som precies W heeft? Representatie: getallen in `binaire notatie’ Een O(nW) algoritme gebruikt exponentiële 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

Moeilijk probleem 4: Knapsack Een inbreker kan hooguit W gewicht dragen. Hij kan voorwerpen 1, … , n meenemen, met gewichten w1, …, wn, en waardes v1, …, vn. Alle gewichten en opbrengsten positieve gehele getallen. Gegeven ook getal K. Kan de inbreker minstens spullen van totaalwaarde K meenemen? Ook hier: notatie van getallen binair; dus O(Wn) is exponentieel in inputgrootte Algoritmiek

Moeilijk probleem 5: 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

Moeilijk probleem 6: 3-kleuring Gegeven: graaf G=(N,A). Gevraagd: is er een functie N ® {1,2,3}, zodat voor elke kant {v,w} geldt: f(v) ¹ f(w). 1 2 2 3 3 1 2 Algoritmiek

??? 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

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

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

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

Klassen van problemen We definiëren drie klassen problemen: P (“makkelijk” – polynomiaal) NP (“verifieerbaar”; “kleine certificaten”) NP-volledig (“moeilijk”) Er bestaan nog heel veel andere klassen (met andere eigenschappen…) Algoritmiek

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: Gegeven een samenhangende graaf G met gewichten op de kanten en integer K; heeft G een opspannende boom met totaal gewicht hooguit K? Algoritmiek

NP Intuitie: “een oplossing is makkelijk te controleren” Formele definitie gaat met “bewijssysteem” Algoritmiek

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

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

Soduku bewijssysteem: ( , ) Algoritmiek

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

In woorden NP: de problemen waar je oplossingen (certificaten / bewijzen) voor hebt: In polynomiale tijd te controleren Antwoord ja: er bestaat een oplossing met polynomiaal formaat Antwoord nee: er bestaat geen oplossing Algoritmiek

Stellinkjes Stelling. De problemen Knapsack, Subsetsum, 3-kleuring, Satisfiability, Handelsreiziger, Hamiltonian circuit behoren allen tot de klasse NP. Stelling. P Í NP NP komt van niet-deterministisch polynomiaal: gebaseerd op Turing machine model met `niet-deterministische berekeningen’. Algoritmiek

Polynomiaal certificaat Eis: grootte certificaat moet begrensd zijn door polynoom in de inputgrootte Voorbeeld waar dit niet hoeft te gelden: Rush Hour (Schuifpuzzel; Rush Hour zit waarschijnlijk niet in NP). Er zijn puzzels die exponentieel veel zetten hebben in een oplossing CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=855750 Algoritmiek

Interessant wetenschappelijk probleem Niet bekend: zijn P en NP aan elkaar gelijk? Veel wetenschappers denken van niet. Veel onderzoek is gedaan naar deze vraag! http://www.claymath.org/prizeproblems/pvsnp.htm : verdien een miljoen dollar door dit probleem op te lossen. ? Algoritmiek

Allerlei gevolgen Als P=NP: Allerlei moeilijke problemen kunnen dan wel in polynomiale tijd worden opgelost Cryptografie wordt lastig Als P ¹ NP We weten dan voor veel problemen dat ze niet in polynomiale tijd kunnen worden opgelost Algoritmiek

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 toelaat. Algoritmiek

Bewijsmethode Polynomiale reductie: Methode die: Krijgt een input van probleem A Van A weten we al dat het moeilijk is Geeft een input van probleem B We willen bewijzen dat B ook moeilijk is Zodat “antwoord (ja/nee) niet veranderd” In polynomiale tijd werkt Algoritmiek

Definitie Laat Q en R twee (beslissings)problemen zijn. Q is polynomiaal reduceerbaar tot R, als er een algoritme A is, dat Inputs voor Q afbeeldt op inputs voor R Polynomiale tijd gebruikt Voor alle x: x in Q  f(x) in R Notatie: Algoritmiek

Stellingen Stelling 1. Als Q £P R, en Q kan worden opgelost in polynomiale tijd, dan kan R ook worden opgelost in polynomiale tijd. Neem een input van R. Transformeer naar input van Q. Los die op. Geef dat antwoord. Dit is een correct, polynomiaal algoritme. Stelling 2. Als Q £P R, en R kan niet worden opgelost in polynomiale tijd, dan kan Q ook niet worden opgelost in polynomiale tijd. Volgt direct uit Stelling 1 Algoritmiek

Transformaties 2 Stelling: Subsetsum £P Knapsack Bewijs: neem input van Subsetsum. Neem voor ieder getal a(i) een voorwerp met waarde a(i) en gewicht a(i). Zet K=W Algoritmiek

3-SATISFIABILITY (ook: 3-SAT of 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)) Conjunctive Normal Form Algoritmiek

Transformaties 3 Stelling: 3-Kleuring £P 3-Satisfiability 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. (Schets op bord.) Pas algoritme voor Satisfiability op g toe. g is O(|N|+|A|) lang Algoritmiek

Nog zo’n reductie Stelling 3-Satisfiability £P 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

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

Satisfiability en 3-SAT zijn `even moeilijk’ 3-Satisfiability £P 3-Kleuring 3-Kleuring £P 3-Satisfiability Dus: er is een polynomiaal algoritme voor 3-kleuring, dan en slechts dan als er een polynomiaal algoritme is voor 3-Satisfiability. Algoritmiek

NP-volledigheid Een probleem A is NP-volledig, als A behoort tot de klasse NP Voor elk probleem B in NP geldt: B £P 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

Stelling van Cook (1971) (3)-Satisfiability is NP-volledig. Knap bewijs met behulp van Turing machines Hoe bewijs je nog meer problemen NP-volledig? Stelling Stel A is NP-volledig. Stel beslissingsprobleem B zit in NP, en A £TP B. Dan is B ook NP-volledig. Geeft manier om voor meer problemen te bewijzen dat ze NP-volledig zijn Algoritmiek

Meer NP-volledige problemen Stelling: 3-Kleuring is NP-volledig. Bewijs: 3-Kleuring Î NP. 3-SAT is NP-volledig. 3-SAT £P 3-Kleuring. Stelling: Hamiltonian circuit, Handelsreiziger, Knapsack, Subsetsum, Satisfiability (en duizenden andere problemen uit allerlei toepassingen) zijn allemaal NP-volledig. Bewijs: steeds met behulp van reducties met problemen die al eerder bewezen waren NP-volledig te zijn. Algoritmiek

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

NP-volledige problemen Venn-diagram als P ¹ NP … P NP-volledige problemen NP Algoritmiek

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

Hoe maak je een NP-volledigheidsbewijs? Stel, we willen bewijzen: probleem Q is NP-volledig Stap 1: toon aan: probleem Q in NP. (Vaak makkelijk, zelfs trivaal) Stap 2: Neem een NP-volledig probleem R Geef een algoritme A dat een input voor R vertaalt naar een input voor Q Algoritme moet polynomiale tijd gebruiken Bewijs: R(x) d.e.s.d. als Q(A(x)) Veel gemaakte fout: verkeerde kant op…  Algoritmiek

Subsetsum Gegeven getallen a1, …, an, B. 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

Voorbeeld bewijs Stelling. SubsetSum is NP-volledig Bewijs. SubsetSum is in NP (want …) Bewijs met reductie vanuit 3-Satisfiability Neem een Boolse expressie in conjunctive normaalvorm, met 3 literals per clause Stel met m clauses en n variabelen Algoritmiek

Notatie We gaan getallen decimaal noteren Voor elke variabele en voor elke clause hebben we een digit Voor elke variabele nemen we twee getallen: eentje voor true, en eentje voor false: 0 op een digit, behalve: 1 voor de digit van de variabele 1 als de literal de clause waarmaak Voor elke clause 2 dezelfde getallen, met 0 op alle digits behalve die van de clause Doelgetal: B = 333….333111…111 (clauses; variabelen) Algoritmiek

Voorbeeld (x1 or not(x2) or x4) and (not(x1) or x3 or x4) and (x2 or not(x3) or not(x4) Variabele-getallen: 1001000 (x1); 0101000 (not(x1)); 0010100; 1000100; 01000010; 0010010; 1100001; 0010001; Clause-getallen: 1000000; 1000000; 0100000; 010000; 0010000; 0010000 Doelgetal: B = 3331111 Algoritmiek

Correcte transformatie (schets bewijs) De formule kan waargemaakt worden, dan en slechts dan als een deelverzameling van de getallen bestaat met som B => Kies alle getallen die corresponderen met hoe je de variabele kiest; maak de som kloppend met clause-getallen <= Geen enkele keuze geeft ooit een “carry”. Je moet dus van elk paar voor een variabele er precies 1 kiezen. Zet de variabelen op die manier waar/onwaar. Nu moet elke clause vervuld zijn: de digit is 3, en hooguit 2 ervan kunnen van clause-getallen komen, dus eentje van een variabele getal -> die maakt de clause waar. Algoritmiek

Knapsack Een inbreker kan hooguit W gewicht dragen. Hij kan voorwerpen 1, … , n meenemen, met gewichten w1, …, wn, en waardes v1, …, vn. Alle gewichten en opbrengsten positieve gehele getallen. Gegeven ook getal K. Kan de inbreker minstens spullen van totaalwaarde K meenemen? Ook hier: notatie van getallen binair; dus O(Wn) is exponentieel in inputgrootte Algoritmiek

Knapsack Stelling. Knapsack is NP-volledig Nu we SubsetSum hebben is dit relatief makkelijk… Algoritmiek

Bewijs Knapsack in NP, want we kunnen in polynomiale tijd voor een verzameling het totaalgewicht en de totale waarde uitrekenen en vergelijken met W en K Reductie vanuit SubsetSum: als we a1, …, an, B hebben, nemen we: Voorwerpen met waarde ai en gewicht ai W=K=B Algoritmiek

Sterk en zwak NP-volledig Subsetsum kan in O(nW) tijd worden opgelost, maar is toch NP-volledig Hoe zit dat? Algoritmiek

Sterk en zwak NP-volledig Subsetsum kan in O(nW) tijd worden opgelost, maar is toch NP-volledig Want W is exponentieel groot in het aantal bits nodig om de input te geven We noemen Subsetsum zwak NP-volledig. Er bestaan ook sterk NP-volledige problemen Algoritmiek

3-Partitie Gegeven: getallen a(1), …, a(3m). Vraag: kunnen we de getallen in m groepjes verdelen, zodat elk groepje dezelfde som heeft? Voorbeeld: 4, 10, 5, 6, 7, 20, 22, 1, 30 Ja: {5, 10, 20} en {4, 1, 30} en {6, 7, 22} NP-volledig zelfs als we getallen in unaire notatie geven Algoritmiek

Achtergronden Cook bewees 3-Satisfiability NP-volledig. Het bewijs gebruikt 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