Algoritmer, datastrukturer och komplexitet

Relevanta dokument
Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

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

Algoritmer, datastrukturer och komplexitet

NP-fullständighetsbevis

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 och Komplexitet ht 08. Övning 6. NP-problem

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

Föreläsning 8: Intro till Komplexitetsteori

Algoritmer, datastrukturer och komplexitet

Föreläsning 12+13: Approximationsalgoritmer

Algoritmer, datastrukturer och komplexitet

Komplexitetsklasser och repetition

Algoritmer, datastrukturer och komplexitet

Grundläggande logik och modellteori

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

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

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

PCP-satsen på kombinatoriskt manér

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

Grundläggande logik och modellteori

MA2047 Algebra och diskret matematik

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.

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

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

Grundläggande logik och modellteori (5DV102)

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

Algoritmer, datastrukturer och komplexitet

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

Algoritmer, datastrukturer och komplexitet

Modelltentamen. Ditt svar ska vara ett ändligt uttryck utan summationstecken.

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

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

Tentamen TMV210 Inledande Diskret Matematik, D1/DI2

Grundläggande logik och modellteori

DEL I. Matematiska Institutionen KTH

Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 11 april, 2002

n (log n) Division Analysera skolboksalgoritmen för division (trappdivision). Använd bitkostnad.

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

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

Uppgifter 6: Grafteori

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).

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

Efternamn förnamn ååmmdd kodnr

Grundläggande logik och modellteori (5DV102)

Föreläsningsanteckningar F6

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

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

Föreläsning 5: Grafer Del 1

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

Övningshäfte 6: 2. Alla formler är inte oberoende av varandra. Försök att härleda ett par av de formler du fann ur några av de övriga.

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

Diskret matematik: Övningstentamen 1

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

Lösningsförslag till tentamensskrivning i SF1610 Diskret Matematik för CINTE 30 maj 2018, kl

Tentamen TMV210/MMGD10 Inledande Diskret Matematik, D1/GU

K2 Något om modeller, kompakthetssatsen

Kompletteringsmaterial. K2 Något om modeller, kompakthetssatsen

Grupper och RSA-kryptering

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

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

Spanneröar och spannervägar

Lösningar till utvalda uppgifter i kapitel 5

Ekvationer och system av ekvationer

Talmängder. Målet med första föreläsningen:

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

Högstadiets matematiktävling 2016/17 Finaltävling 21 januari 2017 Lösningsförslag

Efternamn förnamn pnr årskurs

Moment Viktiga exempel Övningsuppgifter I Ö5.1b, Ö5.2b, Ö5.3b, Ö5.6, Ö5.7, Ö5.11a

DEL I. Matematiska Institutionen KTH

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.

Några satser ur talteorin

Kvalificeringstävling den 30 september 2008

Algoritmer, datastrukturer och komplexitet

Tentamen i EDAF05 Algoritmer, datastrukturer och komplexitet

Efternamn förnamn pnr kodnr

DD1350 Logik för dataloger

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium. v. 2.0, den 29/ III. Metalogik 17-19

Matematikcirkel Katedralskolan 4 december 2013 Gott och Blandat

TATM79: Föreläsning 1 Notation, ekvationer, polynom och olikheter

Lösning till tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610 och 5B1118, tisdagen den 7 januari 2014, kl

Formella metoder. Loop-program som statetransformers. Betrakta följande problem. specifikationen.

Moment 1.15, 2.1, 2.4 Viktiga exempel 2.2, 2.3, 2.4 Övningsuppgifter Ö2.2ab, Ö2.3. Polynomekvationer. p 2 (x) = x 7 +1.

En kedja av koder. Isak Lyckberg Peder Skrivares skola, Varberg. 23 april 2009

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

Undflyende delgrafer Några elementära bevis

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

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?

Algebra I, 1MA004. Lektionsplanering

Relativa, kriteriebaserade och målrelaterade betyg. Målrelaterade kriterier. Relationen betygskriterier lärandemål

x +y +z = 2 2x +y = 3 y +2z = 1 x = 1 + t y = 1 2t z = t 3x 2 + 3y 2 y = 0 y = x2 y 2.

Sats 2.1 (Kinesiska restsatsen) Låt n och m vara relativt prima heltal samt a och b två godtyckliga heltal. Då har ekvationssystemet

Diskret Matematik A för CVI 4p (svenska)

Transkript:

Algoritmer, datastrukturer och komplexitet Övning 8 Anton Grensjö grensjo@csc.kth.se 12 november 2015 Anton Grensjö ADK Övning 8 12 november 2015 1 / 21

Översikt Kursplanering Ö8: Mästarprov 1, oavgörbarhet F24: Cooks sats F25: NP-fullständighetsbevis F26: NP-reduktionsvisualisering Ö9: NP-fullständighetsbevis F27: NP-fullständighetsreduktioner F28: NP-fullständighetsreduktioner Ö10: NP-fullständighetsbevis Anton Grensjö ADK Övning 8 12 november 2015 2 / 21

Idag Idag Bevis av NP-fullständighet Labbteoriredovisning inför labb 4 Anton Grensjö ADK Övning 8 12 november 2015 3 / 21

Teori Teori Definitioner m.m. När vi talar om NP-fullständighet är det beslutsproblem vi har att göra med. En lösning till en probleminstans är en textsträng med vars hjälp vi kan bekräfta att instansen är en ja-instans. Exempel: Graffärgning. Problem: Existerar det en graffärgning med högst K färger? Lösning: En färgtilldelning av noderna. Vi kan enkelt verifiera lösningen genom att kolla om färgningen är giltig. Om den är giltig så måste probleminstansen vara en ja-instans. Ett problem tillhör NP om vi kan verifiera en lösning på polynomisk tid. Anton Grensjö ADK Övning 8 12 november 2015 4 / 21

Teori Teori Definitioner m.m. Om vi kan reducera ett problem A till ett problem B på polynomisk tid, så skriver vi A P B, och säger att B är minst lika svårt som A. Ett problem A är NP-svårt om varje problem i NP kan reduceras till A. Dvs om A är minst lika svårt som alla problem i NP. Ett problem är NP-fullständigt om det tillhör NP och är NP-svårt. Dvs: de NP-fullständiga problemen är de svåraste problemen i NP. Anton Grensjö ADK Övning 8 12 november 2015 5 / 21

Teori Uppgift 1: Vad säger reduktionerna? Uppgift: A, B, C, D och E är beslutsproblem. B är NP-fullständigt. Det finns polynomiska Karpreduktioner mellan problemen enligt diagrammet: Kom ihåg: A B C D E Avgör vilka problem som ligger i NP, vilka som är NP-svåra, samt vilka som är NP-fullständiga. Ett problem tillhör NP om det kan verifieras på polynomisk tid. Ett problem A är NP-svårt om varje problem i NP kan reduceras till A. Ett problem är NP-fullständigt om det ligger i NP och är NP-svårt. Anton Grensjö ADK Övning 8 12 november 2015 6 / 21

Bevis av NP-fullständighet Vad bör ingå i ett bevis? Säg att vi vill visa att problemet A är NP-fullständigt. Då bör vi utföra följande steg: 1. Visa att A NP. a) Föreslå vad en lösning kan vara. b) Visa att om svaret är ja så kan lösningen verifieras. c) Visa att verifikationen tar polynomisk tid. 2. Visa att A är NP-svårt. a) Hitta ett känt NP-fullständigt problem B att reducera. b) Hitta och beskriv en karp-reduktion av B till A. c) Bevisa att reduktionen är polynomisk. d) Bevisa att reduktionen är korrekt. i) Visa att ja-instanser mappas till ja-instanser och nej-instanser till nej-instanser. Vi vet sedan att B p A. 3. Nu har vi visat att A är NP-fullständigt! Anton Grensjö ADK Övning 8 12 november 2015 7 / 21

Uppgift 2: Frekvensallokering Vi har ett antal sändare, som alla ska ska sända på en viss frekvens. Varje sändare har en uppsättning tillåtna frekvenser. Vissa sändare är så nära varandra att de inte kan sända på samma frekvens utan att störa varandra. Vi vet alltså följande: Vilka sändare som finns. Varje sändares frekvensupsättning. Vilka par av sändare som skulle störa varandra om de sände på samma frekvens. Problemet är att avgöra om det finns något möjligt val av frekvenser så att ingen sändare stör en annan. Visa att problemet är NP-fullständigt. Formulera problemet som ett grafproblem Anton Grensjö ADK Övning 8 12 november 2015 8 / 21

Uppgift 2: Frekvensallokering Formulera problemet som ett grafproblem Låt hörn motsvara sändare Låt det gå en kant mellan sändare som riskerar att störa varandra Varje hörn är märkt med en frekvensuppsättning F i. Problemet: Går det att tilldela varje hörn v i en frekvens från F i så att inga närliggande hörn har samma frekvens? 1. Visa att Frekvensallokering ligger i NP. a) Låt en lösning vara en frekvenstilldelning till varje hörn. b) En lösning kan verifieras genom att Gå igenom varje hörn v i och verifiera att dess frekvens tillhör F i. Gå igenom varje kant (v, u) och verifiera att v och u har olika frekvenser. c) Verifieringen tar linjär tid i grafens storlek och är därmed polynomisk. Anton Grensjö ADK Övning 8 12 november 2015 9 / 21

Frekvensallokering 2. Visa att Frekvensallokering är NP-svårt. a) Vilket känt NP-fullständigt problem ska vi reducera? Graffärgning är lämpligt. b) 1: function K-FÄRGNING(G, k) 2: for varje hörn v i i grafen G do 3: F i {1,..., k} 4: return frekvensallokering(g, {F i }) c) Det enda reduktionen gör är att skapa en k-mängd för varje hörn i grafen. Uppenbart polynomiskt. d) Korrekthetsbevis, se nästa sida. När korrekthetsbeviset är slutfört kan vi dra slutsatsen att Frekvensallokering är NP-fullständigt. Anton Grensjö ADK Övning 8 12 november 2015 10 / 21

Frekvensallokering Korrekthet för reduktionen Säg att reduktionen omvandlar en instans s av k-färgning till en instans s av frekvensallokering. Vi vill visa att de båda instanserna ger samma svar, dvs: 1. Om s är en ja-instans av graffärgning så är s en ja-instans av frekvensallokering. 2. Om s är en ja-instans av frekvensallokering så är s en ja-instans av graffärgning. I vårt fall kan detta översättas till att vi vill visa: Det finns en k-färgning av grafen G Det finns en tillåten frekvenstilldelning till G där alla hörn har frekvensuppsättningen {1,..., k}. = : Antag att vi har en k-färgning av G. Numrera färgerna 1 till k. Om ett hörn fått färgen i, låt motsvarande sändare få frekvensen i. Detta blir en tillåten tilldelning, eftersom vi utgick från en tillåten k-färgning. =: Antag att vi har en tillåten frekvenstilldelning. Vi får en k-färgning genom att låta ett hörn få färg i om motsvarande sändare har fått frekvens i. Anton Grensjö ADK Övning 8 12 november 2015 11 / 21

Hamiltonsk stig i graf Visa att problemet HAMILTONIAN PATH är NP-fullständigt. Kom ihåg: En hamiltonsk stig är en stig som besöker varje hörn exakt en gång. 1. Visa att HAMILTONIAN PATH ligger i NP. Låt en lösning vara en sekvens av noder. Vi kan verifiera denna genom att kontrollera att närliggande noder har kanter mellan sig, samt att varje nod förekommer exakt en gång. Detta går uppenbart att göra på polynomisk tid. Anton Grensjö ADK Övning 8 12 november 2015 12 / 21

Uppgift 3: Hamiltonsk stig i graf 2. Visa att HAMILTONIAN PATH är NP-svårt. Vi väljer att reducera HAMILTONIAN CYCLE. Vi vill givet en graf G konstruera en graf G sådan att G har en hamiltoncykel om och endast om G har en hamiltonstig. Välj en nod u och kopiera den till en ny nod u med samma kanter. Lägg till två nya noder v, v som kopplas till varsin kopia. Antag att G har en hamiltoncykel. Då kan vi bilda en hamiltonstig i G genom att börja i v, följa cykeln till u och slutligen till v. Antag att G har en hamiltonstig. Måste ha ändpunkter i v och v. Om vi struntar i dessa har vi en stig från u till u. Om vi låter stigen gå till u istället för u har vi en hamiltoncykel i G. En konstruktion av detta slag kallas för en gadget. Anton Grensjö ADK Övning 8 12 november 2015 13 / 21

Uppgif 4: Spännande träd med begränsat gradtal Givet en oriktad graf G = (V, E) och ett heltal k, avgör ifall G innehåller ett spännande träd T så att varje hörn i trädet har gradtal högst k. Visa att problemet är NP-fullständigt. 1. Visa att spännande träd-problemet tillhör NP. Definiera en lösning som ett träd T som är en subgraf till G. Verifiera en lösning genom att kolla att det är ett träd, att alla noder är med, samt att varje gradtal är högst k. Detta görs enkelt på polynomisk tid. Anton Grensjö ADK Övning 8 12 november 2015 14 / 21

Uppgift 4: Spännande träd med begränsat gradtal 2. Visa att spännande träd-problemet är NP-svårt. Vi reducerar Hamiltonstig. Hur? 1: function HAMILTONSTIG(G) 2: return SPÄNNANDETRÄD(G, 2) Vill visa att G har en hamiltonstig G har ett spännande träd där alla noder har gradtal högst 2. = : Antag att G har en hamiltonstig. Men denna är ett träd, besöker alla noder och förgrenar sig inte. Är alltså ett spännande träd där alla noder har grad 2. =: Vi kan på liknande sätt se att ett spännande träd med alla noder av grad 2 måste vara en hamiltonstig. Anton Grensjö ADK Övning 8 12 november 2015 15 / 21

Uppgift 5: Polynomisk reduktion Konstruera en polynomisk reduktion av 3CNF-SAT till EQ-GF[2]. 3CNF-SAT: Vi har ett boolskt uttryck som t.ex. följande: ϕ(x 1, x 2, x 3, x 4 ) = (x 1 x 2 x 3 ) (x 2 x 3 x 4 ) (x 1 x 3 x 4 ) Finns det en variabeltilldelning så att uttrycket är satisfierat? EQ-GF[2]: Givet ett system av polynomekvationer över heltalen modulo 2, existerar det en lösning? Lösning: Vi börjar med ett enklare problem: Kan vi för en viss klausul från 3CNF-SAT hitta en polynomekvation mod 2 som är uppfylld om och endast om klausulen är satisfierad? Anton Grensjö ADK Övning 8 12 november 2015 16 / 21

Uppgift 5: Polynomisk reduktion Säg att vi har klausulen (x y z). Kan vi konstruera en ekvation som är uppfylld om och endast om klausulen är uppfylld? Låt sant motsvara 1 och falskt motsvara 0. Om vi räknar modulo 2 så är alltså x = 1 + x. Slutsats: klausulen är sann om och endast om: (1 + x)(1 + y)(1 + z) = 0 1 + x + y + z + xy + yz + xy + xyz = 0 x + y + z + xy + yz + xy + xyz = 1 Vad gör vi av negationer, som x? Ersätt med (1 + x). Vi kan alltså reducera 3CNF-SAT till EQ-GF[2] genom att enligt ovan konstruera en ekvation Q i för varje klausul C i, och bilda ekvationssystemet Q av alla Q i. Anton Grensjö ADK Övning 8 12 november 2015 17 / 21

Uppgift 5: Polynomisk reduktion Bevis Vi börjar med att notera att (1 + x) är inversen till x, ty 1 + 1 = 0 och 1 + 0 = 1, så vi kan utan inskränkning strunta i att behandla inverser. =: Antag att en ekvation Q i är satisfierbar. Då finns det en variabeltilldelning så att vänsterledet summeras till 1. Denna tilldelning gör enligt ovan så att minst en av literalerna i C i är sann. Klausulen är alltså satisfierbar. Om hela Q är satisfierbart så är hela ϕ satisfierbar. = : Om ϕ är satisfierad, så finns det en varabeltilldelning så att varje klausul är satisfierad. Men enligt resonemanget ovan så innebär det också att varje ekvation Q i är satisfierbar. Anton Grensjö ADK Övning 8 12 november 2015 18 / 21

Uppgift 6: Är en Eulergraf k-färgbar? Betrakta beslutsproblemet att givet en Eulergraf G och ett heltal k 3 avgöra om G är k-färgbar. Är detta NP-fullständigt? Ja. Ligger i NP, då det är enkelt att verifiera om en lösning är en korrekt färgning. För att visa NP-svårt så reducerar vi k-färgningsproblemet. Säg att vi har en graf G. Vi gör om den till en Eulergraf G enligt följande: Handskakningslemmat = det finns ett jämnt antal noder med udda valens. Para ihop dessa noder två och två. För varje par, inför ett nytt hörn, med en kant till vardera hörn i paret. Varför är G en Eulergraf? Modifikationerna påverkar inte antalet färger, varför inte? Anton Grensjö ADK Övning 8 12 november 2015 19 / 21

Uppgift 6: Är en Eulergraf k-färgbar? Visa G k-färgbar G k-färgbar. = : Antag f en färgning av G (varje hörn x får en färg f (x)). Definiera färgningen f av G : Om x G, f (x) = f (x) Om x / G så finns det två grannhörn y, z G. Låt f (x) vara en godtycklig färg som är skild från f (y) och f (z). =: Trivialt. Varför? Anton Grensjö ADK Övning 8 12 november 2015 20 / 21

Nästa gång Nästa gång Vi fortsätter med fler och svårare NP-fullständighetsbevis. Anton Grensjö ADK Övning 8 12 november 2015 21 / 21