NP-Volledigheid. Wil zo snel mogelijke algoritmes om problemen op te lossen. De looptijd is polynomiaal: O n k - dat is heel erg mooi

Vergelijkbare documenten
TW2020 Optimalisering

NP-volledigheid. Algoritmiek

Elfde college complexiteit. 23 april NP-volledigheid III

Negende college complexiteit. 9 april NP-volledigheid I: introductie

(On)Doenlijke problemen

Fundamentele Informatica

Tentamen combinatorische optimalisatie Tijd:

Benaderingsalgoritmen

TW2020 Optimalisering

Hoofdstuk 13: Integer Lineair Programmeren

Twaalfde college complexiteit. 7 mei NP-volledigheid IV Cook-Levin Savitch 1

Tentamen IN3105. Complexiteitstheorie. 16 april 2012, uur

1 Complexiteit. of benadering en snel

TW2020 Optimalisering

De Resolutiemethode (Logica, hoofdstuk 15) Robinson (1965) TI1300 Redeneren en Logica

Tentamen IN3105 Complexiteitstheorie

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Heuristieken en benaderingsalgoritmen. Algoritmiek

Hoofdstuk 8: Algoritmen en Complexiteit

Minimum Spanning Tree

Puzzels en wiskunde. Inleiding. Algoritme. Sudoku. 22 Puzzels en wiskunde

TW2020 Optimalisering

Uitgebreide uitwerking Tentamen Complexiteit, juni 2017

Onderwerpen. Punten en lijnen, postbodes en handelsreizigers. Theorie. Theorie (2) Graaftheorie. Een mini-inleiding graaftheorie

TW2020 Optimalisering

Stelling. SAT is NP-compleet.

Samenvatting college 1-12

Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag 11 Januari 2013

TW2020 Optimalisering

Tentamen TI3300 / IN3105 Complexiteitstheorie

Modelleren en Programmeren voor KI

Algoritmes en Priemgetallen. Hoe maak je een sleutelpaar voor RSA?

TW2020 Optimalisering

l e x e voor alle e E

2WO12: Optimalisering in Netwerken

Op zoek naar de Hamilton cykel. Mike Hoffmeister

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007

TW2020 Optimalisering

TW2020 Optimalisering

Het Chinese Postbode Probleem. Marene Dimmendaal s

Kunstmatige Intelligentie (AI) Hoofdstuk 6 van Russell/Norvig = [RN] Constrained Satisfaction Problemen (CSP s) voorjaar 2015 College 7, 31 maart 2015

Algoritmen, Datastructuren en Complexiteit ( en ) Uitwerkingen

Netwerkstroming. Algoritmiek

Vijfde college algoritmiek. 2/3 maart Exhaustive search

Credit cards, computationele complexiteit en consistentie uitspraken

TW2020 Optimalisering

Twaalfde college complexiteit. 11 mei Overzicht, MST

ALGORITMIEK: antwoorden werkcollege 5

Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3

MMI. The Digital World 4. Peter van Kranenburg

Universiteit Utrecht Betafaculteit. Examen Discrete Wiskunde op donderdag 13 april 2017, uur.

RSA. F.A. Grootjen. 8 maart 2002

2WO12: Optimalisering in Netwerken

Toeristen stad Dominerende verzamelingen

Tentamen Discrete Wiskunde 1 10 april 2012, 14:00 17:00 uur

Netwerkstroming. Algoritmiek

Spider Solitaire is NP-Compleet

2WO12: Optimalisering in Netwerken

Inleiding logica Inleveropgave 3

Sudoku s en Wiskunde

2WO12: Optimalisering in Netwerken

Logic for Computer Science

Hoorcollege Logica. Hans-Dieter A. Hiep

Begrenzing van het aantal iteraties in het max-flow algoritme

Uitgebreide uitwerking Tentamen Complexiteit, juni 2018

definities recursieve datastructuren college 13 plaatjes soorten Graph = ( V, E ) V vertices, nodes, objecten, knopen, punten

Geheeltallige programmering

Examen Datastructuren en Algoritmen II

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

ALGORITMIEK: antwoorden werkcollege 5

ALGORITMIEK: antwoorden werkcollege 5

Overzicht. Inleiding. Toepassingen. Verwante problemen. Modellering. Exacte oplosmethode: B&B. Insertie heuristieken. Local Search

Transshipment problemen Simplex methode en netwerk optimalisatie algoritmes. Luuk van de Sande Begeleider: Judith Keijsper 20 januari 2013

Doorzoeken van grafen. Algoritmiek

Grafen deel 2 8/9. Zesde college

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University

Universiteit Utrecht Betafaculteit. Examen Discrete Wiskunde II op donderdag 6 juli 2017, uur.

Tie breaking in de simplex methode

Dynamisch Programmeren III. Algoritmiek

Vierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument

Classificatie van Markovbeslissingsketens

Cover Page. The handle holds various files of this Leiden University dissertation.

Opgaven Eigenschappen van Getallen Security, 2018, Werkgroep.

Sommige praktische IP problemen kunnen worden geformuleerd als optimalisering op een netwerk.

Verzamelingen deel 3. Derde college

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

8. Complexiteit van algoritmen:

Practicumopgave 3: SAT-solver

Opgaven Kunstmatige intelligentie 4 mei 2012

Vierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search

Optimalisering/Besliskunde 1. College 1 3 september, 2014

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Tweede college complexiteit. 12 februari Wiskundige achtergrond

Examen Discrete Wiskunde donderdag 12 april, 2018

Tweede Huiswerk Security 26 of 28 oktober, 11.00, Nabespreken op Werkcollege.

De partitieformule van Euler

De klasse van recursief opsombare talen is gesloten onder en. Dit bewijzen we met behulp van een recursieve opsomming

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens

Gödels Onvolledigheidsstellingen

Transcriptie:

NP-Volledigheid Wil zo snel mogelijke algoritmes om problemen op te lossen Gezien: selectie [O(n)], DFS [O(n + m)], MaxFlow [O nm n + m ], MST [O(n + m)], etc De looptijd is polynomiaal: O n k - dat is heel erg mooi

NP-Volledigheid Wil zo snel mogelijke algoritmes om problemen op te lossen Gezien: selectie [O(n)], DFS [O(n + m)], MaxFlow [O nm n + m ], MST [O(n + m)], etc De looptijd is polynomiaal: O n k - dat is heel erg mooi Helaas! Voor veel problemen hebben we geen polynomiaal algoritme. Wat nu? NP-volledigheid geeft ons aanwijzingen dat er misschien geen polynomiaal algoritme is

Noach s Ark / Travelling Salesman n plekken {1,, n} Afstand tussen i en j: d[i, j] Wat is kortste pad door alle plekken? n! verschillende volgordes DP-algoritme: O(2 n n 2 ) Grote vraag: kan het in polynomiale tijd? Millennium Problem: $1.000.000 voor O(n k ) of bewijs dat het niet kan

3-Kleuring Gegeven: graaf G = (V, E) Gevraagd: toekenning van kleuren aan knopen Max. 3 kleuren, buren mogen niet dezelfde kleur hebben O 3 n mogelijkheden

3-Kleuring Gegeven: graaf G = (V, E) Gevraagd: toekenning van kleuren aan knopen Max. 3 kleuren, buren mogen niet dezelfde kleur hebben O 3 n mogelijkheden Kan in O(2 n n) tijd

Knapsack n objecten met gewicht w i en opbrengst e i Kan maximaal M kilo in mijn rugzak Wil zo groot mogelijke e i Bepaal welke objecten voor maximale winst Uit DP-college: O(Mn)

Knapsack n objecten met gewicht w i en opbrengst e i Kan maximaal M kilo in mijn rugzak Wil zo groot mogelijke e i Bepaal welke objecten voor maximale winst Uit DP-college: O(Mn) Dit telt niet als polynomiaal! Een invoer van k bits kan M = 2 k geven

Hamiltonian Cycle Gegeven: een graaf G = (V, E) Gevraagd: een cykel die alle knopen precies één keer bezoekt O(2 n n 2 ) met DP, lijkt op TSP

Subset Sum n getallen {a 1,, a n } Gevraagd: kun je G schrijven als som van a i s Voorbeeld: {3,5,21,17,9,2} maak 16 Kan met DP in O(Gn)

Satisfiability Gegeven: boolse formule φ x 1,, x n Voorbeeld: x 1 x 2 x 3 ( x 1 x 3 ) Gevraagd: toekenning van true, false aan x 1,, x n zodat φ x 1,, x n waar (satisfied) is Heel belangrijk probleem voor NP-volledigheid O 2 n n om alle mogelijkheden te proberen

Help! Allemaal problemen waarvoor we geen polynomiaal algoritme weten Maar ook geen bewijs dat het niet kan 1971: Stephen Cook Formele theorie: P v.s. NP Al deze problemen zijn aan elkaar gerelateerd

3 soorten probleem Verschillende problemen hebben andere soort output: TSP geeft een pad, satisfiability een rijtje true/false, knapsack een rijtje objecten, Om het consistent te maken bekijken we alleen de beslisvariant: antwoord is JA of NEE. Voorbeeld voor TSP: Constructie Geef de korste route voor de handelsreiziger Pad Optimalisatie Hoe lang is de kortste route? Getal Beslis Is er een route met lengte K? JA / NEE

Beslisproblemen TSP: is er een route korter dan K? 3-kleuring: bestaat er een 3-kleuring? Knapsack: kan ik winst K halen? Hamiltonian Cycle: heeft mijn graaf er een? Satifyability: is de formule satisfiable?

Beslissen is moeilijk Het lijkt alsof beslissen makkelijker zou kunnen zijn, dit is niet zo Een algoritme dat optimalisatie oplost lost ook beslis op (kijk of antwoord K) Beslis kun je gebruiken als orakel voor optimalisatie: zoek binair naar beste waarde van K en gebruik beslisalgoritme als subroutine Beslis/optimalisatie/constructie zijn even moeilijk, maar over beslis is het makkelijker redeneren

De klasse P P is de klasse van beslisproblemen die in polynomiale tijd kunnen worden opgelost Minimum Spanning Tree Reachability (is er in G een pad van u naar v) Max Flow Dubbelverbondenheid Euler Cycle Priemtesten

Formeel - De klasse NP NP staat NIET voor niet polynomiaal NP: Niet-deterministisch polynomiaal Niet-deterministisch: computer kan zichzelf klonen naar een parallel universum

Niet-deterministische berekening A

Niet-deterministische berekening A A=1

Niet-deterministische berekening A A=1 A=0

Niet-deterministische berekening A Polynomiale tijd! A=1 A=0 Exponentieel veel

Niet-deterministische berekening A Ja! A=1 A=0 Nee Nee Nee Ja?

Minder formeel - NP Niet-determinisme is lastig Andere definitie: NP is de klasse van problemen waarvan we een oplossing in polynomiale tijd kunnen verifiëren Verklap ik je de TSP-route dan kun je checken of hij niet te lang is in lineaire tijd Satisfiability is lastig, maar gegeven de juiste assignment (true/false) is het heel makkelijk!

Iets formeler Een verifier voor beslisprobleem B is een programma P(A, C) met twee argumenten: 1. A: Een instantie van B 2. C: Een certificaat Met de eigenschappen dat: 1. Als A een NEE-instantie van B is geeft P altijd NEE 2. Als A een JA-instantie van B is dan is er een C zodat P(A, C) JA geeft (NB: de lengte van C moet ook polynomiaal zijn) 3. P(A, C) loopt in polynomiale tijd

Over NP Alle problemen die we gezien hebben zitten in NP Stelling: P NP Maar andersom is de grote open vraag De twee definities van NP zijn equivalent Je kunt niet-deterministisch naar het certificaat zoeken Je kunt de niet-deterministische keuzes als certificaat gebruiken

Reducties We kunnen hamiltonian circuit reduceren naar travelling salesman Gegeven graaf G = (V, E) Maak TSP-instantie: Als u, v E, dan d u, v = 1 Als u, v E, dan d u, v = n + 1 Is er TSP-tour met lengte n?

Reducties We kunnen hamiltonian circuit reduceren naar travelling salesman Gegeven graaf G = (V, E) Maak TSP-instantie: Als u, v E, dan d u, v = 1 Als u, v E, dan d u, v = n + 1 Is er TSP-tour met lengte n? Dan en slechts dan als G hamiltonisch circuit heeft! Wat zegt dit over de relatieve moeilijkheid van TSP en hamiltonian circuit?

Reducties Gegeven graaf G = (V, E) Maak TSP-instantie: Als u, v E, dan d u, v = 1 Als u, v E, dan d u, v = n + 1 Is er TSP-tour met lengte n? Dan en slechts dan als G hamiltonisch circuit heeft! Als algoritme A TSP oplost in polynomiale tijd dan kunnen we A gebruiken om hamiltonisch circuit in polynomiale tijd op te lossen! TSP is moeilijker dan hamiltonisch circuit

Tweede reductie 3-kleurbaarheid naar satisfiability Maak voor iedere knoop 3 variabelen x i,1, x i,2 en x i,3 x i,1 betekent dat knoop i kleur 1 krijgt, etc Bouw de boolean formula: 1. Voor iedere knoop: (x i,1 x i,2 x i,3 ) 2. Voor iedere edge tussen knoop i en j: x i,1 x j,1 x i,2 x j,2 x i,3 x j,3

Karp-Reductie Probleem A is naar probleem B reduceerbaar als er een programma P(a) is dat: 1. Als invoer een instantie a van A neemt en een instantie b van B terug geeft 2. Polynomiale tijd gebruikt 3. Als a een JA-instantie van A is, dan is P(a) een JA-instantie van B 4. Als a een NEE-instantie van A is, dan is P(a) een NEE-instantie van B 5. (NB: De lengte van P(A) is polynomiaal maar dit volgt automatisch uit eigenschap 2)

Effect van reductie Als A naar B reduceert dan geeft ieder polynomiaal algoritme voor B ook een polynomiaal algoritme voor A Polynomiale Reductie Polynomiaal algoritme voor B JA NEE Polynomiaal algoritme voor A

NP-volledig Een beslisprobleem A heet NP-volledig (eng: NP-complete) 1. Het probleem A zelf in NP zit 2. Ieder probleem uit NP reduceert naar A NP-volledige problemen zijn de moeilijkste uit NP Een probleem dat aan (2) voldoet (maar niet noodzakelijk aan 1) heet NPmoeilijk (eng: NP-hard). Soms worden problemen die geen beslisproblemen zijn ook wel NP-moeilijk genoemd.

NP-volledig Een beslisprobleem A heet NP-volledig (eng: NP-complete) 1. Het probleem A zelf in NP zit 2. Ieder probleem uit NP reduceert naar A Hoe bewijs je een probleem NP-volledig?

NP-volledig Een beslisprobleem A heet NP-volledig (eng: NP-complete) 1. Het probleem A zelf in NP zit 2. Ieder probleem uit NP reduceert naar A Hoe bewijs je een probleem NP-volledig? Laat zien dat een bestaand NP-volledig probleem B naar A reduceert Kip-en-het-ei

NP-volledig Een beslisprobleem A heet NP-volledig (eng: NP-complete) 1. Het probleem A zelf in NP zit 2. Ieder probleem uit NP reduceert naar A Hoe bewijs je een probleem NP-volledig? Laat zien dat een bestaand NP-volledig probleem B naar A reduceert Kip-en-het-ei Cook-Levin 1971: Satisfiability is NP-volledig

3-SAT 3-SAT: Speciaal geval van satisfiability, NP-volledig Formule moet een conjunctie zijn van disjuncties met precies 3 variabelen of negaties daarvan - conjunctieve normaalvorm (x 1 x 3 x 4 ) ( x 2 x 3 x 4 ) (x 5 x 3 x 2 ) Startpunt van veel reducties

Meer 3-kleuring Reductie: 3-SAT naar 3-kleuring Centrale knoop C krijgt 1 v.d. kleuren, andere twee kleuren stellen True en False voor T F C C true x 1 x 1 x 2 x 2

3-kleuring is NP-volledig 1. 3-kleuring zit in NP, want gegeven een kleuring kun je verifiëren dat geen buurknopen dezelfde kleur hebben 2. Ieder probleem uit NP reduceert naar 3-SAT (want 3-SAT is NP-volledig) en reduceert dus naar 3-kleuring, dus ieder probleem reduceert naar 3-kleuring. Q.E.D.

NP-volledige problemen Gezien: TSP, 3-kleuring, Hamiltonian Cycle, Knapsack, Satisfiability, 3-SAT, Subset Sum Maximum Clique Vertex Cover Maximum Independent Set Maximum Cut Integer Linear Programming

Super Mario Bros is NP-volledig Heel veel spellen vormen moeilijke beslisproblemen Hier: kan Mario het eind van het level bereiken? Bewijs: 3-SAT

Variabele x x

Clause x 1 x 2 x 3 x 1 x 2 x 3

Crossover

Moeilijkheid van puzzels en spellen Van heel veel spellen en puzzels is iets bekend over de moeilijkheid Schaken: bestaat geen polynomiaal algoritme voor Sudoku, Tetris, Bejeweled: NP-volledig Lemmings, Rush Hour, Quest Planner: PSPACE-volledig (erger dan NP) Zoeken naar NP-volledigheidsbewijs kan een leuke puzzel zijn

P = NP? Als P = NP Zijn alle problemen uit NP in polynomiale tijd oplosbaar Kunnen we heel veel dingen veel efficiënter plannen en doen Rampje: traditionele cryptografie werkt niet meer Als P NP Heeft geen enkel NP-volledig probleem een polynomiaal algoritme Ook geen garantie dat cryptografie veilig is Conclusie: volg volgend blok Security!

Wat nu? Als een probleem NP-volledig is het heel onwaarschijnlijk dat je een polynomiaal algoritme zal kunnen vinden Je kan het misschien benaderen: evolutionair algoritme? Probeer speciale gevallen te vinden of het probleem te versimpelen Wat denken jullie? P = NP of niet?

Als P NP NP-Volledig NP P

Verder dan NP Er zijn problemen waar het checken van een oplossing ook moeilijk is PSPACE: problemen op te lossen met polynomiale ruimte. EXPTIME: problemen op te lossen met exponentiële tijd Complexiteitshiërarchie: allemaal eigen.-volledige klassen Veel open problemen. Niet bekend of NP = EXPTIME. Enige wat we weten: EXPTIME P

PSPACE PSPACE: problemen die kunnen worden opgelost met polynomiale opslagruimte (en dus max. exponentiële tijd) Voor NP hebben we satisfiability als moederprobleem PSPACE-volledig: true quantified boolean formula Ook existentiële quantoren w x y z (x y) ( w z) NPSPACE: niet-deterministisch polynomiale ruimte

PSPACE PSPACE: problemen die kunnen worden opgelost met polynomiale opslagruimte (en dus max. exponentiële tijd) Voor NP hebben we satisfiability als moederprobleem PSPACE-volledig: true quantified boolean formula Ook existentiële quantoren w x y z (x y) ( w z) NPSPACE: niet-deterministisch polynomiale ruimte Stavitch: PSPACE = NPSPACE (!)

Meer weten? Donderdag 10 April 12-13u BBL083 (hier is ook straks het WC) Bloxorz is PSPACE-complete Graph Constraint Logic: universeel framework voor moeilijkheidsbewijzen Ook (soort van) relevant voor Quest Planner