Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Magnus Haug Algoritmer og Datastrukturer

Liknende presentasjoner


Presentasjon om: "Magnus Haug Algoritmer og Datastrukturer"— Utskrift av presentasjonen:

1 Magnus Haug Algoritmer og Datastrukturer
NP-kompletthet Magnus Haug Algoritmer og Datastrukturer

2 Tre problemklasser P NP NPC Problemer som kan løses i polynomisk tid
Problemer som kan verifiseres i polynomisk tid NPC Problemer i NP, som alle problemer i NP kan reduseres til Problemer som antakeligvis ikke kan løses i polynomisk tid

3 Hva slags problemer ? Decision problems – avgjørelsesproblemer
Output er ”ja” eller ”nei” SHORTEST-PATH (Optimaliseringsproblem) Finne korteste vei fra u til v i en urettet, uvektet graf PATH (Relatert avgjørelsesproblem) Finne ut om det finnes vei fra u til v med max. k kanter

4 Hva slags problemer? (2) Optimaliseringsproblemer har ofte et tilsvarende avgjørelsesproblem Anta at vi kan løse SHORTEST-PATH kjapt Vi kan da sammenlikne svaret med parameteren k til PATH, og vi vet da at vi også har løst PATH kjapt M.a.o., hvis et optimaliseringsproblem er lett, er det tilhørede avgjørelsesproblemet minst like lett.

5 Reduksjon A B A ≤ B Hva betyr dette? Vi kan oversette A til B
Vi kan løse B vha en kjent algoritme Svaret vi da får fra B (ja/nei) er svaret på A A er da lettere enn B. Dette er slik vi vanligvis bruker reduksjon.

6 Reduksjon (2) A B A ≤ B Vi kan bruke dette andre veien
Vi kjenner løsningen på A Vi viser at vi kan oversette A til B B er da minst like vanskelig som A Hvis A da er NP-komplett, er B det også

7 Reduksjon (3) Et par feller å passe seg for:
Å ”redusere” betyr ikke å forenkle. ”Omskrive” hadde vært et bedre ordvalg. Tenk 2 ganger over ”Har jeg gjort dette riktig vei nå?”. Reduksjonen må gå raskere enn problemløsingen, hvis ikke kan vi ikke si noe om forholdet mellom problemene(!)

8 Reduksjon (4) Hva sier disse reduksjonene om problemene i NPC?
Hvis ett av problemene i NPC kan løses i polynomisk tid, kan alle problemer i hele NP løses i polynomisk tid. Hvis det finnes minst ett problem i NP som ikke kan løses i polynomisk tid, kan ingen problemer i NPC løses i polynomisk tid.

9 Hvilke problemer bør man kunne?
TSP (Travelling Salesman Problem) HAM-CYCLE SUBSET-SUM VERTEX-COVER GRAPH K-COLORABILITY SATISFIABILITY 0-1 KNAPSACK CLIQUE

10 SUBSET-SUM Vi har en sekvens av tall, og vil finne ut om noen av disse tallene kan legges sammen og få en viss sum Eks: Tall-rekke = { 8, 16, 4, 4, 1, 3} Finner vi summen 18 her? Nei. Finner vi summen 19 her? Ja, f.eks

11 VERTEX-COVER Kan vi finne en samling av maksimalt k noder, som gjør at alle kantene i grafen er nabo med minst én av disse nodene? Eks: Hvis k=3 Ja, f.eks. Nodene 4, 5 og 2. Hvis k=2 Nei.

12 CLIQUE En klikk er en samling noder i en graf som utgjør en komplett subgraf. Finnes det en klikk i denne grafen, med minst k noder? Eks: Hvis k=3 Ja, nodene 1, 2 og 5. Hvis k = 4 Nei, det finnes ikke.

13 GRAPH K-COLORABILITY Gitt k forskjellige farger, kan vi fargelegge nodene i en graf slik at ingen naboer har samme farge? Eks: k = 3 Ja, det kan den. Se bilde. k = 2 Nei, det kan den ikke. Obs! k=2 kan sjekkes i polynomisk tid!

14 SATISFIABILITY Vi har en en boolsk krets, eller tilsvarende boolsk uttrykk, bestående av n inputs. Kan vi finne en ordning av inputs som gjør at output blir true? Eks: E = (x1 or ¬x2 or ¬x3) and (x1 or x2 or x4) Ja, det finnes en slik ordning. x1 må være sann, og det holder. E = (¬x1 and ¬x2) and (x1 or x2) Ingen slik ordning finnes.

15 0-1 KNAPSACK Angitt n ting, hver med en spesifikk vekt wi og verdi pi
Finn ut hvor stor verdi vi klarer å få med oss uten å overstige en angitt vekt W. Evt. Som avgjørelsesproblem: kan vi få med oss verdi k uten å overstige vekt W ? Kjøretid: O(nW) = O(n2m), ved dynamisk programmerings-løsning vi har sett tidligere.

16 Reduksjon (Eks) HAM-CYCLE TSP HAM-CYCLE TSP
Finne ut om det finnes en hamilton-sykel i en graf, det vil si en sykel som inneholder alle nodene 1 gang. TSP Travelling salesman problem Finne korteste vei innom alle noder i en graf Man pleier å ha med et krav om å kun besøke hver node 1 gang

17 Reduksjon (Eks) (2) Finn TSP i modifisert HAM-CYCLE-graf:
Polynomisk reduksjon Alle kanter i grafen har vekt 0 Alle ikke-eksisterende kanter har vekt 1 Hvis TSP(0) == ja, så har vi en HAM-CYCLE

18 Vise at et problem x er i NP?
Enten: Finn en algoritme som verifiserer løsningen på problemet x i polynomisk tid. Eller: Vis at problemet x er i P

19 Vise at et problem x er i P?
Enten: Reduser problemet x til et annet problem i P, i polynomisk tid. Løs det andre problemet i stedet. Eller: Lag en algoritme for å løse problemet x i polynomisk tid, og bevis at resultatet blir korrekt.

20 Vise at et problem x er i NPC?
Enten: 1. Vis at problemet er i NP 2. Vis at problemet er NP-HARD, altså minst like vanskelig som alle andre problemer i NP. Eksempel: C-SAT Eller: Finn et annet problem i NPC som kan reduseres til vårt problem x i polynomisk tid. Eksempel: C-SAT SAT, SAT CNF-SAT, ...

21 Pengeveksling Dynamisk algoritme: Grådig algoritme:
Optimal substruktur: Den optimale måten å ta ut n kroner, hvis man har mynter 2, 3, 7: 1 + Min( mynter[n-2], mynter[n-3], mynter[n-7] ) Grådig algoritme: Plukk så mange man kan av den største mynten, så mange man kan av den nest største mynten, osv..

22 Pengeveksling (2) Når kan man bruke den grådige algoritmen, og når må man bruke den dynamiske? Den grådige fungerer hvis hver mynt går opp i alle mynter som er større enn seg. Iterer gjennom myntsettet, og sjekk hele veien: coin[i+1] % coin[i] == 0 Det finnes andre, bedre måter å sjekke for greedy choice property, men de er mer kompliserte.

23 Tvilling-DNA (neste ukes øv.)
Levenshtein distance (søk på wikipedia) Dynamisk programmering, bottom-up Bygg en matrise over edit distances for starten av stringene. Mange morsomme tweaks eller alternative algoritmer mulig Dette er et veldig reelt problem i bioinformatikk


Laste ned ppt "Magnus Haug Algoritmer og Datastrukturer"

Liknende presentasjoner


Annonser fra Google