NP-komplett, hva nå?

Like dokumenter
Kompleksitet og Beregnbarhet

INF oktober Stein Krogdahl. Altså: Hva kan ikke gjøres raskt (med mindre P = NP)

INF Stein Krogdahl. NB: Det som under forelesningen ble kalt et vitne er nå omdøpt til et sertifikat.

NP-kompletthet. «Hvordan gjøre noe lett for å vise at noe annet er vanskelig»

Heuristisk søk 1. Prinsipper og metoder

Kompleksitet. IN algoritmer og datastrukturer Plenumstime / repetisjon

Oversikt. Branch-and-bound. Hvordan løse NP-hard kombinatorisk optimering? Eks: Eksakt Min Vertex cover. Mulige løsninger representert som søketre

Kontinuasjonseksamen i tdt4125 Algoritmekonstruksjon, videregående kurs

LØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER (IT1105)

IN2010: Forelesning 11. Kombinatorisk søking Beregnbarhet og kompleksitet

INF3/4130 PRØVE-EKSAMEN MED SVARFORSLAG Gjennomgås 1/ , (lille aud.)

Kompleksitetsteori reduksjoner

Maks Flyt og NPkompletthet

Kontinuasjonseksamen i tdt4125 Algoritmekonstruksjon, videregående kurs

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

Oversikt. Heuristisk søk 1. Kombinatorisk optimering Lokalt søk og simulert størkning Populasjonsbasert søk. Prinsipper og metoder

INF2220: Time 8 og 9 - Kompleksitet, beregnbarhet og kombinatorisk søk

Avanserte flytalgoritmer

Løsningsforslag: Deloppgave om heuristiske søkemetoder ALGKON 2001, ordinær eksamen

Forelesning 23. Grafteori. Dag Normann april Oppsummering. Oppsummering. Oppsummering. Digresjon: Firefarveproblemet

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

MAT1030 Diskret matematikk

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Forelesning 23: Grafteori

MAT1030 Forelesning 24

Analyse av Algoritmer

Kjøretidsanalyse. Hogne Jørgensen

LP. Leksjon 9: Kapittel 13: Nettverk strøm problemer, forts.2

Søking i strenger. Prefiks-søking Naiv algoritme Knuth-Morris-Pratt-algoritmen Suffiks-søking Boyer-Moore-algoritmen Hash-basert Karp-Rabin-algoritmen

UNIVERSITETET I OSLO

INF2220: Time 12 - Sortering

Kontinuasjonseksamen i fag SIF8010 Algoritmer og Datastrukturer Torsdag 9. August 2001, kl

Introduksjon til Algoritmeanalyse

Korteste vei problemet (seksjon 15.3)

Avsluttende eksamen i TDT4125 Algoritmekonstruksjon, videregående kurs

Turingmaskiner.

Overview. Heuristic search 1. Target function and optimization. Minimum vertex cover

Notater til INF2220 Eksamen

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

PG4200 Algoritmer og datastrukturer forelesning 10. Lars Sydnes 21. november 2014

Stein Krogdahl, Dino Karabeg, Petter Kristiansen. Kenneth A. Berman and Jerome L. Paul.

Søk i tilstandsrom. Backtracking (Kap. 10) Branch-and-bound (Kap. 10) Iterativ fordypning. Dijkstras korteste sti-algoritme A*-søk (Kap.

Grafteori. MAT1030 Diskret Matematikk. Oppsummering. Oppsummering. Forelesning 24: Grafer og trær. Dag Normann

KORTESTE STI. Vektede Grafer. Korteste Sti. Dijkstra s Algoritme. Vektet Urettet Graf

Dynamisk programmering

INF oktober Dagens tema: Uavgjørbarhet. Neste uke: NP-kompletthet

Notat for oblig 2, INF3/4130 h07

Dynamisk programmering

LP. Leksjon 8: Kapittel 13: Nettverk strøm problemer, forts.1

UNIVERSITETET I OSLO. Med svar-forslag

Løsningsforslag til eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 14. Desember 1999, kl

NITH PG4200 Algoritmer og datastrukturer Løsningsforslag Eksamen 4.juni 2013

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Computational Geometry

Studentnummer: Side 1 av 1. Løsningsforslag, Eksamen i TDT4120 Algoritmer og datastrukturer August 2005

INF 4130 / / Dagens foiler hovedsakelig laget av Petter Kristiansen Foreleser Stein Krogdahl Obliger:

Løsningsforslag for eksamen i fag TDT4120 Algoritmer og datastrukturer Tirsdag 9. desember 2003, kl

Svarforslag til ukeoppgaver til INF 4130

Løsnings forslag i java In115, Våren 1998

Prioritetskøer. Prioritetskøer. Binære heaper (vanligst) Prioritetskøer

INF Algoritmer: Design og effektivitet

ALGORITMER OG DATASTRUKTURER

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Løsningsforslag for eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 18. Desember 2000, kl

Alle mot alle. Åttende forelesning. (eller eller Bellman-Ford, eller BFS, alt ettersom) fra alle noder.

MAT1140: Kort sammendrag av grafteorien

Grafalgoritmer: Korteste vei

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Heuristiske søkemetoder II

LP. Leksjon 7. Kapittel 13: Nettverk strøm problemer

Dynamisk programmering Undervises av Stein Krogdahl

IN Algoritmer og datastrukturer

Minimum spenntrær. Lars Vidar Magnusson Kapittel 23. Kruskal Prim

MAT1030 Diskret Matematikk

Forelesning 29: Kompleksitetsteori

INF2220: Forelesning 2

INF-MAT Geir Hasle - Leksjon 3 2

MAT1140: Kort sammendrag av grafteorien

INF Algoritmer og datastrukturer

Anvendelser av grafer

TMA4140 Diskret Matematikk Høst 2016

Disjunkte mengder ADT

Dagens stoff er hentet fra kapittel 9 i læreboka, samt kapittel 20.5 (som vi «hoppet over» sist)

Turingmaskiner en kortfattet introduksjon. Christian F Heide

To geometriske algoritmer, kap. 8.6

INF Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

PG4200 Algoritmer og datastrukturer Forelesning 12

INF Algoritmer og datastrukturer

Prioritetskøer. Binære heaper Venstrevridde heaper (Leftist) Binomialheaper Fibonacciheaper

INF Algoritmer og datastrukturer

ALGORITMER OG DATASTRUKTURER

INF Algoritmer og datastrukturer

Forelesning 30: Kompleksitetsteori

kap. 8.6 Computational Geometry Hovedkapittelet (kap. 8) dreier seg generelt om devide-and-conquer eller splitt og hersk :

Online datingtjeneste The Hungarian Algorithm

UNIVERSITETET I OSLO

Løsningsforslag: Deloppgave om heuristiske søkemetoder, ALGKON 2003, kontinuasjonseksamen

Eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 14. Desember 1999, kl

Transkript:

NP-komplett, hva nå? Anta vi har klart å vise at problemet vårt er NP-komplett eller NP-hardt. Hva betyr det? Såfremt P NP (de fleste tror det) har ikke problemet noen polynomisk algoritme. Hva skal vi gjøre? Vi trenger jo fortsatt en algoritme, vi kan ikke bruke NP-kompletthet som en unnskyldning for å gi opp. Vi må bruke litt andre teknikker og tenkemåter enn vi vanligvis gjør. Vi må slakke litt på kravene. Optimal løsning God nok løsning for alle instanser Noen instanser i polynomisk tid, worst case Gjennomsnittsanalyse

NP-komplett, hva nå?. Nøyaktige studier av eksponensialiteten - Fixed Paramter Tractability Hvilke instanser kan håndteres på «vanlig» måte?. Approximasjonsalgoritmer Godta en god nok løsning. 3. Gjennomsnittsanalyse Godta at ikke alle instanser løses i polynomisk tid. 4. Randomiserte algoritmer Godta at vi ikke et 0% sikre på løsningen (Monte Carlo), eller kjøretiden (Las Vegas). 5. Andre metoder, meta-heuristikker Simulated annealing, Genetiske algoritmer, etc. 6. Parallellisering (hjelper egentlig ikke )

Begrensning av instanser Det første vi bør gjøre når vi har vist at problemet vårt er NP-komplett, er å se om det kanskje er en naturlig begrensning på «våre» instanser. Grafene er kanskje planare? Det er kanskje et begrenset antall naboer? Tallene er kanskje aldri større enn 9999? etc Bak i Garey&Johnson står det en lang liste av NP-komplette problemer, og hvilke begrensninger som gjør at problemet fortsatt kan løses i polynomisk tid.

Fixed Parameter Tractability Feltet Parameterized Complexity (parametrisert kompleksitet) dreier seg om å studere hva det er ved et problem som gir eksponensialitet, for å forsøke å kontrollere denne når vi designer algoritmene. Ofte er det som gir eksponensialitet også begrenset i «våre» instanser. Vi måler her ikke lenger kompleksiteten kun i forhold til lengden av input. k-vertex COVER INSTANS: En graf G og et positivt heltall k. PARAMETER: k. QUESTION: Finnes et vertex cover C for G med C k? Nå kan vi snakke om kompleksiteten både i forhold til lengden av input og parameteren. Parameteren har ofte en naturlig begrens- ning, og vi ser på den som en konstant. Algoritme med kjøretid O(kn +.738 k ); takler n 0 5, k 50. g jø ( );, Exhaustive search har kjøretid O(n k * k ); takler ikke engang n00, k0.

Approksimering OPT (--------------- ----------------) ϵ OPT ϵ OPT Hvis P er et optimaliseringsproblem, sier vi at en algoritme A er en polynomisk tid ϵ-approksimasjon hvis: As kjøretid er polynomisk, og det finnes en konstant ϵ > 0 slik at A for alle instanser alltid gir en løsning med verdi innenfor et ϵ-intervall rundt den optimale løsningen. c( A( n)) - OPT Formelt betyr det at den relative feilen er mindre enn ϵ. OPT Vi gjør fortsatt worst case-analyse, vi forlanger bare ikke alltid HELT optimal løsning, vi godtar noe i nærheten.

Traveling Salesman [TSP] approksimasjon Triangelulikheten sier at c a + b for lengden av sidene i en trekant. (Hvis c > a + b, så blir det ikke noe triangel.) Vi kan anta denne ulikheten holder for avstander mellom byer. a c b AlgoritmeTSP- :. Finn et minste spenntre i grafen over byene.. Lag en rundreise ved å gå i treet på følgende måte Kostnaden av en slik rundtur kan ikke være mer enn OPT, ellers vil en optimal rundtur (OPT) minus en kant gi oss et spenntre som er mindre enn det minste spenntreet vi startet med. Vi har altså en ϵ-approksimasjon med ϵ.

Traveling Salesman [TSP] approksimasjon Teorem Uten triangeulikheten har ikke TSP noen ϵ-approksimasjon, med mindre P NP (og da er jo approksimasjon irrelevant). Bevis. Gitt ϵ lager vi en reduksjon fra HAMILTONICITY, som bare har en løsning i ϵ-intervallet rundt den optimale løsningen (OPT), nemlig den optimale løsningen selv. a b c d a b a +ϵn +ϵn d c b +ϵn +ϵn c +ϵn +ϵn d +ϵn +ϵn Kn4 Feilen ved å måtte bruke en ikke-kant (fra HAMILTONICITY-siden) er gitt ved Approksimert løsning - OPT (n + + ϵn) n ( + ϵ)n > ϵn. Derfor vil en ϵ-approksimasjon for TSP, sammen med reduksjonen, løse HAMILTONICITY i polynomisk tid.

VERTEX COVER approksimasjon, heuristikk Heuristikker brukes ofte når vi må løse umedgjørlige eller vanskelige (optimerings)problemer i praksis. Basert på tommelfingerregler. Heuristikker er forskjellige fra algoritmer ved at de ikke har noen garantier (ytelse/nøyaktighet). La oss se på to grådigheuristikker for VERTEX COVER-opt.: Heuristikk VC-H: Gjenta helt til alle kanter er dekket:.finn noden v med høyest grad og legg i vertex coveret;.fjern v(og dens kanter) fra grafen; Dette er dessverre ikke en ϵ-approksimasjon for noen fast ϵ. Teorem Heuristikk VC H er ikke en ϵ approksimasjon for VERTEX COVER opt Teorem Heuristikk VC-H er ikke en ϵ-approksimasjon for VERTEX COVER-opt for noen fast ϵ.

VERTEX COVER approksimasjon, heuristikk Bevis. Vi lager oss et moteksempel, som viser at heuristikken gjør det så dårlig vi vil. Lag en graf med noder a,..., a n and b,..., b n. Node b i kobles (kun) til node a i. En mengde c-noder kobles til a-nodene på følgende måte: Node c kobles til a and a ; node c kobles til a 3 og a 4, Node c n/+ kobles til a, a and a 3 ; node c n/+ kobles til a 4, a 5 and a 6, Node c m kobles til to a, a,..., a n. Node c m is kobles til alle a-noder.

VERTEX COVER approksimasjon, heuristikk Den optimale løsningen, OPT, er å plukke alle a-nodene, dette gir et vertex cover med n noder. Hva gjør VC-H? VC-H velger først alle c-nodene (med c m først), for å dekke opp c-a-kantene, før den før den velger a-noder eller b-noder for å dekke a-b-kantene. Antall c-noder er av orden n log n. Den relative feilen for VC-H på vårt moteksempel er altså VC H - OPT OPT ( nlogn + n) n nlogn log n n n ϵ Den relative feilen vokser som en funksjon av n, så vi kan få feilen så stor vi bare vil ved å øke n.

VERTEX COVER approksimasjon, heuristikk Heuristikk VC-H: Gjenta helt til alle kanter er dekket:.ta en kant e og legg begge endepunktene i vertex coveret;.fjern e og begge endepunktene fra grafen; (Det vi gjør er egentlig å finne en maksimal matching (grådig), og så legger vi alle de matchede nodene inn i vertex coveret.) Siden minst ett endepunkt av hver kant må ligge i vertex coveret, har vi at VC-H OPT. VC-H er altså en polynomisk-tid ϵ-approksimasjon for VERTEX COVER-opt med ϵ. Litt overraskende er denne naive algoritmen faktisk er beste (worst case) g ( ) approksimasjon av VERTEX COVER-opt.

Gjennomsnittsanalyse For å kunne snakke om gjennomsnitt og gjøre gjennomsnittsanalyser trenger vi å vite hvor sannsynlig instansene av et problem er. Problem (L, P r ) (Vi legger sannsynlighet på strengene i språket.) P r er en sannsynlighetsfunksjon over strengene i språket L: P r : Σ* [0,]. Σ xϵσ* P r (x). Gjennomsnittlig kjøretid for en algoritme A er gitt ved: T ( n ) TT ( x ) P ( x ) A A { x * x n } r Utfordringen er selvsagt å finne en realistisk sannsynlighetsmodell. Den naturlige løsningen (om man ikke vet noe spesielt) er å anta at alle instanser av lengde n har samme sannsynlighet (uniform distribusjon).

Stokastiske grafer (random graphs) Uniform modell G(n,N) Hver graf med n noder og N kanter er like sannsynlig. Med n noder og N kanter, så er P r ( G) # grafer n n n ( ) N N Binomial modell G(n,p) Hver mulige kant (i,j) j)ermedig i med sannsynlighet p. Sannsynligheten for at en kant er med avhenger ikke av om de andre kantene er med eller ei. Sannsynligheten for en graf G er her P ( G ) r p e( G ) ( p ) n e( G ) Når forventet antall kanter i binomial modell er lik antall kanter i uniform modell n er modellene så å si like, altså når p N.

Stokastiske grafer (random graphs) http://cs.gmu.edu/~astavrou/random.html / t / d http://www.macs.hw.ac.uk/~pdw/topology/networkr.html

GRAPH-3-COLORABILITY [G3C] I G3C er vi gitt en graf og skal avgjøre om det er mulig å fargelegge nodene i grafen med 3 farger, slik at ingen nabonoder får samme farge. Teorem: G3C, som er NP-komplett, er løsbart i gjennomsnittlig (forventet) konstant tid på binomial modell med p/ med en branch-and-bound- algoritme (worst case er fortsatt eksponensielt). Bevis: Strategien er å bruke den binomiale modellen for å beregne forventet tid det tar å finne et bevis for at grafen ikke er 3-fargbar. a b K 4 (en klikk [komplett graf] av størrelse 4) er et bevis for ikke-3-fargbarhet d c

GRAPH-3-COLORABILITY [G3C] Sannsynligheten for at 4 noder utgjør en K 4 er gitt ved ) ( 6 4 4 p K P Forventet antall firenodersmengder vi må sjekke før vi finner en K er 8 ) ( 6 4 p K P r Forventet antall firenodersmengder vi må sjekke før vi finner en K 4 er ) ( ) ( * 6 6 6 6 i i i i i i 8 ) ( )) ( ( 6 6 6 6 6 6 ( - -6 ) i- -6 er sannsynligheten for at den første K 4 blir funnet i forsøk i. ) ( q Δ Δ * Følger av ( ) ) ( q q q q q q iq i i i i Δ Δ Δ Δ I gjennomsnitt behøver vi altså bare sjekke 8 firenodersmengder før vi finner en K 4.

Stokastiske grafer (random graphs) Kantsannsynligheten lar vi ofte være en funksjon av antall noder n, f.eks pp(n) n, eller pp(n)5/n. Når vi ser på slike stokastiske grafer, ser vi at nesten alle er ikke 3-fargbare sammenhengende Hamiltonske Når en stokastisk graf enten har, eller ikke har, en egenskap når n går mot uendelig, kalles dette en 0--lov. (Formelt snakker vi om at grenseverdien til sannsynligheten for en gitt egenskap skal gå mot 0 eller.)

Hamiltonicity (Gurevich & Shelahs algoritme) Algoritme fra ca 987 som finner Hamiltonsk sti i G(n.p) i forventet lineær tid!! Vanskeligheten består i at sannsynligheten for at grafen ikke er Hamiltonsk er for stor til å neglisjeres, P( minst isolert node) n. Algoritmen har 3 faser: Fase : Prøver å bygge en hamiltonsk sti i linær tid, O(n). Feiler med sannsynlighet P (n). Fase : Finn bevis for ikke-hamiltonisitet, eller bygg sti I tid O(n ). Feiler med sannsynlighet P (n). Fase 3: Ehastiesearch Exhaustive search (dynamic programming) itido( n ). Feiler ikke. Forventet kjøretid er O(n) + O(n ) P (n) + O( n ) P (n) P (n), som er O(n) hvis O(n ) P (n) O(n) og O( n ) P (n) P (n) O(n)

Randomisering Når 99,999999999999999999% er sikkert nok Det er ikke sikkert kravet om 00% garantert optimal/rett løsning er fruktbart. Vi er igjen tilbake til worst case-analyse, analyse vi forlanger bare ikke 00% sikkerhet når det gjelder løsning eller kjøretid. Vi lager algoritmer som kaster mynt/kron, (genererer og bruker random bits til å ta avgjørelser.)

Randomisering I problemet POLYNOMIAL IDENTITY blir vi gitt to polynomer, og skal avgjøre om de er like (gir samme verdi for alle mulige tilordninger til variablene). POLYNOMIAL NON-IDENTITY er å avgjøre om to polynomer er ulike. ( x + y )?? x + xy + y x + y Rask randomisert algoritme (Monte Carlo- algoritme): Gjett verdier for x og y, og beregn Venstre Side (VS) og Høyres Side (HS) Hvis VS HS, vet vi at polynomene er ulike. 3 Hvis VS HS, mistenker vi at polynomene er like, men kan ikke være sikre, så vi gjentar med andre verdier for x og y. Dette virker bra hvis det er mange sertfikater (verdier som gir ulikhet). Etter 00 forsøk er sannsynligheten for å ikke være sikker på ulikhet mindre enn -00.

Metaheuristikker Simulated Annealing (simulert størkning) Analogi med fysisk størkning (av f.eks et flytende metall) «Temperatur» T, størkningsplan «Uphill moves» med sannsynlighet e ( E/T) Genetic algorithms Analogi med evolusjonsteori «Individer», «fitness», «Paring» Nevrale nett Analogi med menneskehjernen «Nevroner», «Læring» Taboo search Analogi med kultur Forby søk der vi allerede har søkt med en tabu-liste

Metaheuristikker Simulated Annealing http://cadapplets.lafayette.edu/fp/fpapplet.html t l d /f /f l t l http://www.heatonresearch.com/articles/64/page.html GA http://www.ads.tuwien.ac.at/raidl/tspga/tspga.html http://www.heatonresearch.com/articles/65/page.html Nevrale nett http://www.heatonresearch.com/articles/6/page.html

Parallellitet Noen problemer kan parallelliseres effektivt. Andre ser ut til å ha en iboende sekvensialitet. t Flere maskinmodeller: Boolske kretser Parallell Random Access Machine (CRCW,CREW,ERCW,EREW) Kompleksitet for Boolske kretser: «tid» (lengden av nettverket) og hardware (antall porter). Kompleksitet for PRAM: tid (antall steg) og hardware (antall prosessorer).

Parallellitet Gode nyheter Parallell tidsbruk sekvensielt minnebruk. En graf med n noder har n! mulige Hamiltonske stier.. Bruk n! prosessorer, hver sjekker en mulig løsning, i polynomisk tid. 3. Samle sammen svarene (OR). O(log n!) O(n log n). Dårlige nyheter Teorem: Med et polynomisk antall prosessorer er polynomisk parallell tid polynomisk sekvensiell tid Bevis: prosessor kan simulere ett steg for m prosessorer i sekvensiell tid t (m) O(m). Hvis t (n) er polynomisk parallell tid for en beregning, og m er polynomisk, så er t (m) t (n) polynomisk.

Parallell kompleksitet Parallelle kompleksitetsklasser Et formelt språk ligger i klassen NC hvis det kan gjenkjennes i polylogaritmisk l i parallell tid, O(log k n), med uniform polynomisk hardware. Dette er altså problemene som kan parallelliseres effektivt. P-komplett Åpent spørsmål om NC P. (Tilsvarende som det er åpent om P NP)

Andre metoder?