INF 295 Algoritmer og datastrukturer Forelesning 22 Teknikker for algoritmeutvikling Hans Fr. Nordhaug/ Ola Bø.

Slides:



Advertisements
Liknende presentasjoner
Harald Tronstad
Advertisements

TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Kristian Veøy
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”
Algoritmer for søk og sortering Førsteamanuensis Alf Inge Wang
Ulike sorteringsmetoder Kompleksitet av dem
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF 4130: Algoritmer: Design og effektivitet Eksamensdag:15. desember 2010.
Masterforedrag 2006 Mats Erik Smestad. Masteroppgave Use of Kernighan-Lin in an IDS.
Memoisering og dynamisk programmering
Forside Introduksjon Fibonacci-tall Memoisering DP Neste uke Spørsmål Introduksjon til memoisering og dynamisk programmering Åsmund Eldhuset asmunde *at*
Øvingsforelesning 3 Grafer, BFS, DFS og hashing
Kompleksitetsanalyse
Øvingsforelesning 2 Trær og søking i dem, samt litt diverse emner Kristian Veøy
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ø)
Algoritmiske metoder Innhold: Effektivitetsbetraktninger Programmeringsteknikker Datastrukturer Algoritmer tilknyttet datastrukturene Lærebok: Hafting/Ljosland:
Klargjøring fra forrige gang
Mer om programmering av aggregeringer Repetisjon: Komposisjon og aggregering En register-klasse: modellering En register-klasse: implementering Sortering.
Kapittel 11 Rekursjon Å tenke rekursivt Rekursjon er ein programmeringsteknikk der ein metode kallar seg sjølv for å fullføre ei oppgåve For å kunne.
Algoritmer og Datastrukturer
Kap 02 Tabeller / Tabelloperasjoner. Enkeltvariable Les inn nedbørmengde for årets 12 måneder: Les n1 Les n2 … Les n12 n1 n2 n12.
Hvordan uttrykke krav Kapittel 4.4. Innledning Målet er å samles rundt ett entydig språk som ikke kan misforståes eller feiltolkes. Gjør sporbarheten.
Legg merke til import av strøm på vinterstid.
Dynamisk programmering
INF 295 Algoritmer og datastrukturer Forelesning 21 Merge, Quick og Bøtte, Radix og ekstern sortering Hans Fr. Nordhaug (Ola Bø)
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 Algoritmer og datastrukturer Forelesning 2 - kapittel 1 Hans F. 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ø)
Hovedfagspresentasjon
PROST årsmøte /05/ Frode Martinsen, dr.ing.stud., teknisk kybernetikk Optimalisering i ulineær model prediktiv regulering (NMPC)
INF 4130 Eksamen 2008 Gjennomgang.
Magnus Haug Algoritmer og Datastrukturer
AI - Kunstig Intelligens
Kapping av plater Mål: Vi skal lage komponenter for en møbelfabrikk ut fra standardiserte plater på 12 x 24 dm. Komponentene har lengde og bredde oppgitt.
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
INF 295 forelesning 12 Repetisjon per 17. februar Hans F. Nordhaug (Ola Bø)
Alg. Dat Øvingsforelesning 11 Dynamisk programmering, grådighet
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ø)
Forside Intro Fibonacci-tall Memoisering DP Longest increasing subsequence Betingelser Matrise- multiplikasjon Longest common subsequence Grådig vs. DP.
Sorterings- Algoritmer Algoritmer og Datastrukturer.
Regresjon Petter Mostad
INF 295 Algoritmer og datastrukturer Web-spider Oblig 3 Hans Fr. Nordhaug (Ola Bø)
Finne feil - Debugging Introduksjon til sortering.
Matematikk 1 årskurs 26. oktober 2009
INF 295 Algoritmer og datastrukturer Forelesning 23 Kompleksitet Hans Fr. Nordhaug/ Ola Bø.
Kap. 9 – Computer Intelligence How Information Technology Is Conquering the World: Workplace, Private Life, and Society Professor Kai A. Olsen,
Memoisering og dynamisk programmering Magnus Botnan botnan at stud.ntnu.no 23/
1 Øvingsforelesning 4 Topologisk sortering Minimale spenntrær Håkon Jacobsen
Sudoku Mål: Lage et enkelt system som løser Sudoku-oppgaver.
De fire regneartene.
Øvingsforelesning 10 Grådighet
Utskrift av presentasjonen:

INF 295 Algoritmer og datastrukturer Forelesning 22 Teknikker for algoritmeutvikling Hans Fr. Nordhaug/ Ola Bø

Teknikker Grådige algoritmer Splitt og hersk (Divide and Conquer) Dynamisk programmering Tilfeldige algoritmer Tilbakefølgingsalgoritmer (Backtracking)

Grådige algoritmer Eksempler: Dijsktra, Prim, Kruskal, planproblem, filkomprimering (Huffman koder), veksling Algoritmene virker ved at lokalt optimum alltid velges. Når kjøringen er ferdig, håper man at globalt optimum er det samme som lokalt. Det er ikke gitt at man finner globalt optimum.

Splitt og hersk Eksempler: Mergesort, Quicksort, nærmeste punkt, Quickselect Splitt: Gjør problemet mindre og mindre (rekursivt) Hersk: Setter sammen løsningen fra underproblemene. Typisk kjøretid er O(N log N)

Dynamisk programmering Eksempler: Floyd, Fibonacci, rekkefølge for matrisemultipkiasjoner, optimalt binært tre … Problemet må kunne deles opp (gjentatte ganger) i enkle delproblem som kan defineres lett og dermed lagres i en tabell. Løsning (optimum) for problemet må kunne settes sammen av løsning for delproblem. Ofte en omskriving av en rekursiv metode.

Tilfeldige algoritmer Eksempler: Quicksort, Skiplister, primtalltesting Bruker tilfeldig tall (minst en gang) i algoritmen for å ta en avgjørelse. Man oppnår ikke bedre kjøretid, men ingen inndata er dårlig. Krever en generator for tilfeldige tall. (Pseudo)

Backtracking Eksempler: Møbelplassering, rekonstruksjon av posisjon, dataspill (strategi) Smartere komplett søk – gjerne ved hjelp av pruning (fjerning). Man prøver ikke alle muligheter, men avslutter tidlig ved uønsket resultat.

Flere teknikker Følgende teknikker er ikke del av læreboka, men likevel verdt å kjenne: Rå kraft (Brute force) Mink og hersk (decrease …) Transformer og hersk Iterativ forbedring

Rå kraft Eksempler: Utvalgs- og boblesortering, sekvensielt søk, tekstmatching, nærmeste punkt, uttømmende søk. Betegner alle algoritmer hvor man lar datamaskinen gjøre jobben – man bruker ikke intellektet for å lage en god algoritme. Som regel følger algoritme direkte av problembeskrivelsen.

Mink og hersk Eksempler: Innstikkssortering, DFS, BFS, permutasjonsgenerator, Quickselect, polynommultiplikasjon, gcd. Mink med konstant (en), konstant faktor eller variable faktor. Utnytter sammenheng mellom løsning på en instans av problemet og løsning på en mindre instans av problemet. Trenger ikke være rekursiv.

Transformer og hersk Eksempler: Presorting, Gauss eliminasjon, Heapsort, Horners regel. Transformering av instans, representasjon eller problem. Den nye instansen løses enklere. Problemtransformering er radikal, men svært effektiv hvis man har en god/bedre algoritme for det andre problemet.

Iterativ forbedring Aktuelt for optimaliseringsproblemer. Eksempler: Lineær programmering (simplex), maksimum strøm, Man tar en brukbar løsning og forbedrer den steg for steg. (Minner om grådig.) Mulige problemer: Finne initiell løsning Hvilke endringer er tillatt Lokalt vs globalt optimum