Föreläsning 9: NP-fullständighet

Relevanta dokument
Föreläsning 7+8: NP-problem. Begreppet effektiv algoritm är alltså synonymt med går i polynomisk tid i den här kursen. Är detta en rimlig uppdelning?

Föreläsning 8+9: NP-problem. Begreppet effektiv algoritm är alltså synonymt med går i polynomisk tid i den här kursen. Är detta en rimlig uppdelning?

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

Föreläsning 8: Intro till Komplexitetsteori

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

Föreläsning 12+13: Approximationsalgoritmer

Algoritmer, datastrukturer och komplexitet

Komplexitetsklasser och repetition

Övningsmästarprov 2 + några NP-reduktioner. Algoritmer, datastrukturer och komplexitet

Grundläggande logik och modellteori

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Algoritmer, datastrukturer och komplexitet

Kap.6 Grafer. Egenskaper: Handskakningslemmat och Eulers formel Sats om eulerkrets/väg Isomorfi och representation av grafer Graffärgning

Föreläsning 5: Dynamisk programmering

Lektion 8: Konstruktion av semantiska tablåer för PTL-formler

PCP-satsen på kombinatoriskt manér

1 Duala problem vid linjär optimering

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret Lektion 4

, S(6, 2). = = = =

Föreläsningsanteckningar F6

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer

N = {i}: noder (hörn) Graf: G = (N, B) Definitioner. Väg: Sekvens av angränsande bågar. Cykel: Väg som startar och slutar i samma nod.

Grundläggande logik och modellteori

Föreläsning 1. Introduktion. Vad är en algoritm?

Föreläsning 5: Grafer Del 1

Grundläggande logik och modellteori

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Frågan om P=NP? Är P=NP? Bakgrund. "Snabb lösning"?!

Föreläsning 2: Grafer. Exempel på graf

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

Tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610, onsdagen den 20 augusti 2014, kl

Grundläggande logik och modellteori (5DV102)

Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

DEL I. Matematiska Institutionen KTH

Föreläsning Datastrukturer (DAT036)

Lösning av tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610, tisdagen den 27 maj 2014, kl

Algoritmer, datastrukturer och komplexitet

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Explorativ övning 9 RELATIONER OCH FUNKTIONER

Grundläggande logik och modellteori (5DV102)

Grafer och grannmatriser

NP-fullständighetsbevis

Efternamn förnamn ååmmdd kodnr

DD1350 Logik för dataloger. Fö 7 Predikatlogikens semantik

Kimmo Eriksson 12 december Att losa uppgifter av karaktaren \Bevisa att..." uppfattas av manga studenter

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

Armin Halilovic: EXTRA ÖVNINGAR

Lösning till tentamensskrivning i Diskret Matematik, SF1610 och 5B1118, torsdagen den 21 oktober 2010, kl

COMPUTABILITY BERÄKNINGSBARHET. Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall

K2 Något om modeller, kompakthetssatsen

p /\ q r DD1350 Logik för dataloger Kort repetition Fö 3 Satslogikens semantik

Om plana och planära grafer

Tentamen TMV210 Inledande Diskret Matematik, D1/DI2

Föreläsning 13. Dynamisk programmering

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Kompletteringsmaterial. K2 Något om modeller, kompakthetssatsen

Diskret matematik: Övningstentamen 1

Algoritmer och Komplexitet ht 08. Övning 6. NP-problem

Oändligtdimensionella vektorrum

Kaliningrad) låg vid bägge sidor av floden Pregel samt på

Övningshäfte 2: Induktion och rekursion

Normalisering av meningar inför resolution 3. Steg 1: Eliminera alla och. Steg 2: Flytta alla negationer framför atomära formler

Funktionella beroenden - teori

Predikatlogik: Normalformer. Klas Markström

Lösningar för tenta i TMV200 Diskret matematik kl. 14:00 18: Svar: Ja, det gäller, vilket kan visas på flera sätt (se nedan).

1 LP-problem på standardform och Simplexmetoden

Tommy Färnqvist, IDA, Linköpings universitet

Mer om analytisk geometri

1. (3p) Bestäm den minsta positiva resten vid division av talet med talet 31.

1 Minkostnadsflödesproblem i nätverk

Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 14 augusti, 2002

Om plana och planära grafer

Algoritmkomplexitet. Komplexitet Teoretisk bas för frågorna: Är en viss metod bra eller dålig? Är ett visst problem lätt eller svårt?

Institutionen för matematik, KTH Mats Boij. Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 20 december, 2000

Lösningar för tenta i TMV200 Diskret matematik kl. 14:00 18:00

Eulercykel. Kinesiska brevbärarproblemet. Kinesiska brevbärarproblemet: Metod. Kinesiska brevbärarproblemet: Modell. Definition. Definition.

Övningshäfte 3: Funktioner och relationer

729G04 - Diskret matematik. Lektion 4

Föreläsning 4: Giriga algoritmer. Giriga algoritmer

Diskret matematik: Övningstentamen 4

Föreläsning Datastrukturer (DAT037)

Interpolation Modellfunktioner som satisfierar givna punkter

18 juni 2007, 240 minuter Inga hjälpmedel, förutom skrivmateriel. Betygsgränser: 15p. för Godkänd, 24p. för Väl Godkänd (av maximalt 36p.

Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl

Vectorer, spannet av vektorer, lösningsmängd av ett ekvationssystem.

Lösning till tentamensskrivning i Diskret Matematik för CINTE och CMETE, m fl, SF1610, tisdagen den 2 juni 2015, kl

Speciell användning av heltalsvariabler. Heltalsprogrammering. Antingen-eller-villkor: Exempel. Speciell användning av heltalsvariabler

JavaScript del 3 If, Operatorer och Confirm

Isometrier och ortogonala matriser

Linjärprogramming. EG2205 Föreläsning 7, vårterminen 2015 Mikael Amelin

DEL I. Matematiska Institutionen KTH

Föreläsning 5 Innehåll

Transkript:

Föreläsning 9: NP-fullständighet Olika typer av problem: 1. Beslutsproblem: A(x) =Ja. 2. Optimeringsproblem: A(x) =m Vanligen max/min. 3. Konstruktionsproblem: A(x) =En struktur. Vanligen lösningen till problemet. Några reduktioner: Lösningen till beslutsproblem ger ofta lösningen till motsvarande optimeringsoch konstruktionsproblem. Ex: KLICK Indata: Graf G och ett tal K. Problem: Finns det en klick av storlek K i G? (Klick = Komplett delgraf.) KLICK är ett svårt (NP-fullständigt) problem. Motsvarande optimeringsproblem: MAX-KLICK Indata: Graf G. Problem: Vad är storleken på en maximal klick i G? Motsvarande konstruktionsproblem: KONSTRUERA-MAX-KLICK Indata: Graf G. Problem: Hitta en klick av maximal storlek i G. Antag att KLICK har en lösningsalgoritm A(G, k) så att A(G, k) =Ja om och endast om G harenklickavstorlekk. MAX-KLICK har lösningsalgoritmen B(G): (1) for k to n (2) if A(G, k) =Ja (3) m k (4) return m KONSTRUERA-MAX-KLICK har lösningsalgoritm C(G): (1) m B(G) (2) S V (3) foreach v V (4) if B(G(S {v})) = m (5) S S {v} (6) return S

Turingreduktioner En turingreduktion Q T till en algoritm för Q : Q är en algoritm som löser Q med hjälp av anrop Q(x) (1).. (2) Q (z) (3). (4) return svar Turingreduktionen är liberalare än karpreduktionen; Q behöver t.ex. inte vara ett beslutsproblem. Om Q är NP-fullständigt och Q T Q säger vi ändå att Q är NP-svårt. Några reduktioner Två problem: OBEROENDE MÄNGD, HÖRNTÄCKNING Oberoende mängd: Mängd noder utan kanter mellan dem. Hörntäckning: Urval av noder som täcker in varje kant. OBEROENDE MÄNGD Indata: Graf G, talk. Problem: Finns det oberoende mängd av storlek K? HÖRNTÄCKNING Indata: Graf G, talk. Problem: Finns hörntäckning av storlek K? Observation: Om A V är en oberoende mängd så är V A en hörntäckning och omvänt. Givet instans x = G, K till OBEROENDE MÄNGD skapas R(x) =G, V K till HÖRNTÄCKNING. Detta ger en reduktion OBEROENDE MÄNGD P HÖRNTÄCKNING Två andra problem: HANDELSRESANDEPROBLEMET(TSP), HAMILTON- KRETS TSP Indata: Viktad komplett graf G och ett tal K. Problem: Finns det Hamiltonkrets med vikt K? (Hamiltonkrets = Krets som besöker varje nod exakt en gång.) HAMILTONKRETS Indata: Graf G. Problem: Finns det en Hamiltonkrets? Givet indata x = G till HK skapas komplett graf G med w(e) =1om e G och w(e) =0om e/ G. Sätt sedan K = V. Det ger en korrekt reduktion. Problem: För att visa att A är NP-fullständigt måste man visa att X P A för alla X NP. Hur är det möjligt?

Första NP-fullständiga problemet SAT är följande problem: Givet en logisk formel Φ, finns det någon variabeltilldelning som gör den sann? Sats (Cook 1971). SAT är NP-fullständigt. (I samma artikel som klassen NP definierades för första gången bevisades denna sats.) Bevisskiss: Varje NP-problem motsvarar en icke-deterministisk algoritm A. Problemet är att avgöra om, givet indata x, det finns en beräkning som ger A(x) =Ja. Cook visade att man kan konstruera en logisk formel F så att A(x) har accepterande beräkning F är satisfierbar. För att visa att A är NP-fullständigt räcker det att visa att SAT P A. Varför: Om X NP gäller X SAT. OmSAT A också gäller får vi X A! Praktiskt tillvägagångssätt: Bilda riktad graf där A B betyder A B. SAT A B C... betyder då att A, B, C,... är NP-fullständiga. För att visa att A är NP-fullständigt räcker det att hitta ett NP-fullständigt problem B så att B A. Några varianter på SAT: SAT: Formeln får innehålla operatorerna,,,,. CNF-SAT: Formeln måste vara på konjunktiv normalform d.v.s. bestå av över ett antal klausuler som bara innehåller och. k-cnf-sat: Formeln måste vara på CNF-SAT-form med exakt k literaler i varje klausul. Om NP-fullständighetsbevis Alla NP-fullständiga problem kan reduceras till varandra, men om man ska visa att ett problem är NP-fullständigt kan det ändå löna sig att utgå från rätt problem. I praktiken finns det ofta enkla reduktioner från något av 5 10 kanoniska NPfullständiga problem. Det enskilda vanligaste problemet att utgå från är 3-CNF-SAT. CNF-SAT är NP-fullständigt 1. CNF-SAT NP ty en lösning kan verifieras genom att kolla att varje klausul innehåller någon satisfierad literal. 2. Att CNF-SAT är NP-svårt ser man ur beviset för Cooks sats den SAT-formel som konstrueras kan lätt skrivas som en CNF-SAT-formel. Alternativt kan man ge en reduktion SAT P CNF-SAT.

CNF-SAT är NP-fullständigt 3-CNF-SAT är NP-fullständigt Att 3-CNF-SAT NP är klart. Vi ska reducera CNF-SAT till 3-CNF-SAT: Givet en CNF-SAT-formel Φ=c 1 c k bildar vi en ekvivalent 3-CNF-SATformel Φ 3 genom att ersätta varje klausul i Φ medenellerflera3-cnf-satklausuler. Antag att c i innehåller j literaler l 1,...l j. Klausuler som läggs till Φ 3 : j =3 l 1 l 2 l 3 j =2 (l 1 l 2 y i ) (l 1 l 2 y i ) j =1 (l 1 y i z i ) (l 1 y i z i ) (l 1 y i z i ) (l 1 y i z i ) j>3 (l 1 l 2 yi 1) ( y1 i l 3 yi 2) ( y 2 i l 4 y 3 i ) ( yj 3 i l j 1 l j ) Φ 3 är per konstruktion satisfierbar precis då Φ är satisfierbar. Några NP-fullständiga grafproblem Hamilton cycle Har grafen G en hamiltoncykel? (D.v.s. en sluten stig som passerar alla hörn exakt en gång.) Clique Innehåller grafen G en klick av storlek K? (En klick är en komplett delgraf.) Vertex cover Givet en graf G och ett tal K, går det att välja ut K hörn i G så att alla kanter innehåller minst ett av de K hörnen? Graph coloring Givet en graf G och ett heltal K, går det att färga hörnen i G med K färger så att ingen kant blir monokromatisk? Andra NP-fullständiga problem Exact cover Givet en uppsättning delmängder av en basmängd M. Går det att välja ut en mängd av delmängder så att varje element i M ligger i exakt en mängd? Subset sum Givet en mängd P av positiva tal och ett tal K. Finns det någon delmängd av talen i P vars summa är K? Integer programming Givet en m n-matrisa, en m-vektorb, en n-vektorc och ett tal K. Finns det en n-vektor x med heltal så att Ax b och c x K?

Om man i sista exemplet släpper kravet att komponenterna i x är heltal blir problemet (linjärprogrammering) polynomiskt lösbart. Ytterligare NP-fullständiga problem Bin packing Givet en mängd vikter och k lådor som var och en klarar högst vikt B. Går det att lagra vikterna i lådorna? Knapsack Givet en mängd S med element som har vikter w och värde v definierade. Går det att hitta en delmängd S så att summan av vikterna W och summan av värdena B? TSP Handelsresandeproblemet. Reduktioner för de flesta av dessa problem finns beskrivna CLR 36.4-36.5. Delgrafsisomorfi är NP-fullständigt Givet två oriktade grafer G 1 och G 2,ärG 1 en delgraf till G 2? Problemet tillhör uppenbarligen NP. Bevis för att problemet är NP-svårt: Reducera från Hamilton Cycle. En graf G =(V,E) innehåller nämligen en hamiltoncykel om och endast om den innehåller en delgraf som är isomorf med cykeln C V som har lika många noder som G. Partition är NP-fullständigt Givet en mängd S av positiva tal. Kan S delas upp i två disjunkta delar S 1 och S 2 så att x S 1 x = x S 2 x? Problemet ligger i NP ty givet en disjunkt uppdelning går det snabbt att kolla om den uppfyller villkoren. Vi reducerar från Subset sum: En instans där är tal p 1,p 2,...,p n och K; ur instansen skapar vi partitionsinstansen p 1,p 2,...p n,p 2K (där P = p i )omk P/2 och p 1,p 2,...p n, 2K P annars. En jämn partitionering av denna instans finns precis då Subset suminstansen är lösbar. 0/1-programmering är NP-fullständigt

Givet en m n-matris A och en m-vektor b. Finns det en n-vektor x med heltal {0, 1} så att Ax b? Problemet tillhör NP ty givet en lösning x tar det O(n 2 ) tid att kolla att Ax b. För att bevisa att problemet är NP-svårt reducerar vi 3-CNF-SAT till det: En instans av 3-CNF-SAT är en formel Φ över n variabler. Till x i i Φ låter vi svara y i {0, 1} där 1 är sant och 0 falskt. För varje klausul c j = l 1 l 2 l 3 inför vi en olikhet T (l 1 )+T (l 2 )+T (l 3 ) 1 där T (x i )=y i och T ( x i )=(1 y i ). 0/1-programmering, forts. Exempel: Klausulen x 1 x 2 x 3 ger olikheten y 1 +(1 y 2 )+y 3 1. Tolkning: Vänsterledet är sant (d.v.s. minst 1) om minst en av literalerna är sann (d.v.s. har värdet 1). Formeln Φ omvandlas alltså till en uppsättning linjära olikheter som kan uppfyllas om och endast om Φ är satisfierbar. 0/1-programmering är NP-fullständigt. (Ofta vill man i tillämpningar maximera c x givet att Ax b där x är en {0, 1}-vektor. Det är också NP-svårt.)