Dynamisk programmering. Hvilke problemer? Overlappende delproblemer. Optimalitetsprinsippet

Like dokumenter
Dynamisk programmering. Hvilke problemer? Overlappende delproblemer. Optimalitetsprinsippet

Dynamisk programmering. Hvilke problemer? Optimalitetsprinsippet. Overlappende delproblemer

Dynamisk programmering

Dynamisk programmering

Dynamisk programmering Undervises av Stein Krogdahl

Dagens stoff er hentet fra kapittel 9 i læreboka, samt kapittel 20.5 (som vi «hoppet over» sist)

IT1105 Algoritmer og datastrukturer

Anvendelser. Kapittel 12. Minste kvadraters metode

Balanserte søketrær. AVL-trær. AVL-trær. AVL-trær høyde AVL AVL. AVL-trær (Adelson-Velskii og Landis, 1962) Splay-trær (Sleator og Tarjan, 1985)

Geometriske operasjoner

EKSAMEN I FAG SIF5040 NUMERISKE METODER Tirsdag 15. mai 2001 Tid: 09:00 14:00

MoD233 - Geir Hasle - Leksjon 10 2

MA1301 Tallteori Høsten 2014

Løsningsforslag øving 10 TMA4110 høsten 2018

Simpleksmetoden. Initiell basistabell Fase I for å skaffe initiell, brukbar løsning. Fase II: Iterativ prosess for å finne optimal løsning Pivotering

Appendiks 1: Organisering av Riksdagsdata i SPSS. Sannerstedt- og Sjölins data er klargjort for logitanalyse i SPSS filen på følgende måte:

Sorterings- Algoritmer

Alternerende rekker og absolutt konvergens

TMA4240/4245 Statistikk Eksamen august 2016

TALLSVAR. Det anbefales at de 9 deloppgavene merket med A, B, teller likt uansett variasjon i vanskelighetsgrad. Svarene er gitt i << >>.

Geometriske operasjoner

Forelesning nr.3 INF 1411 Elektroniske systemer. Parallelle og parallell-serielle kretser Kirchhoffs strømlov

TMA4265 Stokastiske prosesser

Statistikk og økonomi, våren 2017

EKSAMEN Løsningsforslag

(iii) Når 5 er blitt trukket ut, er det tre igjen som kan blir trukket ut til den siste plassen, altså:

Eksamen i emne SIB8005 TRAFIKKREGULERING GRUNNKURS

Løsningsforslag ST2301 Øving 8

Illustrasjon av regel 5.19 om sentralgrenseteoremet og litt om heltallskorreksjon (som i eksempel 5.18).

Fourieranalyse. Fourierrekker på reell form. Eksempel La. TMA4135 Matematikk 4D. En funksjon sies å ha periode p > 0 dersom

EKSAMEN ny og utsatt løsningsforslag

Forelesning nr.3 INF 1410

ØVINGER 2017 Løsninger til oppgaver

Løsningskisse for oppgaver til uke 15 ( april)

INF2310 Digital bildebehandling

Anvendelser. Plass og tid. INF2310 Digital bildebehandling. Eksempler: Plassbehov uten kompresjon. Forelesning 10. Kompresjon og koding I

UNIVERSITETET I OSLO

TALLSVAR. Det anbefales at de 9 deloppgavene merket med A, B, teller likt uansett variasjon i vanskelighetsgrad. Svarene er gitt i <<< >>>.

Oppgaver. Multiple regresjon. Forelesning 3 MET3592 Økonometri ved David Kreiberg Vår 2011

Fast valutakurs, selvstendig rentepolitikk og frie kapitalbevegelser er ikke forenlig på samme tid

Forelesning 17 torsdag den 16. oktober

Forelesning nr.3 INF 1411 Elektroniske systemer

STK1100 våren 2015 P A B P B A. Betinget sannsynlighet. Vi trenger en definisjon av betinget sannsynlighet! Eksemplet motiverer definisjonen:

INF 2310 Digital bildebehandling

i kjemiske forbindelser 5. Hydrogen har oksidasjonstall Oksygen har oksidsjonstall -2

Korteste-vei problemet Nettverksflyt med øvre begrensninger Maksimum-flyt problemet Teorem: Maksimum-flyt Minimum-kutt

X ijk = µ+α i +β j +γ ij +ǫ ijk ; k = 1,2; j = 1,2,3; i = 1,2,3; i=1 γ ij = 3. i=1 α i = 3. j=1 β j = 3. j=1 γ ij = 0.

STK desember 2007

EKSAMEN Ny og utsatt Løsningsforslag

EKSAMEN I FAG SIF8052 VISUALISERING MANDAG 21. MAI 2001 KL LØSNINGSFORSLAG

Seleksjon og uttak av alderspensjon fra Folketrygden

Eksamen ECON 2200, Sensorveiledning Våren Deriver følgende funksjoner. Deriver med hensyn på begge argumenter i e) og f).

Innkalling til andelseiermøte

TMA4265 Stokastiske prosesser

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Fleksibelt arbeidsliv. Befolkningsundersøkelse utført for Manpower September 2015

Studieprogramundersøkelsen 2013

Veiledning til obligatorisk oppgave i ECON 3610/4610 høsten N. Vi skal bestemme den fordeling av denne gitte arbeidsstyrken som

MAT1030 Diskret Matematikk

Norske CO 2 -avgifter - differensiert eller uniform skatt?

Oppgave 3, SØK400 våren 2002, v/d. Lund

Løsningsskisse til eksamen i TFY112 Elektromagnetisme,

Definisjon: Et sortert tre

2006/27 Notater 2006 Om samordning av utvalg ved bruk av PRN-tall

Adaptivt lokalsøk for boolske optimeringsproblemer

NOEN SANNSYNLIGHETER I BRIDGE Av Hans-Wilhelm Mørch.

Løsning til seminar 3

Forelesning 4 og 5 MET3592 Økonometri ved David Kreiberg Vår 2011

Automatisk koplingspåsats Komfort Bruksanvisning

C(s) + 2 H 2 (g) CH 4 (g) f H m = -74,85 kj/mol ( angir standardtilstand, m angir molar størrelse)

Sluttrapport. utprøvingen av

Auksjoner og miljø: Privat informasjon og kollektive goder. Eirik Romstad Handelshøyskolen Norges miljø- og biovitenskapelige universitet

DEN NORSKE AKTUARFORENING

Alderseffekter i NVEs kostnadsnormer. - evaluering og analyser

Sparing gir mulighet for å forskyve forbruk over tid; spesielt kan ujevne inntekter transformeres til jevnere forbruk.

UNIVERSITETET I OSLO

De normalfordelte: x og sd for hver gruppe. De skjevfordelte og de ekstremt skjevfordelte: Median og kvartiler for hver gruppe.

Magnetisk nivåregulering. Prosjektoppgave i faget TTK 4150 Ulineære systemer. Gruppe 4: Rune Haugom Pål-Jørgen Kyllesø Jon Kåre Solås Frode Efteland

Litt om empirisk Markedsavgrensning i form av sjokkanalyse

Oppgaven består av 9 delspørsmål som anbefales å veie like mye, Kommentarer og tallsvar er skrevet inn mellom <<, >>, Oppgave 1

TMA4300 Mod. stat. metoder

INF Algoritmer og datastrukturer

COLUMBUS. Lærerveiledning Norge og fylkene. ved Rolf Mikkelsen. Cappelen Damm

STK1000 Innføring i anvendt statistikk Eksamensdag: Tirsdag 12. desember 2017

Søking i strenger. Prefiks-søking Naiv algoritme Knuth-Morris-Pratt-algoritmen Suffiks-søking Boyer-Moore-algoritmen Hash-basert Karp-Rabin-algoritmen

Terrasser TRAPPER OG REKKVERK LAG DIN EGEN UTEPLASS! VÅRE PRODUKTER HAR LANG LEVETID OG DU VIL HA GLEDE I DET DU HAR BYGGET I MANGE ÅR FREMOVER

Tillegg 7 7. Innledning til FY2045/TFY4250

Tema for forelesningen var Carnot-sykel (Carnot-maskin) og entropibegrepet.

Makroøkonomi - B1. Innledning. Begrep. Mundells trilemma 1 går ut på følgende:

Samfunnsøkonomi andre avdeling, mikroøkonomi, Diderik Lund, 18. mars 2002

NA Dok. 52 Angivelse av måleusikkerhet ved kalibreringer

En teoretisk studie av tv-markedets effisiens

Notater til INF2220 Eksamen

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

Turingmaskiner.

Lars Vidar Magnusson Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting

Notater. Marie Lillehammer. Usikkerhetsanalyse for utslipp av farlige stoffer 2009/30. Notater

Dagens plan. INF Algoritmer og datastrukturer. Koding av tegn. Huffman-koding

1653B/1654B. Installasjonstest på et IT anlegg i drift

Oppvarming og innetemperaturer i norske barnefamilier

Transkript:

Dynamsk programmerng Metoden ble formalsert av Rchard Bellmann (RAND Corporaton på -tallet. Programmerng betydnngen planlegge, ta beslutnnger. (Har kke noe med kode eller å skrve kode å gøre. Dynamsk for å ndkere at det er en stegvs prosess. Men også et pynteord. Hvlke problemer? Dynamsk programmerng brukes typsk tl å løse optmalserngsproblemer. (Problemer hvor det kan være mange mulge løsnnger, og hvor v ønsker å fnne den beste optmere en obektvfunkson. Skal v kunne løse et problem med dynamsk programmerng, må det kunne deles opp mndre og mndre bter helt tl v kommer tl et delproblem så lte at løsnngen lett kan fnnes. V starter med løsnngene på små delproblemer, og kombnerer dsse tl løsnnger på større delproblemer, helt tl v har løsnngen på hele problemet. Skal dynamsk programmerng være en egnet metode (rask, godt svar må: optmaltetsprnsppet p pp holde, delproblemer må overlappe, og antall delproblemer være polynomsk. Optmaltetsprnsppet Gtt et optmalserngsproblem, og en funksonen combne som kombnerer løsnnger på delproblemer tl løsnnger på større problemer, så ser v at optmaltetsprnsppet holder hvs følgende alltd er sant: Hvs S = combne(s, S,, S m, og S er en optmal løsnng på sn problemnstans, Overlappende delproblemer En dynamsk programmerngs-algortme starter med å løse de mnste delproblemene, og setter sammen dsse løsnngene tl løsnnger på større og større problemer. Hvs samme delproblem forekommer flere ganger, unngår v dobbeltarbed. Løsnngene på delproblemene lagres nemlg, og v slpper å løse dette delproblemet flere ganger. så er S, S,, S m optmale løsnnger på sne respektve problemnstanser. Hvs optmaltetsprnsppet holder, er problemet egnet for løsnng med dynamsk programmerng. Da genereres bare optmale løsnnger på delproblemer når v starter fra optmale løsnnger på de mnste delproblemene, og kombnerer dsse tl løsnnger på større problemer.

Overlappende delproblemer En dynamsk programmerngs-algortme starter med å løse de mnste delproblemene, og setter sammen dsse løsnngene tl løsnnger på større og større problemer. Hvs samme delproblem forekommer flere ganger, unngår v dobbeltarbed. Løsnngene på delproblemene lagres nemlg, og v slpper å løse dette delproblemet flere ganger. Dvde and conquer vs. Dynamsk programmerng g Dvde d and conquer (f.eks Qucksort op down (rekursvt kall Best egnet når delproblemene er uavhengge av hverandre. Da re-beregnes kke løsnnger på delproblemer. Kun relevante delproblemer løses. Dynamsk programmerng Bottom up Egnet når delproblemer overlapper, ettersom løsnnger lagres en tabell og v kan slå opp når v støter på et delproblem v har løst. Ulempen er at v beregner løsnnger på alle delproblemer. Metodene kan kombneres, såkalt memoserng, en dvde and conquer algortme kan lagre løsnnger på delproblemer en tabell og slå opp for å unngå dobbeltarbed. Fre enkle(? steg. Beskrv strukturen problemet, hvordan en løsnng er satt sammen av delløsnnger. Verfser at optmalserngsprnsppet faktsk holder.. Lag en formel for verden av en optmal løsnng (ut fra verden av av optmale delløsnnger.. Beregn verden tl en optmal løsnng, bottom up (lagre verden av optmale delløsnnger en tabell. (kap.. En streng P er en k-approksmason av en streng dersom kan konverteres tl P ved å utføre maksmalt k av følgende operasoner: Substtuson Et symbol byttes ut med et annet. llegg Et nytt symbol legges tl. Slettng Et symbol slettes fra. Edt dstance, ED(P,, mellom to strenger P og er det mnste antall slke operasoner som trengs for å konvertere P tl.. Konstruer en optmal løsnng ut fra beregnede verder. (Om v faktsk ønsker løsnngen, og kke bare nøyer oss med verden av en optmal løsnng. Eks. logarthm alogarthm algarthm algorthm (+a, -o, a/o P

.. Gtt to strenger og P, ønsker v å fnne edt dstance mellom dsse. Gtt to strenger og P, ønsker v å fnne edt dstance mellom dsse. La D [ ] = ED( P [: ], [: ]. (Edt dstance mellom delstrenger La D [ ] = ED( P [: ], [: ]. (Edt dstance mellom delstrenger V deler følgende delproblemer: V deler følgende delproblemer:. Hvs P [ ] = [ ], så er D [ ] = D [ -, -]. a P[: ] = a [: ]. Hvs P [ ] [ ], tenker v oss en optmal sekvens av operasoner som transformerer [: ]tlp P [: ]. Den sste operasonen, for å få [ ] = P [ ], kan være: Substtuson sette [ ] = P [ ], llegg legge tl symbol pos [ ], Slettng slettng symbol på pos [ ].. Substtuson sette [ ] = P [ ] a n n e P[: ] a n n f [: ] llegg legge tl symbol pos [ ] slettng av P [ ] a n n e P[: ] a n n [: ] Regner ut D [ ] ved å fnne D [ -, -] (edt dstance for det grå området, og legger tl for substtusonen. Å legge tl en e er det samme som å slette en P. Regner ut D [ ] ved å fnne D [ -, ](edt dstance for det grå området, og legger tl for slettngen P.. Formelen (rekursv defnson for ] vl altså være som følger:, ] = mn{ D [, ] +, D [, +, D [ ] + substtuson tllegg slettng slettng P, ] =, ] =, ] =. } hvs P[ ] = [ ellers Løsnngen, edt dstance mellom strengene, fnnes m,n] (P er av lengde m og av lengde n. Slettng slettng symbol på pos [ ] a n n P[: ] a n n e [: ] Regner ut D [ ] ved å fnne D [, -] (edt dstance for det grå området, og legger tl for slettngen.

.. Formelen (rekursv defnson for ] vl altså være som følger: Formelen (rekursv defnson for ] vl altså være som følger:, ] = mn{, ] +,, +, ] + substtuson tllegg slettng slettng P, ] =, ] =, ] =. } hvs P[ ] = [ ellers, ] = mn{, ] +,, +, ] + substtuson tllegg slettng slettng P, ] =, ] =, ] =. } hvs P[ ] = [ ellers - - - -...... - - - - +./../. functon EdtDstance ( P [:n ], [:m ] for to n do ] for t to m do, ] for to n do for to m do If P [ ] = [ ] then ] -, - ] else ] mn { -, - ] +, -, ]+ +, - ] + } endf endfor endfor return( n, m ] end EdtDstance eks. P D a n e a del del ns n n e

./. eks. D a n e V er gtt en sekvens M, M,, M n - av matrser og ønsker å beregne produktet M M M n -. V gør dette ved å sette parenteser, og multplsere par av matrser, f.eks slk: P a del del ns n n e M M M M = (M (M M M Parentesene kan settes på mange måter: (M (M (M M (M ((M M M ((M M (M M ((M (M M M (((M M M M Kostnaden (antall skalare multplkasoner kan varere veldg mellom de ulke måtene å sette parenteser på. Gtt to matrser A = p q matrse, B = q r matrse. Kostnaden (antall skalare multplkasoner ved å beregne A B er p q r (A B er en p r matrse. Eks. Beregn A B C, hvor A er en matrse, B er en matrse, og C er en matrse. Å beregne D = (A B koster, og gr en matrse. Å beregne D C koster,. otal kostnad for (A B C blr,. Å beregne E = (B C koster, og gr en matrse. Å beregne A E koster,. otal kostnad for A (B C blr,.. Gtt en sekvens av matrser M, M,, M n -, ønsker v å beregne produktet på bllgst mulg måte v må fnne optmal parentes-struktur. En parenterserng av sekvensen er en oppdelng to delsekvenser, som hver for seg må parenterseres: (M M M k (M k + M k + M n- V må prøve alle mulge k for å fnne hvor det er best å dele sekvensen. Hvert delngspunkt gr opphav tl to delproblemer parenterserng av venstre og høyre delsekvens. Består sekvensen bare av en matrse, er denne en parenterserng av seg selv. Har v en optmal parenterserng av en sekvens av matrser, så må parenterserngen av hver delsekvens også være optmal. Ellers kan v o bare bytte ut den som kke var optmal med en bedre en. (Optmaltetsprnsppet holder.

.. La d, d,, d n være dmensonene tl sekvensen av matrser M, M,, M n-, slk at matrse M har dmenson d d +. d La m være kostnaden av en optmal parenterserng av M, M +,, M Formelen (rekursv defnson for m vl være som følger: m, m { m + m + d d d }, for alle < n, = mn k k, k + + k<,, 9,,, m, =, for alle n,,,,,,,, Kostnaden av å utføre multplkasonen med den optmale parenterserngen fnner v m,n -../. d m m, = mn(d d d + m(, + m(,, d d d + m(, + m(,,, d d d + m(, + m(, = mn( + +,,,, +, +,, +, + 9,,,,,,,,,,, M M M M = M (M M M = (M M (M M c = (M M M M m,,, 9,,,,,,,,,,,

./.. m, c c,, 9,,,,,,,,,,, M M M M M M = (M M M (M M M = ((M (M M ((M M (M./. Optmale søketrær functon OptmalParens( d[ : n ] for to n- do m[ ] for dag to n do // helpevarabel for å fylle ut tabellen nvå for nvå for to n dag do + dag m[ for k to do q m[ k] + m[k +, + d[] d[k + ] d[ + ] f q < m[ then m[ q c[ k endf return m[, n ] end OptmalParens Pat Joe Ray Ann

Optmale søketrær Pat Optmale søketrær Pat Joe Ray Joe Ray Ann Ann Ann Joe Pat Ray p p p p q q q q q Ann Joe Pat Ray p p p p q q q q q Gennomsnttlg søketd: p + p + p + p + q + q + q + q + q Optmale søketrær For generelle søketrær får v følgende formel for gennomsnttlg antall sammenlknnger som gøres: et tre med n nøkler (søkeord lagret nterne noder K,, K n-. n+ bladnoder tlsvarer ntervaller I,, I n mellom nøklene. n sannsynlghetsvektorer p og q for nøklene og ntervallene mellom dem. d er nvået tl nøkkel K, e er nvået tl bladnode som korresponderer med I. n A (, n, p, q = p( d + + n = = qe Optmale søketrær Hvs p -ene er lke og q -ene er lke, vl det komplette bnære søketreet være det optmale. Men noen ord kan være oftere søkt etter enn andre (p -ene ulke, derfor kan det lønne seg med skeve trær og deltrær, for å få ord som det ofte blr søkt etter så høyt som mulg opp treet. V ønsker å fnne det optmale bnære søketreet over alle mulge, gtt søkesannsynlghetene (p -ene og q -ene. Dvs treet som mnmerer gennomsnttlg antall sammenlknnger A(,n,p,q: mn A(, n, P, Q p -ene og q -ene er utgangspunktet sannsynlgheter (tall ntervallet [,], som summerer tl, men v kan slakke på kravet og anta at de er postve reelle tall, det er uansett bare tall som sammenlknes. n La σ ( p, q = + n p q = =

. Optmale søketrær Et bnært tre for nøklene K, K n- består av en rot med nøkkel K, og to deltrær L og R. K. Optmale søketrær La være et søketre for nøklene K,, K, n. ( er det tomme treet om <. K,, K - K +,, K n - p,, p - p +,, p n - q,, q p +,, q n V må prøve alle mulge røtter K for å fnne hvor det er best å dele treet. t Hver mulge rot gr opphav tl to delproblemer optmalserng av de korresponderende venstre og høyre deltrærne. La + σ ( = + p k q k k = k = Formelen (rekursv defnson for A( vl være som følger: A( = mn{ A ( + A ( } + σ ( ( = k k +, k A( = + + σ( Gennomsnttlg antall operasoner for treet er gtt ved: A (, n, p, q A ( L, p,..., p, q,..., q + A ( R, n +, p,..., p, q,..., q + σ ( p, q = + n + n Kostnaden av det optmale treet fnner v A(,n-. For enkelthets skyld skrver v A( = A(L + A(R + σ(p,q./. Optmale søketrær Fyller ut ulke typer tabeller En algortme kan nå relatvt enkelt lages ved å fylle ut en tabell med verdene for A( som defnert av formelen (samme måte som for matrsemultplkason: Bottom up A( = mn{ A(, k + A( k +, } + σ ( k A( = + + σ ( I tllegg tl verden A( må også en representason av de aktuelle trærne vedlkeholdes, slk at v fnner selve treet.

Korteste st (alle tl alle Floyd [ Blank ] V skal fnne korteste st mellom alle par av noder en graf G=(V,E. Kantene har lengde, men v antar at det kke fnnes negatve sykler.. En st p =< < v,, v k, > fra node tl node består av endenodene og, og nternnodene v,, v k. For alle par av noder,, ser v på korteste ster fra tl som består av nternnoder fra mengden {v,, v k }, og lar p være en av dsse. Hvs v k er en nternnode p, består p av delstene p (fra tl v k og p (fra v k tl. Delstene p og p er ster med nternnoder fra mengden {v,, v k - }; og p og p er korteste ster fra tl v k og fra v k tl, ellers vlle kke p vært en korteste st fra tl. Hvs k kke er en nternnode p, er p en korteste st fra tl med nternnoder fra mengden {v,, v k - }. (Optmaltetsprnsppet holder. Korteste st (alle tl alle Floyd. La d (k være lengden av korteste t st fra tl med dnternnoder fra mengden {v,, v k }. Når k = kan kke sten bestå av nternnoder det hele tatt og d ( vl altså tlsvare lengden av kanten. (V bruker w for lengden av kanten. En rekursv defnson av d (k vl være som følger: d w ( k ( k ( k mn{ d, dv + d k v k } v k kke med v k med sten ( k = hvs k = hvs k Matrsen D (n = ( d (n, hvor n er antall noder grafen, vl nneholde lengden av de korteste stene mellom alle par av noder. (Alle noder er nå lovlge mellomnoder.. Korteste st (alle tl alle Floyd functon FloydWarshall ( W n rows( W D ( = W for k to n do for to n do for to n do d (k mn( d (k-, d (k- k + d (k- k endfor endfor endfor return(d (n end FloydWarshall

Korteste st (alle tl alle Floyd - - Korteste st (alle tl alle Floyd - - D ( = Korteste st (alle tl alle Floyd - - D ( = Korteste st (alle tl alle Floyd - - D ( =

Korteste st (alle tl alle Floyd - - D ( = Korteste st (alle tl alle Floyd - - D ( = Korteste st (alle tl alle Floyd - - D ( =