21
INF 295 Algoritmer og datastrukturer Forelesning 23 Kompleksitet Hans Fr. Nordhaug/ Ola Bø

INF 295 Algoritmer og datastrukturer Forelesning 23 Kompleksitet

  • Upload
    tiana

  • View
    43

  • Download
    0

Embed Size (px)

DESCRIPTION

INF 295 Algoritmer og datastrukturer Forelesning 23 Kompleksitet. Hans Fr. Nordhaug/ Ola Bø. Kompleksitet. Problemer kan være mer eller mindre vanskelige å løse - eksempler fra graf-algoritmer Eulers sykel Besøker hver kant nøyaktig en gang Kan løses i lineær tid Hamiltons sykel - PowerPoint PPT Presentation

Citation preview

Page 1: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

INF 295 Algoritmer og datastrukturer

Forelesning 23 Kompleksitet

Hans Fr. Nordhaug/Ola Bø

Page 2: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

Kompleksitet Problemer kan være mer eller mindre

vanskelige å løse - eksempler fra graf-algoritmer Eulers sykel

Besøker hver kant nøyaktig en gang Kan løses i lineær tid

Hamiltons sykel Besøker hver node i en urettet graf nøyaktig en gang, men

retur til startnoden. Har ingen kjent effektiv algoritme

Korteste uveide vei Løselig i lineær tid

Lengste uveide vei Har ingen kjent effektiv algoritme

Page 3: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

Eulers sykel

Page 4: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

Håndterbar

Problemer som kan løses i polynomsk tid er håndterbare (tractable).

Og problemer som ikke kan løses i polynomsk tid er uhåndterbare (intractable).

Hvorfor denne grensen? Ikke-polynomsk kjøretid vokser for fort. Sjelden høyere grad enn 3 (eller store koeff.) Gode egenskaper for polynomer. Leder til kompleksitetsteori.

Page 5: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

Klassene P og NP

P er klassen av bestemmelsesproblemer som kan bli løst i polynomsk tid av (deterministiske) algoritmer.

NP er klassen av bestemmelsesproblemer som kan bli løst av ikke-deterministiske polynomske algoritmer.

Page 6: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

NP-komplette problemer

Det finnes en rekke viktige problemer som har tilnærmet samme kompleksitet - disse problemene klassifiseres som NP-komplette problemer.

Vet ikke om de kan løses i polynomisk tid. Men kan vi løse ett i polynomisk tid, kan vi

løse alle.

Page 7: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

Typiske vekstrater

Funksjon Navn

c Konstant

log N Logaritmisk

log2 N Log-kvadratisk

N Lineær

N log N

N2 Kvadratisk

N3 Kubisk

2N, N! Eksponensiell

Polynomiske

Page 8: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

Klassifisering av problemer

Lette problemer Kjøretid er avhengig av størrelsen på input

Når noen algoritmer sies å kjøre i logaritmisk tid forutsetter det at data allerede er på plass

Generelt er faktisk lineær kjøretid det beste vi kan regne med

Uløselige problemer Det kan vises at ikke alle problemer kan løses

med datamaskin - eksempel: Stoppe-problemet (Halting problem)

Page 9: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

Stoppeproblemet Vi tenker oss at vi skal lage et program Term som kan finne ut om et

annet program Q inneholder en evig loop eller vil terminere Term(Q)=true hvis Q avslutter Lager så dette programmet

void P(prog Q){while (Term(Q));

} Utfører så kallet P(P) Vil P terminere da?

Hvis Term(P) =false, vil P terminere - selvmotsigelse Hvis Term(P) = true, vil P går i evig løkke - selvmotsigelse

Vi har dermed bevist (ved moteksempel) at det er umulig å lage et program som avgjør om et program vil terminere eller gå i evig løkke.

Page 10: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

NP-problemer NP står for Nondeterministic Polynomial. Våre datamaskiner følger et program av

instruksjoner som hele tiden avgjør hva som skal gjøres videre- de er deterministiske

I dette tilfellet tenker vi oss en forbedret maskin som (hele tiden) gjetter riktig på hva som er best å gjøre videre - en ikke-deterministisk maskin.

Et NP problem kan løses i polynomisk tid på en ikke-deterministisk maskin.

Et uløselig problem er fortsatt uløselig med en ikke-deterministisk maskin.

Page 11: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

Ikke-deterministiske algoritmer

Tofase-prosedyre: Ikke-deterministisk (gjetting) fase: En mulig

løsning (L) genereres for problemet (P). Deterministisk (verifisering) fase: En

deterministisk algoritme som returner Yes/Ja, hvis L faktisk er en løsning av P.

En ikke-deterministisk polynomsk algoritme bruker polynomsk tid på verifiseringsfasen.

Page 12: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

NP-problemer Det kan vises at hvis vi kan formulere et problem som et

ja/nei-spørsmål og det er mulig å avgjøre om et ja -tilfelle er korrekt i polynomisk tid - da er problemet i NP.

Eksempel: Hamiltonsk sykel. Gitt en sekvens av noder da kan det lett avgjøres at de faktisk utgjør en Hamiltonsk sykel.

NP inneholder alle problemer som kan løses i polynomisk tid fordi løsningen er en avgjørelse.

Det er mye lettere å sjekke en gitt løsning enn å finne en polynomisk løsning. Allikevel har en hittil ikke funnet problemer i NP som ikke har løsning i polynomisk tid.

Det finnes løselige problemer som ikke er NP

Page 13: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

Mange kjente problemer er i NP

Hamiltonian circuit Finn en løkke som besøker alle noder en gang.

Travelling salesman Finn kortest tur mellom n byer. (Kortest Ham. i en komplett

graf med positive heltallsvekter.) Knapsack problem

Finn mest verdifulle undermengde av n gjenstander som får plass i en sekk med en gitt kapasitet.

Partition problem Finn ut om en mengde av heltall, kan deles i to adskilte

mengder med samme sum.

Page 14: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

Polynomsk løsning av NP?

Men at vi har funnet en eksponentiell løsning beviser ikke at det ikke finnes en polynomisk løsning.

For NP-problemene klarer vi ikke: Å bevise at en polynomisk løsning ikke finnes Eller å finne en polynomisk løsning

Et $1,000,000 –spørsmål: Er P=NP?

Page 15: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

NP-komplette problemer

Et subsett av NP som inneholder de vanskeligste Karakteriseres ved at alle NP problem kan

reduseres til et hvilket som helst NP-komplett problem i polynomisk tid.

Reduksjonsmetode: Lag en transformering som kan overføre en hver instans

P1 av NP problemet til en instans P2 av det NP-komplette problemet.

Løs P2 og transformer løsningen tilbake til P1 Eksempel: Desimal innmating Binær beregning Desimal

visning av resultat. Transformeringen må kunne utføres i polynomisk tid

Page 16: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

Polynomsk reduksjon

Et bestemmelsesproblem D1 er polynomsk reduserbart til D2 hvis det finnes en funksjon t som transformerer alle instanser av D1 til instanser av D2 slik at: t mapper alle D1-ja til D2-ja og alle D1-nei til D2-

nei. t beregnes med an algoritme som tar polynomsk

tid.

Page 17: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

NP-komplette problemer

NP-komplette problemer kan derfor brukes til å løse alle NP-problemer med ved hjelp av transformering transformeringsoverhead er i polynomisk tid

Hvis det finnes ett NP-komplett problem som kan løses i polynomisk tid, da kan alle NP-problemer løses i polynomisk tid.

Hvis et NP-komplett problem PK kan transformeres til et NP-problem P i polynomisk tid. Da er også P NP-komplett.

Page 18: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

Eksempel på bevis for at et problem er NP-komplett.

Skal vise at følgende problem er NP-komplett Reisende salgsmann(TS)

Besøker hver node i en komplett urettet graf en gang. Finnes det en rundtur som er kortere enn k.?

Vet at: Hamilton-sykel-problemet (HC) er NP-komplett.

Nok å vise et det NP-komplette problemet (HC) kan transformeres til TS i polynomisk tid.

Page 19: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

Fra HC til TS

HC:Finne en enkel sykel som besøker alle noder én gang

TS: finnes det en enkel sykel som besøker alle noder og har totalkostnad<=K

Søker en enkel sykel med totalkostnad <=|V|

Page 20: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

Fra HC til TS

Transformasjon G er grafen til HC G' er grafen til TS Alle kanter i G' som også er i G får lengde 1 De andre kantene får lengde 2

Løsning Hvis G har n noder og vi i G' kan svare ja på

om det finnes en TS av lengde=n, da finnes det også en Hamiltonsk sykel i G

Page 21: INF 295 Algoritmer og datastrukturer Forelesning 23  Kompleksitet

NP

Alle problemer

Mengden av problemer

NP-komplette

Er P=NP?

Uavgjørbare

P