Algoritmer, datastrukturer och komplexitet

Relevanta dokument
Komplexitetsklasser och repetition

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

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: Intro till Komplexitetsteori

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

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

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

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

Föreläsning 12+13: Approximationsalgoritmer

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

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

Algoritmer, datastrukturer och komplexitet

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

Tentamen Datastrukturer (DAT037)

Grundläggande logik och modellteori

PCP-satsen på kombinatoriskt manér

Algoritmer, datastrukturer och komplexitet

Tentamen Datastrukturer, DAT037 (DAT036)

Tentamen Datastrukturer (DAT036)

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

Tentamen Datastrukturer (DAT036)

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

Tentamen i EDAF05 Algoritmer, datastrukturer och komplexitet

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

Dugga Datastrukturer (DAT036)

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

7, Diskreta strukturer

Bakgrund. Bakgrund. Bakgrund. Håkan Jonsson Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige

Grundläggande logik och modellteori

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

Teoretisk del. Facit Tentamen TDDC (6)

Tentamen Datastrukturer D DAT 035/INN960

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

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

Tentamen Datastrukturer D DAT 035/INN960

Tentamen Datastrukturer, DAT037 (DAT036)

Programkonstruktion och Datastrukturer

Algebra och talteori MMGL31. Repetition. Idag. Föreläsning 9 VT FLS och primtalstestning. Carmichaeltal. Rabin-Miller test.

Tentamen TMV210 Inledande Diskret Matematik, D1/DI2

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

DEL I. Matematiska Institutionen KTH

K2 Något om modeller, kompakthetssatsen

Tentamen Datastrukturer (DAT036)

Grundläggande logik och modellteori (5DV102)

Tentamen, Algoritmer och datastrukturer

Föreläsning 5: Kardinalitet. Funktioners tillväxt

Algebra och Diskret Matematik A (svenska)

Källkodning. Egenskaper hos koder. Några exempel

Kompletteringsmaterial. K2 Något om modeller, kompakthetssatsen

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

Tommy Färnqvist, IDA, Linköpings universitet

Moment Viktiga exempel Övningsuppgifter Ö , Ö1.25, Ö1.55, Ö1.59

PROV I MATEMATIK Automatateori och formella språk DV1 4p

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

D. x 2 + y 2 ; E. Stockholm ligger i Sverige; F. Månen är en gul ost; G. 3 2 = 6; H. x 2 + y 2 = r 2.

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

Föreläsning 5: Grafer Del 1

kl Tentaupplägg

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

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

Föreläsning Datastrukturer (DAT036)

Tentamen Datastrukturer (DAT036/DAT037/DIT960)

Algebra I, 1MA004. Lektionsplanering

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

1. (3p) Ett RSA-krypto har parametrarna n = 77 och e = 37. Dekryptera meddelandet 3, dvs bestäm D(3). 60 = = =

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

7, Diskreta strukturer

Sökning och sortering

Tentamen Datastrukturer för D2 DAT 035

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

Algoritmer, datastrukturer och komplexitet

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

Programmering II (ID1019) :00-11:00

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

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

Teoretisk del. Facit Tentamen TDDC kl (6) 1. (6p) "Snabba frågor" Alla svar motiveras väl.

Objektorienterad modellering och diskreta strukturer. 13. Problem. Sven Gestegård Robertz. Datavetenskap, LTH

Träd och koder. Anders Björner KTH

Tentamen: Programutveckling ht 2015

Föreläsning 11. Giriga algoritmer

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00

Dekomposition och dynamisk programmering

hur väl kursens lärandemål uppfylls Syften med betygskriterier Uppgift i grupper om fyra Betygskriterier är bra men kräver ny examination

Algoritmer och effektivitet. Föreläsning 5 Innehåll. Analys av algoritmer. Analys av algoritmer Tidskomplexitet. Algoritmer och effektivitet

Föreläsning 5 Innehåll

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

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska kunnas?

TDDI16 Datastrukturer och algoritmer. Algoritmanalys

Teoretisk del. Facit Tentamen TDDC (6)

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

Transkript:

Algoritmer, datastrukturer och komplexitet Övning 12 Anton Grensjö grensjo@csc.kth.se 10 december 2015 Anton Grensjö ADK Övning 12 10 december 2015 1 / 19

Idag Idag Komplexitetsklasser Blandade uppgifter från tentor och muntor Anton Grensjö ADK Övning 12 10 december 2015 2 / 19

Komplexitetsklasser Repetition Repetition P: mängden av problem som kan lösas på polynomisk tid. NP: mängden av problem vars ja-instanser kan verifieras på polynomisk tid. CO-NP: mängden av problem vars nej-instanser kan verifieras på polynomisk tid. Ett problem A CO-NP om komplementproblemet till A tillhör NP. Exempel: Finns det inte någon hamiltonsk cykel? EXPTIME: mängden av problem som kan lösas i exponentiell tid. PSPACE: mängden av problem som kan lösas med tillgång till polynomiskt mycket minne (oavsett tid). Anton Grensjö ADK Övning 12 10 december 2015 3 / 19

Komplexitetsklasser co-np-fullständighet Uppgift 1: co-np-fullständighet Modell av ett tekniskt diagnosproblem: Vi har någon form av system, där komponenttillstånd, systemtillstånd och omgivningstillstånd representeras av boolska variabler. Systemet representeras av en boolsk formel ϕ. Om systemet fungerar så kommer variablerna ha värden så att ϕ är sann. En komponent c representeras av en boolsk variabel x c (sant = fungerar, falskt = trasig). Vi vet att c är trasig om: när vi sätter in alla kända variabelvärden, samt x c sann, i ϕ, så är den resulterande formeln inte satisfierbar. Visa att det är co-np-fullständigt att avgöra ifall c är trasig. Anton Grensjö ADK Övning 12 10 december 2015 4 / 19

Komplexitetsklasser co-np-fullständighet Uppgift 1: co-np-fullständighet Tillhör co-np: Vi ska visa att vi i polynomisk tid kan verifiera en nej-instans, dvs att c inte är trasig. c är inte trasig det finns en variabeltilldelning som satisfierar ϕ där x c sann. Låt en sådan variabeltilldelning vara vår lösning. Trivialt att verifiera på polynomisk tid. Anton Grensjö ADK Övning 12 10 december 2015 5 / 19

Komplexitetsklasser co-np-fullständighet Uppgift 1: co-np-fullständigt co-np-svårt: Vilket co-np-fullständigt problem ska vi reducera? Vilka co-np-fullständiga problem känner vi till? Vi reducerar CO-SAT (problemet att avgöra ifall en given boolsk formel φ inte är satisfierbar). Reduktionen: Låt φ vara en instans av CO-SAT. Givet φ, konstruera ett system med den extra komponenten c, representerad av x c, och som definieras av ϕ = φ x c. Anropa nu en algoritm som löser vårt problem, med ϕ som indata. Om x c sätts till sann blir ϕ = φ, så problemet att avgöra ifall c är trasig är precis samma som att avgöra ifall φ inte är satisfierbar. Alltså är reduktionen korrekt. Problemet är alltså co-np-fullständigt. Anton Grensjö ADK Övning 12 10 december 2015 6 / 19

Komplexitetsklasser Komplexitetsklassrelation Uppgift 2: Komplexitetsklassrelation PSPACE: Komplexitetsklassen som består av alla språk för vilka det existerar en deterministisk turingmaskin som känner igen språket i polynomiskt minne. EXPTIME: Består av alla språk för vilka det existerar en deterministisk turingmaskin som känner igen språket i exponentiell tid. Visa att PSPACE EXPTIME. Anton Grensjö ADK Övning 12 10 december 2015 7 / 19

Komplexitetsklasser Komplexitetsklassrelation Uppgift 2: Komplexitetsklassrelation Visa att PSPACE EXPTIME. Betrakta en turingmaskin som löser ett problem med polynomiskt minne. Det finns ett tal k så att antalet använda rutor på bandet är O(n k ) (n indatastorlek). Om alfabetet består av tre tecken, så är antalet möjliga kombinationer 3 O(nk). Antalet möjliga platser för läs/skrivhuvudet är O(n k ). Totala antalet konfigurationer är alltså O(n k ) 3 O(nk), exponentiellt i n. Om man kommer tillbaka till samma konfiguration igen är man i en oändlig loop, så antalet konfigurationer är en övre gräns på antal steg som behövs för att lösa problemet. Varje problem som kan lösas med polynomiskt minne kan alltså lösas på exponentiell tid. Anton Grensjö ADK Övning 12 10 december 2015 8 / 19

Uppgift 1: Sant eller falskt? Är följande påståenden sanna eller falska? För varje deluppgift ger riktigt svar 1 poäng och ett övertygande bevisat riktigt svar 2 poäng, a) Problemet att avgöra ifall ett tal med n siffror är ett primtal ligger i komplexitetsklassen co-np. Problemet ligger i co-np om komplementproblemet ligger i NP. Komplementproblemet: avgör ifall ett tal med n siffror är sammansatt (dvs kan faktoriseras i minst två faktorer större än 1). Detta problem ligger i NP, eftersom en lösning (en faktorisering av talet) kan verifieras på polynomisk tid. Hur? Svar: sant! Anton Grensjö ADK Övning 12 10 december 2015 9 / 19

Uppgift 1: Sant eller falskt? Är följande påståenden sanna eller falska? För varje deluppgift ger riktigt svar 1 poäng och ett övertygande bevisat riktigt svar 2 poäng, b) Det finns en konstant c > 1 så att n 3 O(c log n ). Kom ihåg räkneregler för exponentialfunktionen och logaritmen! n 3 = 2 log n3 = 2 3 log n = ( 2 3) log n = 8 log n Dvs om c = 8 så är n 3 = c log n = n 3 Θ(c log n ). Dvs n 3 och c log n växer lika snabbt om c = 8. c log n måste växa snabbare om c > 8. Slutsats: Om c 8 så gäller n 3 O(c log n ). Svar: sant! Anton Grensjö ADK Övning 12 10 december 2015 10 / 19

Uppgift 1: Sant eller falskt? Är följande påståenden sanna eller falska? För varje deluppgift ger riktigt svar 1 poäng och ett övertygande bevisat riktigt svar 2 poäng, c) Binära träd implementerar man vanligen genom att införa två pekare i varje post (left och right). När man implementerar ternära träd (där varje nod har tre söner) går det inte att klara sig med mindre än tre pekare i varje post. Falskt! Varje nod kan innehålla en pekare till sitt första barn, samt sitt nästa syskon. Anton Grensjö ADK Övning 12 10 december 2015 11 / 19

Uppgift 2: Klädstrecket (Algoritmkonstruktion, betyg C) Viggo har hängt n stycken handdukar av olika storlek på ett klädsträck. Varje handduk har en startkoordinat v i och en slutkoordinat h i. Viggo vill säkra handdukarna med klädnypor. Det räcker med att varje handduk hålls på plats av en klädnypa. Överlappande handdukar kan dela på samma klädnypa. Indata: n, (v 1, h 1 ), (v 2, h 2 ),..., (v n, h n ). Konstruera en algoritm som så snabbt som möjligt beräknar var på sträcket man ska sätta nyporna, för att minimera antalet nypor som krävs. Motivera korrekthet och analysera med enhetskostnad. Anton Grensjö ADK Övning 12 10 december 2015 12 / 19

Uppgift 2: Klädstrecket Vilken typ av algoritm kan vara lämplig här? Vi försöker konstruera en girig algoritm. 1 Sortera alla par, dels med avseende på vänsterkanten och dels med avseende på högerkanten. Lagra resultaten i två listor, Vsort och Hsort. Håll under sorteringen reda på var varje post i den ena listan hamnar i den andra listan. 2 Så länge listan Hsort är icke-tom: 1 Ta det första återstående paret i Hsort, säg (v, h). Detta är den handduk i listan vars högerkant ligger längst till vänster. 2 Sätt en klädnypa längst till höger på denna handduk. 3 Ta bort alla par vars vänsterkant är till vänster om h (dvs ta bort alla handdukar som vår nya nypa sätter fast). Dvs ta bort par från början av Vsort. För varje par som tas bort, ta bort motsvarande par från Hsort. Tidskomplexitet? O(n log n) Anton Grensjö ADK Övning 12 10 december 2015 13 / 19

Uppgift 2: Klädsträcket Korrekthet: Vi plockar bara bort handdukar som redan har fått en klädnypa i sig = alla handdukar kommer sitta fast när algoritmen är klar. Visa att antalet klädnypor blir optimalt: Betrakta handduken med lägst högerkoordinat. Den måste sitta fast, men var ska vi placera klädnypan? Om man sätter fast den i punkten p så kommer alla handdukar med vänsterkant mindre än p att sitta fast. För att sätta fast så många handdukar som möjligt, vill vi alltså välja p så långt till höger som möjligt. Dvs det måste vara optimalt att sätta nypan i handdukens högerkant....upprepa argumentet för de övriga handdukarna... Anton Grensjö ADK Övning 12 10 december 2015 14 / 19

Uppgift 3: Grupprepresentanter Det finns många olika grupper av personer på KTH. komplexitet, betyg C Rektorn vill ha ett smidigt sätt att snabbt föra ut information till alla personer på KTH. Därför vill han skapa en grupp av informatörer, med följande krav: Varje grupp ska vara representerad. Informatörsgruppen ska vara så liten som möjligt. Problemet är alltså att givet en uppsättning grupper (ej nödvändigtvis disjunkta!) hitta en så liten skara av representanter som möjligt. Uppgift: Formulera problemet matematiskt som ett mängdproblem och beskriv det som ett beslutsproblem. Visa att beslutsproblemet är NP-fullständigt. Anton Grensjö ADK Övning 12 10 december 2015 15 / 19

Uppgift 3: Grupprepresentanter Matematisk formulering: Låt k vara ett positivt heltal. Låt S vara mängden personer. Låt C = {C 1,..., C m } vara de m grupperna. Problemet: Existerar det en delmängd S S med högst k element så att S C i för 1 i m? Ligger problemet i NP? Låt en lösning vara mängden S. Vi kan verifiera en lösning genom att: 1 Kolla att S k. 2 Kolla att S S. 3 Kolla att S C i för 1 i m. Detta kan uppenbarligen göras på polynomisk tid. Problemet ligger alltså i NP. Anton Grensjö ADK Övning 12 10 december 2015 16 / 19

Uppgift 3: Grupprepresentanter NP-svårt? Vilket problem ska vi reducera? Hörntäckning! Givet en instans G = (V, E) till hörntäckning, låt S = V och C = E. En hörntäckning av storlek k motsvarar precis en delmängd S S av storlek k som innehåller minst ett element från varje C i. Anton Grensjö ADK Övning 12 10 december 2015 17 / 19

Fler blandade uppgifter Det finns två uppgifter till i övningsanteckningarna, som vi går igenom om vi hinner. Anton Grensjö ADK Övning 12 10 december 2015 18 / 19

Slut Sista övningen Tack för den här kursen! Jag tar väldigt gärna emot feedback angående övningarna, så prata gärna med mig, eller skicka iväg ett mejl. Lycka till på mästarprovsredovisningarna och på tentan! Anton Grensjö ADK Övning 12 10 december 2015 19 / 19