Algoritmedesign Den grådige metode

Relaterede dokumenter
Den grådige metode 2

Videregående Algoritmik. David Pisinger, DIKU. Reeksamen, April 2005

Induktionsbevis og sum af række side 1/7

Men tilbage til regression og Chi-i-anden. test. Begge begreber refererer til normalfordelingen med middelværdi μ og spredning σ.

Kvalitet af indsendte måledata

Scorer FCK "for mange" mål i det sidste kvarter?

BEVISER TIL KAPITEL 7

Løsningsforslag til skriftlig eksamen i Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

x-klasserne Gammel Hellerup Gymnasium

Økonometri 1. For mange variable i modellen. For få variable. Dagens program. Den multiple regressionsmodel 21. september 2004

Kombinatorik. 1 Kombinationer. Indhold

Økonometri 1. Funktionel form. Funktionel form (fortsat) Dagens program. Den simple regressionsmodel 14. september 2005

Økonometri 1. Definition og motivation. Definition og motivation. Dagens program. Den multiple regressionsmodel 21. september 2005

Få overblik over dit liv - og fokus på det vigtige

Elementær Matematik. Sandsynlighedsregning

Statistisk analyse. Vurdering af usikkerhed i forbindelse med statistiske opgørelser forudsætter:

Noter om kombinatorik, Kirsten Rosenkilde, februar Kombinatorik

FACITLISTE TIL KOMPLEKSE TAL

Kontrol af udledninger ved produktion af ørred til havbrugsfisk

Vi ønsker også at teste hypoteser om parametrene. F.eks: Kan µ tænkes at være 0 (eller anden fast, kendt værdi)? Eksempel: dollarkurser

DATV: Introduktion til optimering og operationsanalyse, Bin Packing Problemet

Finanskalkulationer Side 1/19 Steen Toft Jørgensen. Finanskalkulationer. avanceret rentesregning. matematiske modeller i økonomi

Til dig, der er lærerstuderende Kender du VIA CFU Center for Undervisningsmidler?

Lys og gitterligningen

VELKOMMEN TIL DEN NYE SKOLE NYE FAG

vejer (med fortegn). Det vil vi illustrere visuelt og geometrisk for (2 2)-matricer og (3 3)-matricer i enote 6.

antal gange krone sker i første n kast = n

Supplerende noter II til MM04

FY01 Obligatorisk laboratorieøvelse. O p t i k. Jacob Christiansen Afleveringsdato: 3. april 2003 Morten Olesen Andreas Lyder

Dagens program. Estimation: Kapitel Eksempler på middelrette og/eller konsistente estimator (de sidste fra sidste forelæsning)

Elementær Matematik. Polynomier

IKKE-KONTINUERTE (DISKRETE) STOKASTISKE VARIABLE MIDDELVÆRDI, VARIANS, SPREDNING FORDELINGER: HYPERGEOMETRISK, BINOMIAL, POISSON

hvor i er observationsnummeret, som løber fra 1 til stikprøvestørrelsen n, X i

1.0 FORSIKRINGSFORMER

Administartive oplysninger.

Eksempel: PEFR. Epidemiologi og biostatistik. Uge 1, tirsdag. Erik Parner, Institut for Biostatistik.

Avl med kort og langpelsede hunde

Matematik A. Studentereksamen. Forberedelsesmateriale. Forsøg med digitale eksamensopgaver med adgang til internettet.

1 Løsning og mindste kvadraters løsninger af lineære ligningssystemer

Kvantitative metoder 2

Statistik ved Bachelor-uddannelsen i folkesundhedsvidenskab

Kogebog: 5. Beregn F d

Pearsons formel for χ 2 test. Den teoretiske forklaring

Noter om kombinatorik, Kirsten Rosenkilde, februar Kombinatorik

Note til Spilteori Mikro 2. år 2. semester Erik Bennike. Note til Spilteori

Formelskrivning i Word 2. Sådan kommer du i gang 4. Eksempel med skrivning af brøker 5. Brøker skrevet med småt 6. Hævet og sænket skrift 6

FORDELINGER: HYPERGEOMETRISK FORDELING, BINOMIALFORDELING MIDDELVÆRDI DEFINITION. X er en stokastisk variabel på et endeligt sandsynlighedsfelt ( )

Simpel Lineær Regression - repetition

Til dig, der er lærerstuderende Kender du VIA CFU Center for Undervisningsmidler?

Regressions modeller Hvad regresserer vi på og hvorfor? Anders Stockmarr Axelborg statistikgruppe 6/

Projekt 1.3 Brydningsloven

ADFÆRDS- PROBLEMER I SKOLEN

Analyse af algoritmer. Algoritmedesign med internetanvendelser ved Keld Helsgaun. Køretid. Algoritmebegrebet D. E. Knuth (1968)

Projekt 4.8 De reelle tal og 1. hovedsætning om kontinuerte funktioner

Repetition. Forårets højdepunkter

De reelle tal. Morten Grud Rasmussen 5. november Se Sætning 3.6 og 3.7 for forskellige formuleringer af egenskaben og dens negation.

Sandsynlighedsregning i biologi

MATEMATIK NOTAT 04 - LIGNINGER AF: CAND. POLYT. MICHEL MANDIX

Længde [cm] Der er frit vandspejle i sandkassen. Herudover er sandkassen åben i højden cm i venstresiden og 0-20 cm i højresiden.

Økonometri 1. Instrumentvariabelestimation 26. november Plan for IV gennemgang. Exogenitetsantagelsen. Exogenitetsantagelsen for OLS

Statistik Lektion 14 Simpel Lineær Regression. Simpel lineær regression Mindste kvadraters metode Kovarians og Korrelation

Projekt 9.10 St. Petersborg paradokset

bestemmes. kendes ( ) A i Subjektiv information + objektiv information Bayesiansk statistik (gang 10) Bayes sætning

Uge 37 opgaver. Opgave 1. Svar : Starter med at definere sup (M) og inf (M) :

Renteformlen. Erik Vestergaard

Kvadratisk 0-1 programmering. David Pisinger

Pension PO1 PO2 FO1 FO2 GRL 7) Arbejds markeds pension 5) ATPbidrag

Matematikkens mysterier - på et obligatorisk niveau. 7. Ligninger, polynomier og asymptoter

Notato: k grupper observeret tl tdspuktere (logartmerede) t1;t2;:::;t k. Tl tdspukt observeres et atal ( ) ph-vρrder, 1 ; 2 ;:::;. V opfatter dem som

9. Binomialfordelingen

Nanomaterialer Anvendelser og arbejdsmiljøforhold

Sportsfiskerforeningen ALS medlem af Danmarks Sportsfiskerforbund

Viden Om Vind oftere, stop i tide

HASTIGHEDSKORT FOR DANMARK VHA. GPS

cos(t), v(t) = , w(t) = e t, z(t) = e t.

Sprednings problemer. David Pisinger

Tankegangskompetence. Kapitel 9 Algebraiske strukturer i skolen 353

Trestemmig bloksats i rockarrangement - 1 Akkordtoner

INDKVARTERING. Der indkvarteres på Bording Skole Solsortevej Bording og på Invita Fabrikken Fabriksvej 7441 Bording.

Statistik Lektion 7. Hypotesetest og kritiske værdier Type I og Type II fejl Styrken af en test Sammenligning af to populationer

DATV: Introduktion til optimering og operationsanalyse, Følsomhed af Knapsack Problemet

3y MA, Steen Toft Jørgensen side 1/5 Helsingør Gymnasium. Definitioner, formler, sætninger og ideen i beviserne så det er muligt at huske beviserne.

L komponent produceret i linie 1

Definition: Normalfordelingen. siges at være normalfordelt med middelværdi µ og varians σ 2, hvor µ og σ er reelle tal og σ > 0.

Beregning af prisindeks for ejendomssalg

Bjørn Grøn. Analysens grundlag

Noter om Kombinatorik 2, Kirsten Rosenkilde, februar

Introduktion til optimering og operationsanalyse. Asymmetric Traveling Salesman Problem

Betænkning om kommunernes udgiftsbehov. Bilag (med metodediskussion af professor Anders Milhøj)

Danmarks Tekniske Universitet

Introduktion til uligheder

Facilitering ITU 15. maj 2012

1 Punkt- og intervalestimation Punktestimatorer: Centralitet(bias) og efficiens... 2

Claus Munk. kap. 1-3

Dagens forelæsning. Claus Munk. kap Obligationer Grundlæggende Intro. Obligationer Grundlæggende Intro. Obligationer Grundlæggende Intro

Løsninger til kapitel 7

Mikroøkonomi, matematik og statistik Eksamenshjemmeopgave december 2007

Med disse betegnelser gælder følgende formel for en annuitetsopsparing:

Spørgsmål 3 (5 %) Bestem sandsynligheden for at et tilfældigt valgt vindue har en fejl ved listerne, når man ved at der er fejl i glasset.

Hvorfor n-1 i stikprøvevariansen?

Transkript:

Agortmedesg De grådge metode 1 De grådge metode De grådge metode Et probem øses ved at foretage e række besutger Besutgere træffes e ad gage e eer ade rækkeføge Hver besutg er baseret på et grådgedskrterum Når e besutg er truffet, ædres de (sædvagvs) kke seere De grådge metode er et geeret paradgme t agortmedesg, der bygger på føgede to eemeter: Kofguratoer: forskege sæt af værder, der ska fdes Objektfukto: e score kyttet t kofguratoere, som v øsker at maksmere eer mmere Metode vrker bedst, år de avedes på probemer, der ar grådgt-vag-egeskabe: E gobat optma øsg ka atd fdes ved e række okae forbedrger ud fra e startkofgurato 3 4

Møtveksg Det fraktoee rygsækprobem Probem: Et beøb, der ska opås, og e samg møter, der ka bruges for at opå dette beøb Kofgurato: Det beøb, der edu mager at bve gvet t kude, pus de møter, der aerede er gvet Objektfukto: Ataet af møter (ska mmeres) Grådg metode: Beyt atd de størst muge møt Eksempe 1: Møtere er 1, 5, 10 og 5 cet Har grådgt-vag-egeskabe. tet beøb over 5 cet ka opås med et mmat ata møter ude brug af 5-cet møte (tsvarede for beøb uder 5 cet, me over 10 cet, og beøb uder 10 cet me, over 5 cet) Eksempe : Møtere er 1, 5, 10, 1 og 5 cet Har kke grådgt-vag-egeskabe. Beøbet 4 cet opås bedst med to 1 cet møter, me de grådge agortme gver e øsg med 5 møter (vke?) 5 Gvet: E mægde S af emer, vor vert eme ar b - e postv ytteværd (beeft) w - e postv vægt (wegt) Må: Væg emer med maksma samet ytteværd, me med samet vægt på øjst W Hvs det er mugt at tage vkårge brøkdee af emere, er der tae om det fraktoee rygsækprobem Lad x betege de mægde, v tager af emet (0 x w ) Må: Maksmer b ( x w ) "S Begræsg: " S x # W 6 Eksempe Agortme for det fraktoee rygsækprobem Emer: Vægt: Nytteværd: Værd: 3 (kr per m) 1 3 4 5 4 m 8 m m 6 m 1 m 1 kr 3 kr 40 kr 30 kr 50 kr 4 0 5 50 10 m rygsæk Løsg: 1 m af 5 m af 3 6 m af 4 1 m af Grådgt vag: Tag atd det eme, der ar størst værd (forodet meem ytteværd og vægt) " S b ( x w ) ( b w ) x " S Køretd: O( og ). Hvorfor? Korrekted: Atag, at der e bedre øsg, d.v.s. der fdes et eme med øjere værd ed et vagt eme j (x j > 0 og v > v j ), me vor x < w. Hvs v erstatter oget af j med oget af, ka v opå e bedre øsg. Hvor meget af eme ka v erstatte ude at ædre de samede vægt? Svar: m{w -x, x j Agortm fractoakapsack(s, W) put: set S of tems wt beeft b ad wegt w ; max. wegt W Output: amout x of eac tem to maxmze beeft wt wegt at most W for eac tem S do x 0 v b w {vaue w 0 {tota wegt we w < W do remove tem wt gest v x m{w, W - w w w x 7 8

Paægg af opgaver Agortme t opgavepaægg Gvet: e mægde T af opgaver (tasks), der ver ar et starttdspukt, s et suttdspukt, f (vor s < f ) Må: Udfør ae opgavere ved brug af så få masker som mugt Maske 3 Maske Maske 1 1 3 4 5 6 7 8 9 Grådgt vag: ord opgavere efter deres starttdspukt og brug så få masker som mugt med dee rækkeføge Køretd: O( og ). Hvorfor? Korrekted: Atag, at der fdes e bedre pa, d.v.s. agortme fder e øsg med m masker, me der fdes e øsg med m-1 masker. Lad m være de sdste maske, der aokeres af agortme, og ad være de første opgave, der udføres på dee maske. Opgave må være kofkt med m-1 adre opgaver. Der fdes derfor ge pa med ku m-1 masker. Agortm taskscedue(t) put: set T of tasks wt start tme s ad fs tme f Output: o-cofctg scedue wt mmum umber of maces m 0 {o. of maces we T s ot empty do remove task wt smaest s f tere s a mace j for te scedue o mace j ese m m 1 scedue o mace m 9 10 Eksempe Gvet: e mægde T af opgaver (tasks), der ver ar et starttdspukt, s et suttdspukt, f (vor s < f ) [1,4], [1,3], [,5], [3,7], [4,7], [6,9], [7,8] (ordet efter starttdspukt) Må: Udfør ae opgavere ved brug af så få masker som mugt De-og-ersk 7 9 4 " 4 7 9 7 " 7 9 4 " 4 9 Maske 3 Maske Maske 1 7 " 7 " 9 " 9 4 " 4 1 3 4 5 6 7 8 9 11 1

De-og-ersk Merge-sort (tbagebk) De-og-ersk er et geeret paradgme t agortmedesg De: opde ddata S to eer fere dsjukte demægder, S 1, S,... Løs: øs deprobemere rekursvt Hersk: komber øsgere for S 1, S,... t e øsg for S Basstfædet for rekursoe er deprobemer af tpas e størrese Merge-sort på e put-sekves S med eemeter består at tre tr: De: opde S to sekveser, S 1 og S, ver med crka eemeter Løs: sorter rekursvt S 1 og S Hersk: fet S 1 og S t e sorteret sekves Agortm mergesort(s, C) put sequece S wt eemets, comparator C Output sequece S sorted accordg to C f S.sze() > 1 (S 1, S ) partto(s, ) mergesort(s 1, C) mergesort(s, C) S merge(s 1, S ) Aayse ka foretages ved jæp af rekursosgger 13 14 Aayse med rekursosgger teratv substtuto Hersk-tret merge-sort består fetg af to sorterede sekveser, ver med eemeter Hvs der beyttes e ægtet ste, ka det gøres med øjst b skrdt for e kostat værd b Basstfædet bruger øjst b skrdt Hvs T() beteger køretde for merge-sort, ar v: " b vs < T() # $ T( ) b vs V ka derfor aaysere køretde for merge-sort ved at fde e øsg på ukket form for dee gg (d.v.s. e øsg, vor T() ku forekommer på vestre sde af gedsteget) Ved tekkke teratv substtuto aveder v getage gage rekursosgge på sg sev for at fde et møster: T() T( ) b (T( ) b( )) b T( ) b 3 T( 3 ) 3b 4 T( 4 ) 4b... T( ) b Basstfædet dtræffer, år, d.v.s. og T ( ) b b og V ka derfor kokudere, at T() er O( og ) 15 16

Rekursostræ Gæt-og-test-metode Teg rekursostræet for rekursosgge og ed efter et møster: dybde 0 1 kad 1 størrese " b vs < T() # $ T( ) b vs td b b b Samet td b b og (sdste veau pus ae foregåede veauer ) Ved gæt og test-metode gætter v på e ukket form og prøver at bevse, at de er sad ved jæp af dukto: Gæt: T() < c og " b vs < T() # $ T( ) b og vs T () T ( ) b og < (c( )og( )) b og c(og og ) b og c og c b og Forkert: v ka kke vse, at udtrykket de sdste je er mdre ed c og 17 18 Gæt-og-test-metode (de ) " b vs < T() # $ T( ) b og vs Gæt : T() < c og T () T ( ) bog Så T() er O( og ) < (c( )og ( )) bog c(og og ) b og c og c og c bog " c og vs c > b For at bruge dee metode ska ma være god t at gætte og god t at føre duktosbevser Mestermetode Mage de-og-ersk rekursosgger ar forme " c vs < d T() # $ at( b) f () vs d Mestersætge: 1. f () er O( og b a" ) # T() er $( og b a ). f () er $( og b a og k ) # T() er $( og b a og k 1 ) 3. f () er %( og b a " ) # T() er $( f ()) forudsat &' <1: af ( b) ( 'f () for ) d 19 0

Mestermetode, eksempe 1 Form " c vs < d T() # $ at( b) f () vs d Mestersætge: 1. f () er O( og b a" ) # T() er $( og b a ). f () er $( og b a og k ) # T() er $( og b a og k 1 ) 3. f () er %( og b a " ) # T() er $( f ()) forudsat &' <1: af ( b) ( 'f () for ) d Eksempe: T ( ) 4T ( ) Løsg: og b a. Tfæde 1 sger, at T() er ( ) Mestermetode, eksempe Form " c vs < d T() # $ at( b) f () vs d Mestersætge: 1. f () er O( og b a" ) # T() er $( og b a ). f () er $( og b a og k ) # T() er $( og b a og k 1 ) 3. f () er %( og b a " ) # T() er $( f ()) forudsat &' <1: af ( b) ( 'f () for ) d Eksempe: T ( ) T ( ) og Løsg: og b a 1. Tfæde sger, at T() er ( og ) 1 Mestermetode, eksempe 3 Form " c vs < d T() # $ at( b) f () vs d Mestersætge: 1. f () er O( og b a" ) # T() er $( og b a ). f () er $( og b a og k ) # T() er $( og b a og k 1 ) 3. f () er %( og b a " ) # T() er $( f ()) forudsat &' <1: af ( b) ( 'f () for ) d Eksempe: T ( ) T ( 3) og Løsg: og b a 0. Tfæde 3 sger, at T() er ( og ) Mestermetode, eksempe 4 Form " c vs < d T() # $ at( b) f () vs d Mestersætge: 1. f () er O( og b a" ) # T() er $( og b a ). f () er $( og b a og k ) # T() er $( og b a og k 1 ) 3. f () er %( og b a " ) # T() er $( f ()) forudsat &' <1: af ( b) ( 'f () for ) d Eksempe: T ( ) 8T ( ) Løsg: og b a 3. Tfæde 1 sger, at T() s ( 3 ) 3 4

Mestermetode, eksempe 5 Form " c vs < d T() # $ at( b) f () vs d Mestersætge: 1. f () er O( og b a" ) # T() er $( og b a ). f () er $( og b a og k ) # T() er $( og b a og k 1 ) 3. f () er %( og b a " ) # T() er $( f ()) forudsat &' <1: af ( b) ( 'f () for ) d Mestermetode, eksempe 6 Form " c vs < d T() # $ at( b) f () vs d Mestersætge: 1. f () er O( og b a" ) # T() er $( og b a ). f () er $( og b a og k ) # T() er $( og b a og k 1 ) 3. f () er %( og b a " ) # T() er $( f ()) forudsat &' <1: af ( b) ( 'f () for ) d Eksempe: T ( ) 9T ( 3) 3 Eksempe: T ( ) T ( ) 1 (bær søgg) Løsg: og b a 3. Tfæde 3 sger, at T() s ( 3 ) Løsg: og b a 0. Tfæde sger, at T() s (og ) 5 6 Mestermetode, eksempe 7 Form " c vs < d T() # $ at( b) f () vs d Mestersætge: 1. f () er O( og b a" ) # T() er $( og b a ). f () er $( og b a og k ) # T() er $( og b a og k 1 ) 3. f () er %( og b a " ) # T() er $( f ()) forudsat &' <1: af ( b) ( 'f () for ) d Eksempe: T ( ) T ( ) og (ob-kostrukto) Løsg: og b a 1. Tfæde 1 sger, at T() s () 7 teratvt bevs for mestersætge Ved jæp af teratv substtuto fdes et møster: T ( ) at ( b) f ( ) a( at ( b )) f ( b)) b a T ( b ) af ( b) f ( ) 3 3 a T ( b ) a... a ogb ogb a T (1) T (1) (og ) " 1 b 0 (og ) " 1 b 0 f ( b ) af ( b) f ( ) a f ( b ) a f ( b ) V skeer meem tre tfæde: 1. Det første ed summe er domerede. Ledee summatoe er ge domerede 3. Summatoe er e kvotetrække 8

9 Hetasmutpkato Agortme: Mutpcer to -bt eta og Opdeg: Opspt og øjordes- og avordes-bts: ) )*( ( * V ka så bestemme * ved at mutpcere deee og addere: T() 4T() c, vket medfører, at T() er ( ) Me det er kke bedre ed de agortme, v ærte skoe 30 Forbedret agortme Agortme: Mutpcer to -bt eta og Opdeg: Opspt og øjordes- og avordes-bts: ) ( ] ) [( ] ) )( [( * Der fdes e ade måde at mutpcere deee: T() 3T() c, vket medfører, at T() er ( ) T() er ( 1.585 ) og 3 Med FFT ka opås e ( og ) agortme 31 Dyamsk programmmerg 3 De-og-ersk (top-t-bud, top-dow): For at øse et stort probem dees probemet op mdre deprobemer, der øses uafæggt af ade Dyamsk programmerg Dyamsk programmerg (bud-t-top, bottom-up): For at øse et stort probem øses ae mdre deprobemer, og deres øsger gemmes og beyttes t at øse større probemer. Såedes fortsættes, dt probemet er øst Betegese stammer fra operatosaayse, vor programmerg beyttes om formuerg af et probem, såedes at e bestemt metode ka avedes

Modere defto Dyamsk programmerg: Bud-t-top mpemeterg af rekursve programmer med overappede deprobemer Top-t-bud mpemeterg er dog også mug Dyamsk programmerg er baseret på føgede smpe prcp: Udgå at getage beregger Beregg af Fboacc-ta (Fboacc, 10) F() F(-1) F(-) for > F(0) 0 F(1) 1 0 0 10 55 0 6765 1 1 11 89 1 10946 1 1 144 17711 3 13 33 3 8657 4 3 14 377 4 46368 5 5 15 610 5 7505 6 8 16 987 6 11393 7 13 17 1597 7 196418 8 1 18 584 8 317811 9 34 19 4181 9 5149 Tarække vokser ekspoetet: F()F(-1) går mod 1.618... (det gyde st (1 5)) 33 34 Top-t-bud-tgag t F(t ) { retur < 1? : F(-1) F(-); Udgå geberegger (beyt cacg ) Vedgeod e tabe (dceret ved parameterværde) deodede * 0, vs de rekursve metode edu kke er kadt med dee parameterværd * eers det resutat, der ska retureres Smpe, me meget effektv Ataet af kad, C(), tfredsster rekursosggere C() C(-1) C(-) 1, C(1) C(0) 1 som ar øsge C() F() F(-1) - 1. C() er atså større ed det Fboacc-ta, der ska bereges effektvtete skydes, at de samme deprobemer øses mage gage F.eks. F(9) F(8) F(7) F(7) F(6) F(7) F(6) F(5) F(6) F(6) F(5) Første kad af metode for e gve parameterværd: bereg som før, me gem desude resutatet Efterføgede kad med samme parameterværd: returer resutatet fra det første kad t F(t ) { f (Fkow[] 0) retur Fkow[]; t r < 1? : F(-1) F(-); Fkow[] r; retur r; 35 36

Effektvtetsforbedrg Bud-t-top-tgag Smpe rekursv metode: F(9) 34 1 13 8 8 5 5 3 5 3 3 3 3 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 Husk kedte resutater: 1 1 0 1 0 1 3 8 5 1 1 1 1 0 13 1 3 1 0 34 5 13 8 13 8 5 5 3 3 1 3 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 0 1 0 Køretd: ekspoete Køretd: eær 37 Dyamsk programmerg (tradtoe): * Tabeæg øsgere t deprobemere * Opbyg tabee stgede orde af probemstørrese * Beyt gemte øsger t at bestemme ye øsger Eksempe: Dyamsk programmerg t beregg af Fboacc-ta: F[0] 0; F[1] 1; for ( ; < ; ) F[] F[-1] F[-]; Tdsforbruget er eært 38 Optma møtveksg Top-t-bud-øsg Udbeta et beøb møter, såedes at ataet af møter er mmat Bereg for ver møt det mmae ata møter, der ka beyttes t at vekse det resterede beøb. Tag mmum Eksempe: Hvs beøbet ska udbetaes amerkaske cets, ka møtere 1-, 5-, 10- og 5-cet beyttes Veksg af 63 cets ka da foretages med 6 møter, emg to 5-cet, e 10-cet og tre 1-cet For dsse møter v e grådg agortme atd gve e optma øsg Me vs der dføres e 1-cet-møt, vrker dee metode kke t[] cos {1, 5, 10, 1, 5; t makecage(t cage) { f (cage 0) retur 0; t m teger.max_value; for (t 0; < cos.egt; ) f (cage > cos[]) m Mat.m(m, 1 makecage(cage - cos[])); retur m; Beyt kke dee agortme Ekspoetet tdsforbrug. Udgå geberegger. 39 40

Gebrug kedte øsger t makecage(t cage) { f (cage < 0) retur 0; f (mkow[cage] > 0) retur mkow[cage]; t m teger.max_value; for (t 0; < cos.egt; ) f (cage > cos[]) m Mat.m(m, 1 makecage(cage - cos[])); mkow[cage] m; retur m; Udskrvg af møtere e optma veksg Gem e tabe, astco, for etvert beøb de sdst vagte møt e optma veksg af beøbet we (cage > 0) { System.out.prt(astCo[cage]); cage - astco[cage]; 41 4 t makecage(t cage) { f (cage < 0) retur 0; f (mkow[cage] > 0) retur mkow[cage]; t m teger.max_value, mco 0; for (t 0; < cos.egt; ) f (cage > cos[]) { t m 1 makecage(cage - cos[]); f (m < m) { m m; mco cos[]; astco[cage] mco; mkow[cage] m; retur m; 43 Bud-t-top-øsg (ude rekurso) Brug fude øsger t at bestemme de æste øsg t makecage(t cage) { mkow[0] 0; for (t c 1; c < cage; c) { t m teger.max_value; for (t 0; < cos.egt; ) f (c > cos[]) m Mat.m(m, 1 mkow[cage - cos[]]); mkow[c] m; retur mkow[cage]; Køretde er proportoa med cage*cos.egt 44

Matrx-kædeprodukter Matrx-kædeprodukter Dyamsk programmerg er et geeret paradgme t agortmedesg Matrxmutpkato: C A*B A er d x e, og B er e x f e 1 " C[, j] k Køretde er O(def ) 0 A[, k]* B[ k, j] d A e e B C f j,j d Matrx-kædeprodukt: Bereg A A 0 *A 1 * *A -1 A er d x d 1 Probem: Hvor ska paretesere paceres? Eksempe: B er 3 x 100 C er 100 x 5 D er 5 x 5 (B*C)*D bruger 1500 75 1575 mutpkatoer B*(C*D) bruger 1500 500 4000 mutpkatoer f 45 46 Et større eksempe A er e 13 x 5 matrx B er e 5 x 89 matrx C er e 89 x 3 matrx D er e 3 x 34 matrx ((AB)C)D : AB : 13*5*89 5785 mutpkatoer (AB)C : 13*89*3 3471 mutpkatoer ((AB)C)D : 13*3*34 136 mutpkatoer at 1058 mutpkatoer E opregede metode Matrx-kædeprodukt agortme: Prøv ae mug måder at sætte pareteser A 0 *A 1 * *A -1 Bereg ataet af operatoer for ver muged Væg de, der er bedst Køretd: Ataet af mugeder er g med ataet af bære træer med kuder Noge adre mugeder: (AB)(CD) : 5401 mutpkatoer A((BC)D) : 4055 mutpkatoer A(B(CD)) : 6418 mutpkatoer (A(BC))D : 856 mutpkatoer (optmum) Dette ta vokser ekspoetet Det kades for det cataaske ta og er æste 4 ((4 3 )) Dette er er e rædsesfud agortme 47 48

E grådg metode E ade grådg metode de 1: Væg produktere et ad gage. Væg atd det produkt, der (for)bruger fest mutpkatoer de : Væg produktere et ad gage. Væg atd det produkt, der kræver færrest mutpkatoer Modeksempe: A er 10 x 5 B er 5 x 10 C er 10 x 5 D er 5 x 10 de 1 gver (A*B)*(C*D), som bruger 5001000500 000 mutpkatoer Me A*((B*C)*D) bruger færre, emg 5005050 1000 mutpkatoer Modeksempe: A s 101 x 11 B s 11 x 9 C s 9 x 100 D s 100 x 99 de gver A*((B*C)*D), som bruger 10998999001089008789 mutpkatoer Me (A*B)*(C*D) bruger færre, emg 99998999189100189090 mutpkatoer 49 50 E rekursv metode E karakterserede gg Defer deprobemer: Fd de bedste paretespacerg for A *A 1 * *A j Lad N,j betege ataet af mutpkatoer, der foretages for dette deprobem Det mmae ata mutpkatoer for ee probemet er N 0,-1 Optmatet af deprobemer: De optmae øsg ka deferes termer af optmae deprobemer Der må ødvedgvs være e sdste mutpkato for de optmae øsg (rod udtrykstræet) Atag at det sdste produkt sker ved deks : (A 0 * *A )*(A 1 * *A -1 ) Da er de optmae øsg N 0,-1 g med summe af N 0, og N 1,-1, pus ata mutpkatoer for de sdste matrxmutpkato Det gobae optmum må være deferet termer af optmae deprobemer, der afæger af, vor de sdste mutpkato foretages Prøv ae muge pacerger for de sdste mutpkato: Der mdes om, at A er e d x d 1 matrx E karakterserede gg for N,j er: N, j m{n,k N k 1, j d d k 1 d j 1 k< j Bemærk, at deprobemere kke er uafægge - deprobemere overapper 51 5

E dyamsk programmergsagortme Vsuaserg af agortme Da deprobemere overapper, bruger v kke rekurso stedet for kostrueres e optma øsg bottom-up Værdere N, er ette at bestemme, så dem starter v med Så bereges værder for deprobemer med ægde, 3,... o.s.v Køretd: O( 3 ) Agortm matrxca(s): put: sequece S of matrces to be mutped Output: umber of operatos a optma paraetzato of S for 1 to -1 do N, 0 for b 1 to -1 do for 0 to -b-1 do j b N,j fty for k to j-1 do N,j m{n,j, N,k N k1,j d d k1 d j1 Arrayet N fydes dagoavs N,j får værd fra tdgere dgage de te række og j te søje Beregg af vert eemet tabee tager O() td Køretd: O( 3 ) De fude paretespacerg ka gøres tgægeg ved at uske k s værd for vert eemet N N, j m{n,k N k 1, j d d k 1 d j 1 k< j N 0 1 0 1-1 j? -1 b b 1 svar 53 54 De geeree tekk t dyamsk programmerg Avedes på et probem, der først syes at kræve e masse td (mugvs ekspoete), forudsat at v ar Smpe deprobemer: deprobemer ka deferes termer af få varabe, såsom, j, k,, m o.s.v. Deprobem-optmatet: det gobae optmum ka deferes termer af optmae deprobemer Deprobem-overap: deprobemere er kke uafægge, me overapper (og ska derfor kostrueres bottom-up ) 0-1-rygsækprobemet Gvet: E mægde S af emer, vor vert eme ar b - e postv ytteværd (beeft) w - e postv vægt (wegt) Må: Væg emer med maksma samet ytteværd, me med samet vægt på øjst W Hvs det kke er mugt at tage vkårge brøkdee af emere, er der tae om 0-1-rygsækprobemet Lad T betege mægde af de emer, v væger Må: Maksmer Begræsg: " T # "T b w W 55 56

Emer: Vægt: Nytteværd: Eksempe Gvet: E mægde S af emer, vor vert eme ar b - e postv ytteværd (beeft) w - e postv vægt (wegt) Må: Væg emer med maksma samet ytteværd, me med samet vægt på øjst W 1 3 4 5 8 cm 4 cm 4 cm 1 cm 4 cm 0 kr 3 kr 6 kr 5 kr 80 kr 18 cm rygsæk Løsg: 5 (4 cm) 3 (4 cm) 1 (8 cm) E agortme (første forsøg) Lad S k være mægde af de emer S, der er ummereret fra 1 t k Defer B[k] værd af bedste demægde af S k Der er kke deprobem-optmatet: Betragt S{(3,), (5,4), (8,5), (4,3), (10,9) vægt-ytteværd par Bedste for S 4 : Bedste for S 5 : 6 57 58 E agortme (adet forsøg) Lad S k være mægde af de emer S, der er ummereret fra 1 t k Defer B[k,w] værd af bedste demægde af S k med vægt w Der er deprobem-optmatet De bedste demægde af S k med vægt w er ete de bedste demægde af S k-1 med vægt w, eer de bedste demægde af S k-1 med vægt w-w k, pus emet k: " B[k 1,w] B[k,w] # $ max{b[k 1,w], B[k 1,w w k ] b k vs w k > w eers Agortme for 0-1-rygsækprobemet Da B[k,w] er deferet termer af B[k-1,*], ka v bruge et edmesoat array Køretd: O(W) " B[k 1,w] B[k,w] # $ max{b[k 1,w], B[k 1,w w k ] b k Er kke e poyome agortme, vs W er stor Der er tae om e såkadt pseudopoyome agortme vs w k > w eers Agortm 01Kapsack(S, W): put: set S of tems w beeft b ad wegt w ; max. wegt W Output: beeft of best subset wt wegt at most W for w 0 to W do B[w] 0 Fej æreboge for k 1 to do for w w k to W do B[w] max{b[w], B[w-w k ]b k 59 60

Desgtekkker De-og-ersk probem af størrese deprobem 1 af størrese deprobem af størrese øsg af deprobem 1 øsg af deprobem øsg af det oprdege probem 61 6 Formdsk-og-ersk Trasformer-og-ersk probem af størrese probem deprobem af størrese - 1 trasformeret probem øsg af deprobem øsg af det trasformerede probem øsg af det oprdege probem øsg af det oprdege probem 63 64