PG4200 Algoritmer og datastrukturer Forelesning 12



Like dokumenter
NITH PG4200 Algoritmer og datastrukturer Løsningsforslag Eksamen 4.juni 2013

PG4200 Algoritmer og datastrukturer Forelesning 10

NORGES INFORMASJONSTEKNOLOGISKE HØGSKOLE PG4200 Algoritmer og datastrukturer

Løsningsforslag til eksamen i PG4200 Algoritmer og datastrukturer 10. desember 2014

PG4200 Algoritmer og datastrukturer forelesning 10. Lars Sydnes 21. november 2014

NITH PG4200 Algoritmer og datastrukturer Løsningsforslag Eksamen 4.juni 2013

EKSAMEN. Dato: 28. mai 2018 Eksamenstid: 09:00 13:00

PG4200 Algoritmer og datastrukturer Forelesning 7

Heap* En heap er et komplett binært tre: En heap er også et monotont binært tre:

Løsningsforslag for Obligatorisk Oppgave 3. Algoritmer og Datastrukturer ITF20006

Norges Informasjonsteknologiske Høgskole

Pensum: fra boken (H-03)+ forelesninger

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

NORGES INFORMASJONSTEKNOLOGISKE HØGSKOLE PG4200 Algoritmer og datastrukturer

Pensum: fra boken (H-03)+ forelesninger

MED TIDESTIMATER Løsningsforslag

Norges Informasjonsteknologiske Høgskole

Norges Informasjonsteknologiske Høgskole

PG4200 Algoritmer og datastrukturer Forelesning 5 Implementasjon av lister

Heap og prioritetskø. Marjory the Trash Heap fra Fraggle Rock

PG4200 Algoritmer og datastrukturer Forelesning 9

EKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 11 sider inklusiv vedlegg og denne forsiden.

Binær heap. En heap er et komplett binært tre:

Oppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene.

INF Algoritmer og datastrukturer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Generelle Tips. INF Algoritmer og datastrukturer. Åpen og Lukket Hashing. Hashfunksjoner. Du blir bedømt etter hva du viser at du kan

Ny/utsatt EKSAMEN. Dato: 5. januar 2018 Eksamenstid: 09:00 13:00

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00

Søkeproblemet. Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke?

Håndterlige og uhåndterlige problemer

UNIVERSITETET I OSLO

Eksamen i tdt4120 Algoritmer og datastrukturer

PG 4200 Algoritmer og datastrukturer Innlevering 2

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

PG4200 Algoritmer og datastrukturer forelesning 3. Lars Sydnes 29. oktober 2014

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

Datastrukturer for rask søking

UNIVERSITETET I OSLO

EKSAMEN Løsningsforslag. med forbehold om bugs :-)

PG4200 Algoritmer og datastrukturer Forelesning 3 Rekursjon Estimering

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

Heapsort. Lars Vidar Magnusson Kapittel 6 Heaps Heapsort Prioritetskøer

Binære søketrær. En ordnet datastruktur med raske oppslag. Sigmund Hansen

... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø

EKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00

Notater til INF2220 Eksamen

Øvingsforelesning 2 - TDT4120. Grafer og hashing. Benjamin Bjørnseth

Algoritmer og Datastrukturer IAI 21899

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

Hva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen

INF Algoritmer og datastrukturer

UNIVERSITETET I OSLO

Løsningsforslag. Oppgave 1.1. Oppgave 1.2

Løsningsforslag for Obligatorisk Oppgave 2. Algoritmer og Datastrukturer ITF20006

Algoritmeanalyse. (og litt om datastrukturer)

PG4200 Algoritmer og datastrukturer Forelesning 2

Hvor raskt klarer vi å sortere?

Hva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )

INF Algoritmer og datastrukturer

EKSAMEN. Emne: Algoritmer og datastrukturer

Algoritmer og Datastrukturer

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)

PG 4200 Algoritmer og datastrukturer Innlevering 1. Frist: 2.februar kl 21.00

Løsningsforslag EKSAMEN

Algdat Oppsummering, eksamen-ting. Jim Frode Hoff

Grunnleggende Datastrukturer

Definisjon. I et binært tre har hver node enten 0, 1 eller 2 barn

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)

INF Algoritmer og datastrukturer

Binære trær: Noen algoritmer og anvendelser

Liste som abstrakt konsept/datatype

Sorteringsproblemet. Gitt en array A med n elementer som kan sammenlignes med hverandre:

IN Algoritmer og datastrukturer

EKSAMENSOPPGAVE. INF-1101 Datastrukturer og algoritmer. Adm.bygget, rom K1.04 og B154 Ingen

Hashing: Håndtering av kollisjoner

EKSAMENSOPPGAVE. IAI20102 Algoritmer og datastrukturer

Algoritmer og Datastrukturer

INF2220: Forelesning 3

UNIVERSITETET I OSLO

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre

Python: Rekursjon (og programmering av algoritmer) Python-bok: Kapittel 12 + teoribok om Algoritmer

INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer

INF2220: Forelesning 3

INF2220: Forelesning 3. Map og hashing Abstrakte datatyper (kapittel 3.1) Map (kapittel 4.8) Hashing (kapittel 5)

INF2220: Time 12 - Sortering

Datastrukturer. Algoritmer og datastrukturer. Øvingsforelesning 2

Innledning. IN2010/INF Algoritmer og datastrukturer. Tirsdag 27. november 2018 Kl (4 timer)

INF1010 Hashing. Marit Nybakken 8. mars 2004

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Innhold. Innledning 1

INF1020 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Transkript:

PG4200 Algoritmer og datastrukturer Forelesning 12 Lars Sydnes, NITH 30. april 2014

I. SIST: NOTAT OM HARDE PROBLEMER

INNHOLD Håndterlige problemer: Problemer med kjente algoritmer med polynomisk kjøretid (Polynomisk = orden O(n k )). Uhåndterlige problemer: Problemer som ikke har kjente algoritmer med polynomisk kjøretid. Problemklassene P og NP: To viktige klasser av beslutningsproblemer. P: Løses innenfor polynomisk kjøretid. NP: Verifisering av løsning innenfor polynomisk kjøretid. NP-tunge problemer: Problemer som er minst like vanskeligere som alle NP-problemer. Ryggsekkproblemet: Knapsack problem. Velg last til ryggsekk. Søk høyeste verdi innenfor en viss vektbegrensning. (NP-tungt) Hamiltonsk rundreise-problemet: Fins det en rundreise i den gitte grafen som besøker hver eneste node presis én gang? (NP-komplett) Lastebilproblemet: (Uvanlig terminologi) Fyll esker i en lastebil. Ønske: Lasten skal ha størst mulig verdi. (NP-tungt)

REDUKSJON: SLIK VIRKER DET heapsort(comparable[] data) { maxheapify(data); for(int i = data.length-1; i >0; i--){ swap(data,0,i); fixheap(data,i); } } Reduksjon til velkjente metoder: maxheapify sort swap fixheap

REDUKSJON: KARTLEGGING AV TUNGE PROBLEM A: Problemet vi ønsker å løse. B: Kjent beregningskrevende problem. (F.eks: NP-komplett eller NP-hardt) Resdusér problem B til problem A: Vis hvordan en algoritmisk løsning av problem A kan brukes til å løse problem B. Vanskelig problem B Problemet vi arbeider med A

REDUKSJON B kan reduseres til A. A er minst like beregningskrevende som B. Vi forstår at A er vanskeligere enn B. Vi kan innføre en relasjon: A er minst like vanskelig som B: B A. OBS: Vi er interessert i polynomiske reduksjoner: Oversettelsen skal ha polynomisk kjøretid. B A = A er håndterbart hvis B er håndterbart.

KARTLEGGING Rettet graf. C E H D A G F I J B G A, H, E, D, C E A, I A, I kan ikke sammenlignes Vi har en pil fra noden X til noden Y når Y er minst like vanskelig som X. I dette kartet er B og J de vanskeligste problemene, mens C og E er de enkleste problemene. Legg merke til at H G D H. Disse problemene er like vanskelige.

NP -KOMPLETTHET Et NP -komplett problem X kan karakteriseres slik: X tilhører klassen NP. (Løsning kan verifiseres med polynomisk kjøretid). Hvis Y er et NP -problem, så er Y X. (Y kan reduseres til X). Et problem X slik at Y X dersom Y er et NP -problem kalles NP -tungt / NP -hardt / NP -hard.

REDUKSON LASTEBILPROBLEMET Oversettelse mellom lastebilproblemet optimal stabling av pappesker i lastebil og ryggsekkproblemet (knapsack problem) optimalt utvalg av tunge salgsvarer. Ryggsekkproblemet er kjent som NP -hardt (NP -hard). Konklusjon: Det gjelder også lastebilproblemet.

II. KORT PENSUMOVERSIKT SJEKKLISTE FØR EKSAMEN

LISTER SØK SORTERING Liste-implementasjoner: Tabeller i minnet / Lenkede strukturer Søk: Sekvensielt søk / Binært søk Sortering av lister: Sekvensiell sortering: Insertion sort, Selection sort, Bubble sort. O(n 2 ) Quick sort O(n 2 ) (Dog som oftest O(n log n)) Merge sort O(n log n) Heap sort O(n log n) Radix sort O(n) (Når dataene er velegnet).

REKURSJON Jeg kan en sang som går folk på nervene Sangen begynner sånn: "Jeg kan en sang som går..." public void syng() { if (nerveneerkaputt) { //Stoppbetingelse return; } else { syng("jeg kan en sang..."); syng(); //Rekursivt kall } } Bestanddeler Stoppbetingelse Rekursivt kall Iblant: Ikke-rekursivt offentlig grensesnitt

TRÆR Binære trær / søketrær Heaps Ubalanserte trær. AVL-trær, Black-Red-trær. B-trær (Variabelt antall barn pr. node) Min-heap Max-heap Anvendelse: Prioritetskøer. Lenket implementasjon BinaryNode root BinaryNode left = current.left; Tabell-implementasjon int left = 2*current + 1, right = left + 1;

HASHING Utnytte random access / indeksering. Genial idé: Regn ut minneadressen ved hjelp av hash-funksjon. I praksis: Faller ofte tilbake til sekvensielt søk i en liten del av minnet. Chaining Probing: Linear, Quadratic Double hashing. Begrenset kapasitet rehashing. Likevel: Lagring og søk med kjøretid O(1).

GRAFER Grafer Rettede grafer Nettverk / Vektede grafer Rettede nettverk Naboskapsmatriser / Adjacency matrix. Naboskapslister / Adjacency list. Ingen struktur for lagring av data. Søk, sortering, Ofte: Abstraksjon av generelle situasjoner. Nettverk av flyplasser nettverk. Bekjentskaper mellom mennesker graf.

KØ STAKK MENGDE AVBILDNING Liste: Noe man kan gå sekvnsielt gjennom. Indeksert liste: Vi aksesserer elementer via indeks Kø: Queue. First in, first out. enqueue, dequeue Stakk: Stack. First in, last out. push, pop Prioritetskø: Priority queue. add, removemin Mengder: Sets. HashSet, TreeSet. contains, add, remove Avbildninger: Maps. HashMap, TreeMap. containskey, add(key, value), get(key), remove(key)

KJØRETIDSANALYSE O-notasjon Kjøretidsanalyse for løkker Kjøretidsanalyse for nettverk av funksjonskall. Vurdering av enkeltalgoritmer. Sammenligning av algoritmer Dette gjennomsyrer hele kurset.

III. HVA KAN VI TA MED OSS VIDERE?

ENKLE PRINSIPPER KAN GI INTERESSANTE STRUKTURER commons.wikimedia.org Blomkål av størrelse 10 er satt sammen av to mindre blomkål: En av størrelse 1 og en av størrelse 9.

DET ER FAKTISK MULIG Å VÆRE LUR Lister: Sekvensiell håndtering. Typisk operasjon: O(n). Søketrær: Forbedrer søk. Typisk operasjon O(log n). Hashtabeller: Forbedret søk. Typisk operasjon O(1). Utnytter hardware bedre enn trær: Random access / Indeksering. Sekvensielt søk Sortering + binært søk Binære søketrær Oppslag i hash-tabeller

TEORI OG PRAKSIS 1 Når matematikeren bruker O-notasjon, er det som om vi har ubegrensede ressurser. DET FINNES INGEN ØVRE GRENSE FOR n Derfor er det matematisk riktig å si: Oppslag i hashtabeller har kjøretid av orden O(log n). I virkeligheten har vi begrensede ressurser. Derfor er det praktisk talt riktig å si: Oppslag i hashtabeller har kjøretid av orden O(1). Eksempel: Økonomifaget, uendelig tid og rom. Enkle teorier om rasjonalitet forutsetter uendelige ressurser. Men jorden er en kule og vi lever nokså kort. Vi kan likevel lære mye av slike forenklede teorier. Begrensede ressurser Vi kan ikke annet.

TEORI OG PRAKSIS 2 Stor spredning: Det er vanskelig å forutsi kjøretiden. Vi er dog som regel i nærheten av det teoretiske.

ORDEN I SYSAKENE = EFFEKTIVITET I DET LANGE LØP Binære søketrær og Hash-tabeller: Fantastiske instrumenter for å holde orden på data. Det er ingen ting som heter gratis lunsj. Binære trær krever kontinuerlig rebalansering. Hashtabeller må rehashes når de er fulle. KONTINUERLIG VEDLIKEHOLD Lignende situasjon: Refaktorering av kode Må vi søke sekvensielt gjennom koden, eller har den en stuktur som gjør at vi finner raskere frem?

ALGORITMENES GRENSER Problemer uten praktiske løsninger Optimalisering: Traveling salesman. Distribusjon av aviser. Timeplaner. Ryggsekkproblemet. Knekke koder: Ikke umulig, bare uhåndterlig. Dette har ikke bare akademisk interresse. Dårlige nyheter: Vi må være fornøyd med det brukbare. Gode nyheter: Vi kan slå oss til ro med det brukbare. Bedre (?) nyheter: Vi kan strebe mot det optimale og være trygge på at vi aldri kommer helt i mål.

IV. EVALUERING

EVALUERING Evalueringsskjema på it s learning. Kommentarer til vurderingsopplegget. (Obligatoriske innleveringer) Gjenta gjerne ting dere har sagt før. Det er fint å samle tingene svart på hvitt. Sluttspørsmål: Eksakt ett svar på hvert spørsmål. (i) En ting som fungerte (ii) En ting som ikke fungerte (iii) Hva vil du ha mer av? (iv) Hva vil du ha mindre av?

V. OPPGAVER

EKSAMENSOPPGAVER: Her er fjorårets eksamen: Eksamen 2013v Flere oppgaver og løsningsforslag