1 / 21

INF 295 Algoritmer og datastrukturer Forelesning 23 Kompleksitet

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

tiana
Download Presentation

INF 295 Algoritmer og datastrukturer Forelesning 23 Kompleksitet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. INF 295 Algoritmer og datastrukturerForelesning 23 Kompleksitet Hans Fr. Nordhaug/ Ola Bø

  2. 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

  3. Eulers sykel

  4. 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.

  5. 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.

  6. 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.

  7. Typiske vekstrater Polynomiske

  8. 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)

  9. 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 programmetvoid 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.

  10. 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.

  11. 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.

  12. 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

  13. 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.

  14. 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?

  15. 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

  16. 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.

  17. 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.

  18. 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.

  19. 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|

  20. 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

  21. Mengden av problemer • Er P=NP? Alle problemer Uavgjørbare NP P NP-komplette

More Related