(On)Doenlijke problemen

Vergelijkbare documenten
Fundamentele Informatica

TW2020 Optimalisering

Tentamen IN3105. Complexiteitstheorie. 16 april 2012, uur

Tentamen IN3105 Complexiteitstheorie

Hoofdstuk 17: Approximation Algorithms

Elfde college complexiteit. 23 april NP-volledigheid III

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

1 Complexiteit. of benadering en snel

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Benaderingsalgoritmen

TW2020 Optimalisering

Tentamen TI3300 / IN3105 Complexiteitstheorie

TW2020 Optimalisering

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek

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

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

Hoofdstuk 8: Algoritmen en Complexiteit

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

Tentamen combinatorische optimalisatie Tijd:

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

NP-volledigheid. Algoritmiek

Netwerkstroming. Algoritmiek

Netwerkstroming. Algoritmiek

Hoofdstuk 13: Integer Lineair Programmeren

l e x e voor alle e E

TW2020 Optimalisering

Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra

Samenvatting college 1-12

TW2020 Optimalisering

Derde college complexiteit. 7 februari Zoeken

Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra

Heuristieken en benaderingsalgoritmen. Algoritmiek

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Achtste college complexiteit. 2 april Polynoomevaluatie Matrixvermenigvuldiging Euler- en Hamiltonkringen

Vierde college algoritmiek. 23/24 februari Complexiteit en Brute Force

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007

Oefententamen in2505-i Algoritmiek

Stelling. SAT is NP-compleet.

Achtste college algoritmiek. 12 april Verdeel en Heers. Dynamisch Programmeren

Tiende college algoritmiek. 26 april Gretige algoritmen

Minimum Opspannende Bomen. Algoritmiek

Tiende college algoritmiek. 14 april Gretige algoritmen

Fundamentele Informatica IN 3005 Deel 2

Op zoek naar de Hamilton cykel. Mike Hoffmeister

Achtste college algoritmiek. 8 april Dynamisch Programmeren

Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag 11 Januari 2013

Algoritmen, Datastructuren en Complexiteit ( en ) Uitwerkingen

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort

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

Algoritmiek. 2 februari Introductie

Credit cards, computationele complexiteit en consistentie uitspraken

Programmeermethoden. Recursie. week 11: november kosterswa/pm/

Tiende college algoritmiek. 4 mei Gretige Algoritmen Algoritme van Dijkstra

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

Kortste Paden. Algoritmiek

TW2020 Optimalisering

TW2020 Optimalisering

Automaten & Complexiteit (X )

Onderwerpen Fundamentele Informatica IN 3120

Algoritmen en programmeren: deel 1 - overzicht

8. Complexiteit van algoritmen:

TW2020 Optimalisering

Minimum Spanning Tree

Het Chinese Postbode Probleem. Marene Dimmendaal s

Vierde college complexiteit. 16 februari Beslissingsbomen en selectie

8C080 deel BioModeling en bioinformatica

Examen Datastructuren en Algoritmen II

Derde college algoritmiek. 22 februari Complexiteit Toestand-actie-ruimte

Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/

Datastructuren. Analyse van algoritmen. José Lagerberg. FNWI, UvA. José Lagerberg (FNWI, UvA) Datastructuren 1 / 46

Kortste Paden. Algoritmiek

Dynamisch Programmeren III. Algoritmiek

Vierde college complexiteit. 14 februari Beslissingsbomen

Datastructuren en Algoritmen

2WO12: Optimalisering in Netwerken

Automaten. Informatica, UvA. Yde Venema

2WO12: Optimalisering in Netwerken

Complexiteit van berekeningen

Derde college algoritmiek. 23 februari Complexiteit Toestand-actie-ruimte

Hoorcollege Logica. Hans-Dieter A. Hiep

Gerichte Grafen Boolese Algebra s &. Logische Netwerken

Inleiding Programmeren 2

REEKS II. Zaterdag 6 november 2010, 11u

Datastructuren en algoritmen voor CKI

Uitgebreide uitwerking Tentamen Complexiteit, juni 2017

Uitgebreide uitwerking Tentamen Complexiteit, juni 2018

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

Greedy algoritmes. Algoritmiek

Tiende college algoritmiek. 14 april Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS

Oefententamen in2505-i Algoritmiek

MMI. The Digital World 4. Peter van Kranenburg

Optimalisering en Complexiteit, College 1. Han Hoogeveen, Utrecht University

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen

Tweede college complexiteit. 12 februari Wiskundige achtergrond

Zevende college algoritmiek. 24 maart Verdeel en Heers

2 Recurrente betrekkingen

Inleiding Programmeren 2

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

Honours projecten BSc Informatica: twee voorstellen

Transcriptie:

Fundamentele Informatica In3 005 Deel 2 College 1 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit Informatie Technologie en Systemen Overzicht Inleiding - Relatie Deel 1 en Deel 2 - Doenlijke en Ondoenlijke problemen - P versus NP - Inhoud Deel 2 Intro Complexiteitsthorie - Complexiteit van programma s en problemen - Beslissingsproblemen - Karp reducties Relatie Deel 1 en Deel 2 (On)Doenlijke problemen Deel 1 Alle problemen Berekenbare problemen Doenlijke problemen Een probleem is doenlijk als het in polynomiale tijd op te lossen is (polynomiaal in de grootte van de invoer); Doenlijke problemen Deel 2 P : klasse van polynomiaal oplosbare problemen Ondoenlijke problemen Een probleem is ondoenlijk als er geen polynomiaal algoritme voor het probleem bestaat. waarom onderscheid: kijk naar volgende tabel

Tijdcomplexiteits functies Doenlijk (P) vss ondoenlijk tijd complexiteit O(n) O(n 2 ) O(n 3 ) O(2 n ) O(n!) omvang grootste instantie oplosbaar in t tijdseenheden n 1 n 2 n 3 n 4 n 5 huidig systeem 10x sneller systeem 10 n 1 3.16 n 2 2.15 n 3 n 4 + 3.32 < n 5 +1 1000 x sneller systeem 1000 n 1 31.6 n 2 10 n 3 n 4 + 9.97 < n 5 +1 voor ondoenlijke problemen is (constante) technologische speed-up van beperkt belang: Stel probleem heeft tijdcomplexiteit 2 n en speed up is c. Als een instantie ter grootte van m in een bepaalde hoeveelheid tijd kan worden opgelost, dan kan na de speed-up in dezelfde tijd een instantie ter grootte van < m + 2 log c opgelost worden. voor doenlijke problemen is speed-up van belang: Stel probleem heeft tijdcomplexiteit n k en speed up is c. Als een instantie ter grootte van m in een bepaalde hoeveelheid tijd kan worden opgelost, dan kan na de speed up in dezelfde tijd een instantie ter grootte van c 1/k.m opgelost worden. Voorbeelden (on)doenlijke problemen P en NP problemen in P sorteren, lineair programmeren, kortste pad bepaling vermoedelijk ondoenlijke problemen langste pad bepaling, prop. vervulbaarheid ondoenlijke problemen bepalen van alle diagnoses in digitale circuits. Eigenschap P-probleem oplossing in polynomiale tijd te construeren. oplossing in polynomiale tijd te verifiëren. Eigenschap NP-probleem (vermoedelijk ondoenlijk) niet bekend of oplossing in polynomiale tijd is te construeren. oplossing in polynomiale tijd te verifiëren. NP = niet-deterministisch polynomiale (tijd)

Vb NP-probleem instantie van freq. toewijzing Frequentietoewijzing Gegeven: - een k-tal verschillende frequenties f 1,, f k, - een n-tal locaties l 1,l 2,, l n van mobiele telefoons, met gegeven onderlinge afstanden d ij > 0; - een kritieke afstand D > 0. Vraag: - is er een toekenning T van frequenties aan locaties zodanig dat voor ieder tweetal locaties l i en l j met d ij D geldt: T(l i ) T(l j ). D = 4 frequenties k = 6 n =16 instantie van freq. toewijzing Centraal probleem: : P = NP? D geen polynomiale constructie: best bekende algoritme kost O(k n )-tijd oplossing te verifieren in O(n 2 )-tijd frequenties k P = NP? Voor NP problemen zijn tot nu toe alleen exponentiële algoritmen bekend; we weten niet of geldt dat P = NP of P NP. Belang: NP bevat groot aantal belangrijke problemen satisfiability van boolese formules padproblemen in grafen (TSP, Hamiltoons pad) cover problemen: set en vertex cover. rooster en schedulings problemen.

Inhoud colleges Deel 2 Literatuur en studiemateriaal inleiding complexiteitstheorie - reducties, complexiteitsklassen doenlijk vss ondoenlijk: P versus NP - NP-complete problemen, voorbij NP praktische aspecten van NP-problemen - pseudopolynomiale algoritmen - heuristieken bijzondere onderwerpen - quantum computing - zero-knowledge proof systems Literatuur B.M. Moret, The Theory of Computation Hfst 6 + 7 + 8 + 9 aanvullende informatie zie blackboard course IN3005 voor Practicum college overzichten; tentamens en uitwerkingen; voorbeelden twee opgaven: correctheidsbewijs van een gegeven reductie ontwerpen van een reductie + correctheidsbewijs Practicum en tentamen Overzicht practicum twee opgaven: opgaven correctheidsbewijs van een gegeven reductie ontwerpen van een reductie + correctheidsbewijs groepsindeling zoals voor deel 1 afronden voor einde kwartaal 3 opgave 2 wordt verstrekt na voltooiing opgave 1 correctie: assistenten Roman van der Krogt en Maja van der Werf (dinsdag 13.00-16.30 uur) tentamen meerkeuzevragen (±10 ) + open vragen (1 tot 2) Inleiding - Relatie Deel 1 en Deel 2 - Doenlijke en Ondoenlijke problemen - P versus NP - Inhoud Deel 2 Intro Complexiteitsthorie - Complexiteit van programma s en problemen - Beslissingsproblemen - Karp reducties

Complexiteit programma s Complexiteit programma s fibonacci functie fib(n) = 1 als n = 0, 1 fib(n-1) + fib(n-2) elders fib(n) = 1 als n = 0, 1 fib(n-1) + fib(n-2) elders programma 1 O(2 n ) procedure fibo1(n) begin if n < 2 then return 1 else return fibo(n-1)+fibo(n-2) end tijd complexiteit T(0) = 2; T(1) = 2; T(n) = 1 + T(n-1) + T(n-2) +1 voor n > 1 T(n) = O(2 n ) programma 2 procedure fibo2(n) begin O(n) programma 3 procedure fibo3(n) begin O(log n) a:= 1; b:=1; k:=1; while k < n do z:= a; a:= b; b:= z+b; k:= k+1; return b; if n < 2 then return 1 else M := mat([1,1],[1,0]); Z:= matpower(m,n-1); return Z(1,1)+Z(1,2); end end Complexiteit algoritmen versus problemen Complexiteit van probleem tijdcomplexiteit algoritme: aantal elementaire rekenstappen als functie van grootte van de input tijdcomplexiteit probleem tijdcomplexiteit algoritme voor probleem: vb fibonacci probleem: gegeven n 0, bepaal fib(n) tijdcomplexiteit algoritmen fibo1 : O(22^(log n) fibo2 : O(2 log n) ) fibo3 : O(log n) tijdcomplexiteit fibonacci probleem O(m) Nb: size input: m = O( log n) Complexiteit probleem maximale hoeveelheid tijd of ruimte die het beste algoritme voor oplossing van het probleem in het slechtste geval nodig heeft. Nb: complexiteit probleem doet uitspraak over complexiteit van alle algoritmen voor het probleem

Complexiteitstheorie Beslissingsproblemen (1) klassificatie van problemen naar maximale hoeveelheid tijd/ruimte die het beste algoritme voor oplossing van het probleem in het slechtste geval nodig heeft. beperking (voorlopig) tot beslissings problemen Definitie A is een beslissingsprobleem als alle instanties van A met ja ( yes ) of nee ( no ) beantwoord kunnen worden. Voorbeelden Satisfiability: Gegeven een propositionele formule F, is F vervulbaar? Clique: Gegeven een graaf G = (V, E) en een integer K > 0, heeft G een clique ter grootte van K? Beslissingsproblemen (2) Beslissingsproblemen: : vb Notatie D A verzameling van van alle alle instanties van van A I A instanties van van A Yes A No A alle alle yes-instanties alle alle no-instanties van van A van van A Vertex Cover (VC) - instantie: een graaf G = (V,E) en K Œ Z + - vraag: heeft G een vertex cover V Õ V ter grootte van K of minder, m.a.w. bestaat er een subset V ter grootte van hoogstens K zodat iedere kant e = {x,y} uit E tenminste een knoop uit V bevat? Traveling Sales Person (TSP) - instantie: een verzameling S van n steden, een intercity afstanden matrix D nxn met d ij Œ Z + en een integer B Œ Z + - vraag: bestaat er een tour langs alle steden met totale afstand B?

Beslissingsproblemen: reducties Eisen aan reductie Stel A en B beslissingsproblemen. A is niet essentieel moeilijker dan B ( A B ): er bestaat een efficiënte manier om A op te lossen met behulp van een algoritme voor B. idee reductie A naar B: fase 1: gebruik een polynomiaal algoritme om A instanties te transformeren naar B instanties; fase 2: gebruik een algoritme voor B om het antwoord te berekenen. reductie van A naar B moet efficient zijn (polynomiale tijd). reductie moet betrouwbaar zijn: dwz: als R transformatie is van A naar B dan moet gelden: als I A Œ Y A dan R(I A ) Œ Y B en als I A Œ N A dan R(I A ) Œ N B voor alle I A Œ D A : I A Œ Y A R(I A ) Œ Y B Karp-reducties reducties m Karp-reductie reductie: : vb A m B: voor alle I A Œ D A : I A Œ Y A R(I A ) Œ Y B R(Y A ) Y A N B A R Y B algoritme voor B yes B N B no R(N A ) algoritme voor A reductie van VERTEX COVER (VC) naar CLIQUE: input: G = ( V, E ), K Œ Z + ; output: yes alss VC ter grootte van K bestaat begin Laat G = ( V, E ) met V = V en E = { { v,w } v w Œ V, {v,w} œ E }; K = V - K return CLIQUE(G, K ) end Nb: CLIQUE is het algoritme voor het clique probleem; CLIQUE(G, K ) = yes alss G een clique ter grootte van K bevat anders no

Zo werkt de reductie Zo werkt de reductie G G vertex cover size 5 in G ( K ) clique size 3 in G ( V - K ) Hoe correctheid te bewijzen ga na dat transformatie polynomiaal is ga na dat yes-instanties van VC worden getransformeerd naar yes-instanties van CLIQUE ga na dat een getransformeerde yes-instantie van CLIQUE altijd afkomstig is van een oorspronkelijke yes-instantie van VC. Tot volgende week