Magnus Haug Algoritmer og Datastrukturer

Slides:



Advertisements
Liknende presentasjoner
Kombinatorikk for lærerstudenter
Advertisements

LIKEVERD Bevar ditt hjerte!.
I.
Vurdering og IKT Egenvurdering i matematikk med
Fra ord til liv Mars 2011.
1 Sannsynlighetsregning Gjenfinningssystemer og verktøy II Jon Anjer.
Kapittel 28 Norgeskartet
The Travelling Salesperson. LOG530 Distribusjonsplanlegging 2 2 Et forsyningsskip skal starte fra VestBase for å betjene 10 forskjellig installasjoner.
Godt verktøy er halve jobben
Matematisk Induksjon.
Skritt 1 er å bli klar over Guds Plan
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.
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.
Oppgave 42 Finn feilene i setningene, og gi forslag til riktige setninger. Her finnes det selvsagt mange muligheter og ikke én fasit.
Gjenfinningssystemer og verktøy II
Memoisering og dynamisk programmering
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
Forside Introduksjon Fibonacci-tall Memoisering DP Neste uke Spørsmål Introduksjon til memoisering og dynamisk programmering Åsmund Eldhuset asmunde *at*
Øvingsforelesning 9 Flytnettverk, maksimum flyt og
1 Øvingsforelesning Andreas Knudsen Nils Grimsmo
Kompleksitetsanalyse
Øvingsforelesning 12 Redusering av problemer,
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ø)
P-MP modeller. LOG530 Distribusjonsplanlegging 2 2 Det skal opprettes p fasiliteter (lager) for å betjene en gitt mengde kunder. Kundenodene er også potensielle.
Lokalisering og minimum maxavstand. LOG530 Distribusjonsplanlegging 2 2 I mange situasjoner ønsker en å finne lokaliseringer som minimerer maksimalavstanden.
The Postmans Problem. LOG530 Distribusjonsplanlegging 2 2 Mista har fått i oppdrag å vedlikeholde veiene i landsdelen. Dette er et eksempel på den klassiske.
P-CP modeller. LOG530 Distribusjonsplanlegging 2 2 Det skal opprettes p fasiliteter for å betjene en gitt mengde kunder. Kundenodene er også potensielle.
Maks resultat og maks oppfylte kundekrav. LOG530 Distribusjonsplanlegging 2 2 Vi fortsetter eksempel 9, men benytter nå nettopriser for varene. (Antar.
Repetisjon kap 6,7,8.
Klargjøring fra forrige gang
Øvingsforelesning 9 - Børge Rødsjø
Algoritmer og Datastrukturer
Kap 10 Graf.
O PPGAVE 20 Side Å KJENNE ( SEG ) IGJEN 1. Tror du de vil kjenne meg igjen etter at jeg har farget håret? 2. Han hadde gått seg vill. Han kjente.
Kapittel 37 Hectors ønske om arbeid i Norge.
Dynamisk programmering
Johannes 14,1-11 veien, sannheten og livet
INF 295 forelesning 14 - kap 8 Disjunkt mengde ADT 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 Forelesning 17 - kap 9 Korteste vei i grafer Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 18 - kap 9 Aktivitetsgrafer
INF 295 Forelesning 19 - Dynamisk programmering Korteste vei alle til alle (Floyd) Hans Fr. Nordhaug (Ola Bø)
A randomized protocol for signing contracts (extended abstract) S.Even, O. Goldreich, A.Lempel.
Vorspiel En vakker vårdag ringer rådmannen i Hamar til en av sine sjefer, og de begynner å diskutere status i kommunen…
Hovedfagspresentasjon
Hvordan kan foreldre bruke de vangligste funksjonene i Itslearning.com
NÅ SKAL VI LÆRE OM LIKNINGER.
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,
Telefonmanus når du ringer fra din egen liste nr 1
1 INF5110 – 23. april, 2013 Svar på noen oppgaver til kap. 8 Beklager noe trykkfeil og rot på forelesningene Håper dette er bedre (lagt ut 24/4) Nå fredag.
Og.
Hovedideen Anta at en hypotese er riktig (H 0 ) Det er bare to muligheter, enten er H 0 riktig, ellers er den ”omvendte” hypotesen (H 1 ) riktig Gå ut.
Alg. Dat Øvingsforelesning 11 Dynamisk programmering, grådighet
INF 295 Algoritmer og datastrukturer Forelesning 5 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)
Forside Intro Fibonacci-tall Memoisering DP Longest increasing subsequence Betingelser Matrise- multiplikasjon Longest common subsequence Grådig vs. DP.
Sorterings- Algoritmer Algoritmer og Datastrukturer.
Sterke og 2-sammenhengende komponeneter, DFS
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
§4. Irrasjonale og komplekse tall
INF 295 Algoritmer og datastrukturer Forelesning 23 Kompleksitet Hans Fr. Nordhaug/ Ola Bø.
5702 Geografisk analyse Nettverksanalyse. Evaluering av nettverksstruktur Nettverksdiameter Diameteren på et nettverk representerer maksimum antall.
Øvingsforelesning 11 P vs NP Håkon Jacobsen
1 Øvingsforelesning 4 Topologisk sortering Minimale spenntrær Håkon Jacobsen
Utskrift av presentasjonen:

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

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

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

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.

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.

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å

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(!)

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.

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

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. 8+4+4+3

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.

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.

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!

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.

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.

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

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

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

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.

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 3CNF-SAT, ...

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

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.

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