Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

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

Liknende presentasjoner


Presentasjon om: "INF 295 Algoritmer og datastrukturer Forelesning 22 Teknikker for algoritmeutvikling Hans Fr. Nordhaug/ Ola Bø."— Utskrift av presentasjonen:

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

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

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

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

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

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

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

8 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

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

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

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

12 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


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

Liknende presentasjoner


Annonser fra Google