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

Slides:



Advertisements
Liknende presentasjoner
The Travelling Salesperson. LOG530 Distribusjonsplanlegging 2 2 Et forsyningsskip skal starte fra VestBase for å betjene 10 forskjellig installasjoner.
Advertisements

Matematisk Induksjon.
Kap.8 Sortering og søking sist oppdatert • Del 1 Søking - lineær søking m/u sorterte elementer - binærsøking - analyse • Del 2 Sortering - ”gamle”
Komplett avstandstabell. LOG530 Distribusjonsplanlegging 2 2 Noen ganger er det behov for en komplett avstandstabell mellom alle nodene i et nettverk.
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF 4130: Algoritmer: Design og effektivitet Eksamensdag:15. desember 2010.
Øvingsforelesning 9 Flytnettverk, maksimum flyt og maksimum bipartitt matching Jon Marius Venstad Redigert og forelest av Gleb Sizov.
René Descartes (1596–1650) Innførte koordinatsystemet
Vi har lært å bestemme: - Nullpunkter (y=0)
Forside Korteste sti BFS Modifikasjon Dijkstra Eksempel Korrekthet Analyse Øving Spørsmål Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no.
Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no
Øvingsforelesning 9 Flytnettverk, maksimum flyt og
1 Øvingsforelesning Andreas Knudsen Nils Grimsmo
Øvingsforelesning 3 Grafer, BFS, DFS og hashing
Alg. Dat Øvingsforelesning 5 Kompleksitetsanalyse Torbjørn Moralnd
Kompleksitetsanalyse
Øvingsforelesning 12 Redusering av problemer,
Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Børge Rødsjø
Øvingsforelesning Magnus Haug
Forside Motivasjon Analyse Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Kompleksitetsanalyse Åsmund Eldhuset asmunde.
INF 295 Forelesning 15 - kap 9 Grafer Hans Fr. Nordhaug (Ola Bø)
Reiserute med maksimal opplevelse. LOG530 Distribusjonsplanlegging 2 2 I følgende eksempel er det en turist som ønsker å velge kjøreruten med mest severdigheter,
The Postmans Problem. LOG530 Distribusjonsplanlegging 2 2 Mista har fått i oppdrag å vedlikeholde veiene i landsdelen. Dette er et eksempel på den klassiske.
Algoritmiske metoder Innhold: Effektivitetsbetraktninger Programmeringsteknikker Datastrukturer Algoritmer tilknyttet datastrukturene Lærebok: Hafting/Ljosland:
Komplekse tall Naturlige tall
Øvingsforelesning 9 - Børge Rødsjø
Kap 10 Graf.
INF 295 Algoritmer og datastrukturer Forelesning 7 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 1 - kapittel 1 Introduksjon Hans F. Nordhaug (Ola Bø) (Ketil Danielsen, 2007)
INF 295 forelesning 14 - kap 8 Disjunkt mengde ADT Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 9a Søketrær Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 8 Trær Hans Fr. Nordhaug (Ola Bø)
INF 295 forelesning 13 - kap 6 Prioritetskø (Heap) Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 16 - kap 9 Minimalt spenntre og korteste vei i grafer Hans Fredrik Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 11 Når RAM ikke strekker til - B-trær og Utvidbar hashing Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 17 - kap 9 Korteste vei i grafer Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 20 - Kapittel 7 Boble-, innstikk-, Shell-, Heap-, Quick-, Mergesortering Hans Fr. Nordhaug (Ola Bø)
Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 4 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)
INF 295 forelesning 13 - kap 6 Andre prioritetskøer Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 18 - kap 9 Aktivitetsgrafer
INF 295 Algoritmer og datastrukturer Forelesning 6 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 24 Repetisjon
INF 295 Algoritmer og datastrukturer Forelesning 9b Balanserte (binære) trær Hans Fr. Nordhaug.
INF 295 Forelesning 19 - Dynamisk programmering Korteste vei alle til alle (Floyd) Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 10 Invarianter og Hashing Hans Fr. Nordhaug (Ola Bø)
Dynamiske nettsider PHP Del 2 – Kontrollstrukturer.
Hovedfagspresentasjon
CARISMA Context-Aware Reflective Middleware System for Mobile Applications.
INF 4130 Eksamen 2008 Gjennomgang.
Oppgaver til kodegenerering etc. INF-5110, 2013 Oppgave 1: Vi skal se på koden generert av TA-instruksjonene til høyre i figur 9.10 i det utdelte notatet,
Magnus Haug Algoritmer og Datastrukturer
INF 295 forelesning 12 Repetisjon per 17. februar Hans F. Nordhaug (Ola Bø)
En formel er gyldig hviss den sann i alle tolkninger Utsagnslogikk Tolkning = linje i sannhetsverditabell Altså: En formel er gyldig hviss den har T i.
INF 295 Algoritmer og datastrukturer Forelesning 5 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 22 Teknikker for algoritmeutvikling Hans Fr. Nordhaug/ Ola Bø.
Hypotesetesting, og kontinuerlige stokastiske variable
Bruk av IKT i ulike beslutningsprosesser og arbeidsoppgaver i offentlig sektor (II) - Spesielt om representasjon av rettsregler i datamaskinprogrammer.
Praktisk Midtveisevaluering av kurset («femminutterslapper») i pausen. Undervisningsfri neste uke (ingen forelesninger eller grupper). NM i programmering.
Et bevis 1 Q → R P 2 P → Q P 3 P P 4 Q 3,2,MP 5 R 4,1,MP 6 P → R 3,5,CP 7 (P → Q) → (P → R) 2,6,CP 8 (Q → R) → ((P → Q) → (P → R)) 1,7,CP Vi oppsummerer.
En formel er gyldig hviss den sann i alle tolkninger Utsagnslogikk Tolkning = linje i sannhetsverditabell Altså: En formel er gyldig hviss den har T i.
INF1000 (Uke 4) Mer om forgreninger, While-løkker
Lokalisering og max minimumavstand. LOG530 Distribusjonsplanlegging 2 2 Anta at nettverket angir en region hvor McBurger skal opprettes 3 konkurrerende.
Korteste vei. LOG530 Distribusjonsplanlegging 2 2 Ofte står en overfor ønsket om å finne korteste kjørerute fra et gitt utgangspunkt til et ønsket bestemmelsessted.
LOG530 Distribusjonsplanlegging
Matematikk 1 årskurs 26. oktober 2009
§4. Irrasjonale og komplekse tall
Øvingsforelesning 11 P vs NP Håkon Jacobsen
1 Øvingsforelesning 4 Topologisk sortering Minimale spenntrær Håkon Jacobsen
TDT4105 Informasjonsteknologi, grunnkurs
INF5110 – 5. og 7. mai 2015 Stein Krogdahl, Ifi, UiO
Utskrift av presentasjonen:

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

Eulers sykel

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.

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.

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.

Typiske vekstrater FunksjonNavn cKonstant log NLogaritmisk log 2 NLog-kvadratisk NLineær N log N N2N2 Kvadratisk N3N3 Kubisk 2 N, N!Eksponensiell Polynomiske

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)

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.

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.

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.

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

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.

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?

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

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.

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 P K kan transformeres til et NP-problem P i polynomisk tid. Da er også P NP-komplett.

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.

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|

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

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