Algoritmer, datastrukturer och komplexitet

Relevanta dokument
Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

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

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?

Föreläsning 12+13: Approximationsalgoritmer

Algoritmer, datastrukturer och komplexitet

Föreläsning 8: Intro till Komplexitetsteori

Algoritmer, datastrukturer och komplexitet

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

Komplexitetsklasser och repetition

Algoritmer, datastrukturer och komplexitet

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

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

Grundläggande logik och modellteori

Algoritmer, datastrukturer och komplexitet

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

NP-fullständighetsbevis

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

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

Föreläsningsanteckningar F6

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

Grundläggande logik och modellteori

DEL I. Matematiska Institutionen KTH

MA2047 Algebra och diskret matematik

PCP-satsen på kombinatoriskt manér

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

Algoritmer och datastrukturer H I HÅKAN S T R Ö M B E R G N I C K L A S B R A N D E F E L T

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

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

Dekomposition och dynamisk programmering

Föreläsning Datastrukturer (DAT036)

Programkonstruktion och Datastrukturer

Explorativ övning 9 RELATIONER OCH FUNKTIONER

Grafer. 1 Grafer. Grunder i matematik och logik (2015) 1.1 Oriktade grafer. Marco Kuhlmann

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.

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

Föreläsning Datastrukturer (DAT037)

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

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

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

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

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

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

Hjalpmedel: Inga hjalpmedel ar tillatna pa tentamensskrivningen. 1. (3p) Los ekvationen 13x + 18 = 13 i ringen Z 64.

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

Om plana och planära grafer

Grundläggande logik och modellteori (5DV102)

Föreläsning 1. Introduktion och sökning i graf. Vad är en algoritm?

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.

Tentamen Datastrukturer D DAT 035/INN960 (med mycket kortfattade lösningsförslag)

Grundläggande logik och modellteori

Föreläsning 7 Datastrukturer (DAT037)

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

Tentamen i EDAF05 Algoritmer, datastrukturer och komplexitet

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

Föreläsning 11. Giriga algoritmer

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

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

Föreläsning 6 Datastrukturer (DAT037)

Uppgifter 6: Grafteori

Undflyende delgrafer Några elementära bevis

I en matchning ligger varje hörn i högst en kant. I en stig ligger varje hörn i högst två kanter.

Asymptotisk komplexitetsanalys

Föreläsning 6: Introduktion av listor

Föreläsning 8 Datastrukturer (DAT037)

Om plana och planära grafer

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

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

Tentamen Datastrukturer för D2 DAT 035

729G04 - Diskret matematik. Lektion 4

Några svar till TDDC70/91 Datastrukturer och algoritmer

Algoritmer, datastrukturer och komplexitet

DEL I. Matematiska Institutionen KTH

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

Föreläsning 5: Grafer Del 1

Programmering II (ID1019) :00-11:00

Grundläggande logik och modellteori (5DV102)

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?

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

Grafer och grannmatriser

Föreläsning 2. Kortaste vägar i grafer.

Föreläsning 5: Dynamisk programmering

Föreläsning 8 Datastrukturer (DAT037)

Lösningsförslag för tentamen i Datastrukturer (DAT036) från

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

Tentamen Datastrukturer D DAT 035/INN960

K2 Något om modeller, kompakthetssatsen

Föreläsning 6 Datastrukturer (DAT037)

Föreläsning 4 Datastrukturer (DAT037)

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

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

Flöde i nätverk. Flöde i nätverk. Specialfall av minkostnadsflödesproblemet

Transkript:

Algoritmer, datastrukturer och komplexitet Övning 10 Anton Grensjö grensjo@csc.kth.se 18 november 2015 Anton Grensjö ADK Övning 10 18 november 2015 1 / 20

Översikt Kursplanering Ö9: NP-fullständighetsbevis F27: NP-fullständighetsreduktioner F28: NP-fullständighetsreduktioner Ö10: NP-fullständighetsbevis Bonusdatum labb 4 måndag 23/11 F29: Approximationsalgoritmer F30: Approximationsalgoritmer Ö11: Approximationsalgoritmer Anton Grensjö ADK Övning 10 18 november 2015 2 / 20

Idag Idag Fler bevis av NP-fullständighet Anton Grensjö ADK Övning 10 18 november 2015 3 / 20

Teori Repetition Definitioner 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 båda dessa villkor är uppfyllda. Anton Grensjö ADK Övning 10 18 november 2015 4 / 20

Teori 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 10 18 november 2015 5 / 20

Uppgift från förra övningen Uppgift 6 (övning 9): Ä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 10 18 november 2015 6 / 20

Uppgift från förra övningen 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 10 18 november 2015 7 / 20

Problem 1: Konstruera kappsäckslösning Kappsäcksproblemet: Uppgift: Beslutsproblem. Indata: Mängd P av föremål med vikt w i och värde v i. Kappsäcksstorlek S. Ett mål K. Fråga: Går det att välja ut föremål av sammanlagt värde minst K så att deras sammanlagda vikt är högst S? Detta är ett känt NP-fullständigt problem. Antag att vi har en algoritm A som löser beslutsproblemet. Konstruera en algoritm som löser det konstruktiva kappsäcksproblemet: Om svaret på A är ja, vilka föremål ska packas ned i kappsäcken? Vi får anropa A O( P ) gånger, men den ska i övrigt gå på polynomisk tid. Anton Grensjö ADK Övning 10 18 november 2015 8 / 20

Problem 1: Konstruera kappsäckslösning Idé: Använd beslutsproblemet för att avgöra om ett element behövs. Om det inte behövs, släng bort det. 1: function KAPPSÄCK(P, S, K) 2: if A(P, S, K) then return Ingen lösning 3: for varje föremål p P do 4: if A(P {p}, S, K) then P P {p} 5: return P Korrekthet P innehåller inga överflödiga element, ty for-slingan löper över alla element i P och tar bort de som är överflödiga. P innehåller en lösning, ty detta är dels uppfyllt innan slingan, och dels efter varje iteration. Anton Grensjö ADK Övning 10 18 november 2015 9 / 20

Problem 2: Tillförlitlighet hos internet Bakgrund: Datorer och förbindelser mellan datorer går ofta sönder. Därför vill man att det ska finnas flera alternativa vägar mellan varje par av datorer på internet. T.ex: Om det finns tre olika disjunkta vägar (med avseende på hörn) mellan dator A och B så kan två datorer (vilka som helst) försvinna, utan att förbindelsen mellan A och B försvinner. Anton Grensjö ADK Övning 10 18 november 2015 10 / 20

Problem 2: Tillförlitlighet hos internet Problemet: Se internet som en oriktad graf. Hörn: datorer. Kant från X till Y: en möjlig direktförbindelse mellan X och Y. För varje par av datorer (X, Y) har vi en önskad tillförlitlighet T(X, Y), som säger hur många disjunkta vägar det ska finnas i internet mellan X och Y. Vi har en budget B, som säger hur många direktförbindelser vi har råd att skapa. Frågan: Kan vi plocka ut en delgraf bestående av B kanter, så att det för alla par av hörn (X, Y) finns minst T(X, Y) disjunkta stigar i delgrafen mellan X och Y? Visa att detta problem är NP-fullständigt! Anton Grensjö ADK Övning 10 18 november 2015 11 / 20

Problem 2: Tillförlitlighet hos internet Beslutsproblem: Givet grafen G, går det att plocka ut en delgraf G bestående av exakt B kanter så att det för alla par av hörn (X, Y) finns minst T(X, Y) disjunkta stigar i G mellan X och Y? Visa att problemet ligger i NP. Lösning? En delgraf G enligt ovan. Tillsammans med, för varje par (X, Y) av noder, en lista över minst T(X, Y) disjunkta stigar. Kan på polynomisk tid verifiera genom att a) Kontrollera att G är en delgraf till grafen. b) Kontrollera att G har exakt B kanter. c) Kontrollera för varje par av hörn att det krävta antalet disjunkta stigar finns specifierade, är korrekta och disjunkta. Anton Grensjö ADK Övning 10 18 november 2015 12 / 20

Problem 2: Tillförlitlighet hos Internet Visa att problemet är NP-svårt. Vilket problem ska vi reducera? Hamiltonsk cykel fungerar fint. 1: function HAMCYCLE(G = (V, E)) 2: B V 3: T(X, Y) 2, X, Y V 4: return INTERNETBESLUT(G, T, B) Reduktionens tidskomplexitet O( V 2 ), polynomiskt i indatastorlek. Korrekthet? Anton Grensjö ADK Övning 10 18 november 2015 13 / 20

Problem 2: Tillförlitlighet hos internet Korrekthet: Antag att vi har en ja-instans s av hamiltonsk cykel, dvs det finns en hamiltoncykel i G. Vi ska då visa att vår konstruerade instans s av INTERNETBESLUT också är en ja-instans. Notera att om vi väljer ut delgrafen G = (V, E ), där E precis innehåller kanterna i hamiltoncykeln, så är det en lösning till INTERNETBESLUT. Varför? Antag att vår konstruerade instans s av INTERNETBESLUT är en ja-instans. Vi vill visa att det existerar en hamiltoncykel i G. Välj två godtyckliga noder X, Y V. Det existerar två disjunkta stigar mellan dem. Unionen av dessa stigar är en hamiltoncykel. Varför? Problemet är således NP-fullständigt. Anton Grensjö ADK Övning 10 18 november 2015 14 / 20

Problem 3: Håstads leksaksaffär Håstads leksaksaffär säljer ett pussel som består av en låda och ett antal kort (se figur). Kort kan placeras i lådan på två sätt, med framsidan upp eller med baksidan upp, eftersom det finns urgröpningar i korten som måste passa in i lister som sitter i lådan. På varje kort finns två kolumner med hål, men vissa av hålen är igenfyllda. Målet med pusslet är att lägga korten i lådan på ett sånt sätt att hela botten täcks; för varje hålposition måste alltså åtminstone ett av korten ha ett igenfyllt hål. Bevisa att följande språk är NP-fullständigt: TOYS = { c 1, c 2,..., c n : (c i beskriver kort) (det går att lösa pusslet)} Anton Grensjö ADK Övning 10 18 november 2015 15 / 20

Håstads leksaksaffär Visa ligger i NP. Visa NP-svårt. Vilket problem ska vi reducera? Vi kan försöka med CNF-SAT. Givet en CNF-formel ϕ = (l 1 l 2 l i) (l j l k) ( ) med n variabler och m klausuler, vill vi konstruera en en instans γ av LEKSAKER, som är satisfierbar om och endast om γ är lösbar. Anton Grensjö ADK Övning 10 18 november 2015 16 / 20

Håstads leksaksaffär Reduktionen Vi reducerar problemet enligt följande: 1) Varje variabel x i motsvarar ett kort c i. 2) Det finns två kolumner med m positioner på varje kort, dvs en rad för varje klausul. 3) Om x i finns med i klausul j, så är det vänstra hålet på rad j i c i förtäckt. 4) Om x i finns med i klausul j, så är det högra hålet på rad j i c i förtäckt. 5) Alla andra positioner har hål. 6) Det finns ett extra magiskt kort c n+1 med hål endast i den vänstra kolumnen. Antag att ϕ är satisfierbar. Då löser vi vårt specialfall γ av LEKSAKER genom att låta extrakortet ligga rätt väg, låta c i ligga rätt väg om x i = 1, men vända på c i om x i. Alla hål täcks eftersom varje klausul är satisfierad. Omvänt, om γ är löst, välj x i = 1 om c i ligger rätt väg, x i = 0 om c i ligger fel väg. OBS: Vad gör vi om extrakortet är vänt? Anton Grensjö ADK Övning 10 18 november 2015 17 / 20

Uppgift 4: Processorschemaläggning Problemet: Vi har n stycken jobb, samt tillräckligt mänga processorer. Varje jobb tar en tidsenhet att göra. Det finns villkor på formen jobb i kan inte exekveras samtidigt som jobb j. Går det att schemalägga jobben på ett sådant sätt att alla jobb är klara efter 3 tidsenheter? Visa att problemet är NP-fullständigt! Visa ligger i NP. Visa NP-svårt. Vilket problem? 3-färgning! Anton Grensjö ADK Övning 10 18 november 2015 18 / 20

Uppgift 4: Processorschemaläggning Vi vill reducera 3-färgning till schemaläggningsproblemet. Låt hörnen i grafen motsvara jobb, samt låt en kant mellan två noter betyda att jobben ej får utföras samtidigt. Vi tolkar de tre färgerna som de tre tidsenheterna. Anropa schemaläggningsproblemet med detta indata och returnera svaret! Korrekthet: Om det finns en trefärgning, så finns det en tillåten schemaläggning. Om det för vår reducerade instans finns en tillåten schemaläggning så motsarar denna en tillåten trefärgning. Anton Grensjö ADK Övning 10 18 november 2015 19 / 20

Nästa gång Nästa gång Hur kan vi hantera NP-fullständiga problem i praktiken? Approximationsalgoritmer Mina slides ligger på kurshemsidan under Kursinnehåll/Övningsanteckningar. Anton Grensjö ADK Övning 10 18 november 2015 20 / 20