Asymptotisk analyse af algoritmers køretider
|
|
|
- Lærke Jette Frank
- 8 år siden
- Visninger:
Transkript
1 Asymptotisk analyse af algoritmers køretider
2 Analyse af køretid Recall: Vi ønsker at vurdere (analysere) algoritmer på forhånd inden vi bruger lang tid på at implementere dem. De to primære spørgsmål: Løser algoritmen opgaven (er den korrekt)? Er algoritmen effektiv (hvad er køretiden)? Vi fokuserer her på det andet spørgsmål.
3 Analyse af køretid Recall: Vi ønsker at vurdere (analysere) algoritmer på forhånd inden vi bruger lang tid på at implementere dem. De to primære spørgsmål: Løser algoritmen opgaven (er den korrekt)? Er algoritmen effektiv (hvad er køretiden)? Vi fokuserer her på det andet spørgsmål. Recall: I vores analyse er en algoritmes køretid antallet af basale operationer, som den udfører i RAM-modellen (for worst case input). Dette antal operationer er en voksende funktion f (n) af inputstørrelsen.
4 Analyse af køretid Recall: Vi ønsker at vurdere (analysere) algoritmer på forhånd inden vi bruger lang tid på at implementere dem. De to primære spørgsmål: Løser algoritmen opgaven (er den korrekt)? Er algoritmen effektiv (hvad er køretiden)? Vi fokuserer her på det andet spørgsmål. Recall: I vores analyse er en algoritmes køretid antallet af basale operationer, som den udfører i RAM-modellen (for worst case input). Dette antal operationer er en voksende funktion f (n) af inputstørrelsen. Vi vil først undersøge hvor godt teoretiske analyser i RAM-modellen ser ud til at passer med algoritmers observerede køretid på virkelige computere.
5 Analyse af køretid Recall: Vi ønsker at vurdere (analysere) algoritmer på forhånd inden vi bruger lang tid på at implementere dem. De to primære spørgsmål: Løser algoritmen opgaven (er den korrekt)? Er algoritmen effektiv (hvad er køretiden)? Vi fokuserer her på det andet spørgsmål. Recall: I vores analyse er en algoritmes køretid antallet af basale operationer, som den udfører i RAM-modellen (for worst case input). Dette antal operationer er en voksende funktion f (n) af inputstørrelsen. Vi vil først undersøge hvor godt teoretiske analyser i RAM-modellen ser ud til at passer med algoritmers observerede køretid på virkelige computere. Vi vil derefter gennemgå et redskab (asymptotisk analyse) til at sammenligne f (n) for forskellige algoritmer. Målet er at vi kan grovsortere algoritmer efter voksehastigheden af deres køretider, så vi kan undgå at implementere dem, som ikke har en chance for at være hurtigst.
6 Analyse af køretid: RAM-modellen vs. virkeligheden public class Linear { public static void main(string[] args) { } long time = System.currentTimeMillis(); long n = Long.parseLong(args[0]); long total = 0; for(long i=1; i<=n; i++){ total = total + 1; } System.out.println(total); System.out.println(System.currentTimeMillis() - time); }
7 Analyse af køretid: RAM-modellen vs. virkeligheden public class Linear { public static void main(string[] args) { } long time = System.currentTimeMillis(); long n = Long.parseLong(args[0]); long total = 0; for(long i=1; i<=n; i++){ total = total + 1; } System.out.println(total); System.out.println(System.currentTimeMillis() - time); } T (n) = c 1 n + c 0
8 Analyse af køretid: RAM-modellen vs. virkeligheden public class Linear { public static void main(string[] args) { } long time = System.currentTimeMillis(); long n = Long.parseLong(args[0]); long total = 0; for(long i=1; i<=n; i++){ total = total + 1; } System.out.println(total); System.out.println(System.currentTimeMillis() - time); } T (n) = c 1 n + c 0 2.9e 06 Linear.java, plot af (målt tid)/n Linear.java ms (gennemsnit af 5 kørsler) 2.88e e e 06 x-akse: inputstørrelse n y-akse: (målt tid)/n 2.82e e e+08 1e e+09 2e e+09 3e e+09 4e e+09 n
9 Analyse af tidsforbrug: RAM-modellen vs. virkeligheden for(long i=1; i<=n; i++){ for(long j=1; j<=n; j++){ total = total + 1; } }
10 Analyse af tidsforbrug: RAM-modellen vs. virkeligheden for(long i=1; i<=n; i++){ for(long j=1; j<=n; j++){ total = total + 1; } } T (n) = (c 2 n + c 1 ) n + c 0 = c 2 n 2 + c 1 n + c 0
11 Analyse af tidsforbrug: RAM-modellen vs. virkeligheden for(long i=1; i<=n; i++){ for(long j=1; j<=n; j++){ total = total + 1; } } T (n) = (c 2 n + c 1 ) n + c 0 = c 2 n 2 + c 1 n + c 0 Quadratic.java, plot af (målt tid)/n^2 4.4e 06 Quadratic.java 4.2e 06 ms/n^2 (gennemsnit af 5 kørsler) 4e e e e e 06 3e 06 x-akse: inputstørrelse n y-akse: (målt tid)/n 2 2.8e e n
12 Analyse af tidsforbrug: RAM-modellen vs. virkeligheden for(long i=1; i<=n; i++){ for(long j=1; j<=n; j++){ for(long k=1; k<=n; k++){ total = total + 1; } } }
13 Analyse af tidsforbrug: RAM-modellen vs. virkeligheden for(long i=1; i<=n; i++){ for(long j=1; j<=n; j++){ for(long k=1; k<=n; k++){ total = total + 1; } } } T (n) = ((c 3 n+c 2 ) n+c 1 ) n+c 0 = c 3 n 3 +c 2 n 2 +c 1 n+c 0
14 Analyse af tidsforbrug: RAM-modellen vs. virkeligheden for(long i=1; i<=n; i++){ for(long j=1; j<=n; j++){ for(long k=1; k<=n; k++){ total = total + 1; } } } T (n) = ((c 3 n+c 2 ) n+c 1 ) n+c 0 = c 3 n 3 +c 2 n 2 +c 1 n+c 0 1e 05 Cubic.java, plot af (målt tid)/n^3 Cubic.java 9e 06 ms/n^3 (gennemsnit af 5 kørsler) 8e 06 7e 06 6e 06 5e 06 4e 06 x-akse: inputstørrelse n y-akse: (målt tid)/n 3 3e 06 2e n
15 Analyse af tidsforbrug: RAM-modellen vs. virkeligheden Konklusion: Det ser ud til at analyser i RAM-modellen forudser den rigtige køretid ret godt, i hvert fald for de afprøvede eksempler.
16 Linear vs. kvadratisk vs. kubisk ms (gennemsnit af 5 kørsler) plot af målt tid (dobbelt-logaritmisk) Linear.java Quadratic.java Cubic.java e+06 1e+07 1e+08 1e+09 1e+10 n Man ser at funktionerne n, n 2, n 3 står for meget forskellige effektiviter.
17 Linear vs. kvadratisk vs. kubisk ms (gennemsnit af 5 kørsler) plot af målt tid (dobbelt-logaritmisk) Linear.java Quadratic.java Cubic.java e+06 1e+07 1e+08 1e+09 1e+10 Man ser at funktionerne n, n 2, n 3 står for meget forskellige effektiviter. I analysen optræder i virkeligheden en del konstanter (som vi typisk har svært ved at kende præcist), f.eks. c 1 n + c 0. Mon disse betyder noget? n
18 Multiplikative konstanter Multiplikative konstanter ligegyldige hvis voksehastighed er forskellig: f (n) = 3000n h(n) = 3n 2 g(n) = 4000n k(n) = 4n 2 1.2e+07 1e *x 4000*x 3*x**2 4*x**2 8e+06 6e+06 4e+06 2e
19 Multiplikative konstanter Multiplikative konstanter ligegyldige hvis voksehastighed er forskellig: f (n) = 3000n h(n) = 3n 2 g(n) = 4000n k(n) = 4n 2 1.2e+07 1e *x 4000*x 3*x**2 4*x**2 8e+06 6e+06 4e+06 2e n < 4n /4 < n 750 < n
20 Multiplikative konstanter Multiplikative konstanter ligegyldige hvis voksehastighed er forskellig: f (n) = 3000n h(n) = 3n 2 g(n) = 4000n k(n) = 4n 2 1.2e+07 1e *x 4000*x 3*x**2 4*x**2 8e+06 6e+06 4e+06 2e n < 4n /4 < n 750 < n A n < B n 2 A/B < n
21 Voksehastighed Vi ønsker at sammenligne funktioners essentielle voksehastighed på en måde så der ses bort fra multiplikative konstanter. Denne sammenligning skal bruges til at lave en grovsortering af algoritmer inden vi laver implementationsarbejde. For antag at to algoritmer A og B har voksehastigheder, som gør at køretiden for algoritme B altid (for store nok n) vil blive større end køretiden for algoritme A, uanset hvilke multiplikative konstanter, der er i udtrykkene for voksehastigheder. Så vil der som regel ikke være nogen pointe i at implementere algoritme B. Ingen tuning af koden vil kunne få den til at vinde over algoritme A (for store n).
22 Voksehastighed Vi ønsker at sammenligne funktioners essentielle voksehastighed på en måde så der ses bort fra multiplikative konstanter. Denne sammenligning skal bruges til at lave en grovsortering af algoritmer inden vi laver implementationsarbejde. For antag at to algoritmer A og B har voksehastigheder, som gør at køretiden for algoritme B altid (for store nok n) vil blive større end køretiden for algoritme A, uanset hvilke multiplikative konstanter, der er i udtrykkene for voksehastigheder. Så vil der som regel ikke være nogen pointe i at implementere algoritme B. Ingen tuning af koden vil kunne få den til at vinde over algoritme A (for store n). Arbejdsprincip: Sammenlign først voksehastigheder af algoritmer, og implementer normalt kun den med laveste voksehastigheder. For to algoritmer med samme voksehastighed, implementer begge og mål køretider.
23 Asymptotisk notation Så vi ønsker et værktøj til at sammenligne funktioners essentielle voksehastighed på en måde så der ses bort fra multiplikative konstanter.
24 Asymptotisk notation Så vi ønsker et værktøj til at sammenligne funktioners essentielle voksehastighed på en måde så der ses bort fra multiplikative konstanter. Mere præcist: vi ønsker for voksehastighed for funktioner sammenligninger svarende til de fem klassiske ordens-relationer: = < > De vil, af historiske årsager, blive kaldt for: O Ω Θ o ω Hvilket udtales således: Store O, Omega, Theta, lille o, lille omega Følgende definitioner har vist sig at fungere godt:
25 Store O Mening: f g i voksehastighed
26 Store Omega Mening: f g i voksehastighed
27 Theta Mening: f = g i voksehastighed
28 Lille o Mening: f < g i voksehastighed
29 Lille omega Mening: f > g i voksehastighed
30 Asymptotisk notation Man kan nemt vise at disse definitioner opfører sig som forventet af ordens-relationer. F.eks.: f (n) = o(g(n)) f (n) = O(g(n)) (jvf. x < y x y)
31 Asymptotisk notation Man kan nemt vise at disse definitioner opfører sig som forventet af ordens-relationer. F.eks.: f (n) = o(g(n)) f (n) = O(g(n)) (jvf. x < y x y) f (n) = Θ(g(n)) f (n) = O(g(n)) (jvf. x = y x y )
32 Asymptotisk notation Man kan nemt vise at disse definitioner opfører sig som forventet af ordens-relationer. F.eks.: f (n) = o(g(n)) f (n) = O(g(n)) (jvf. x < y x y) f (n) = Θ(g(n)) f (n) = O(g(n)) (jvf. x = y x y ) f (n) = O(g(n)) g(n) = Ω(f (n)) (jvf. x y y x )
33 Asymptotisk notation Man kan nemt vise at disse definitioner opfører sig som forventet af ordens-relationer. F.eks.: f (n) = o(g(n)) f (n) = O(g(n)) (jvf. x < y x y) f (n) = Θ(g(n)) f (n) = O(g(n)) (jvf. x = y x y ) f (n) = O(g(n)) g(n) = Ω(f (n)) (jvf. x y y x ) f (n) = o(g(n)) g(n) = ω(f (n)) (jvf. x < y y > x )
34 Asymptotisk notation Man kan nemt vise at disse definitioner opfører sig som forventet af ordens-relationer. F.eks.: f (n) = o(g(n)) f (n) = O(g(n)) (jvf. x < y x y) f (n) = Θ(g(n)) f (n) = O(g(n)) (jvf. x = y x y ) f (n) = O(g(n)) g(n) = Ω(f (n)) (jvf. x y y x ) f (n) = o(g(n)) g(n) = ω(f (n)) (jvf. x < y y > x ) f (n) = O(g(n)) og f (n) = Ω(g(n)) g(n) = Θ(g(n)) (jvf. x y og x y x = y )
35 Asymptotisk analyse i praksis De asymptotiske forhold mellem de fleste funktioner f og g kan afklares ved følgende sætninger: Hvis f (n) k > 0 for n så gælder f (n) = Θ(g(n)) g(n) Hvis f (n) 0 for n så gælder f (n) = o(g(n)) g(n)
36 Asymptotisk analyse i praksis De asymptotiske forhold mellem de fleste funktioner f og g kan afklares ved følgende sætninger: Hvis f (n) k > 0 for n så gælder f (n) = Θ(g(n)) g(n) Eksempler: Hvis f (n) 0 for n så gælder f (n) = o(g(n)) g(n) 20n n /n + 312/n2 n 2 = = 20 for n 1 1
37 Asymptotisk analyse i praksis De asymptotiske forhold mellem de fleste funktioner f og g kan afklares ved følgende sætninger: Hvis f (n) k > 0 for n så gælder f (n) = Θ(g(n)) g(n) Eksempler: Hvis f (n) 0 for n så gælder f (n) = o(g(n)) g(n) 20n n /n + 312/n2 n 2 = = 20 for n n n n 3 = 20/n + 17/n /n = 0 for n 1 1
38 Asymptotisk analyse i praksis Derudover er det godt at vide følgende fact fra matematik: For alle a > 0 og b > 1 gælder n a b n 0 for n
39 Asymptotisk analyse i praksis Derudover er det godt at vide følgende fact fra matematik: For alle a > 0 og b > 1 gælder n a b n 0 for n Dvs. ethvert polynomium er o() af enhver exponentialfunktion
40 Asymptotisk analyse i praksis Derudover er det godt at vide følgende fact fra matematik: For alle a > 0 og b > 1 gælder n a b n 0 for n Dvs. ethvert polynomium er o() af enhver exponentialfunktion Eksempelvis giver dette at: hvoraf ses n n 0 for n n 100 = o(2 n )
41 Asymptotisk analyse i praksis Regel fra sidste slide: For alle a > 0 og b > 1 gælder na b n 0 for n
42 Asymptotisk analyse i praksis Regel fra sidste slide: For alle a > 0 og b > 1 gælder na b n 0 for n For c > 1 og d > 0, sæt N = log c (n) og b = c d. Så haves (log c n) a n d = N a (c log c (n) ) d = Na c d log c (n) = N a Na = (c d ) log c (n) (c d ) N
43 Asymptotisk analyse i praksis Regel fra sidste slide: For alle a > 0 og b > 1 gælder na b n 0 for n For c > 1 og d > 0, sæt N = log c (n) og b = c d. Så haves (log c n) a n d = N a (c log c (n) ) d = Na c d log c (n) = og derfor fås følgende variant af reglen: N a Na = (c d ) log c (n) (c d ) N For alle a, d > 0 og c > 1 gælder (log c n) a 0 for n n d
44 Asymptotisk analyse i praksis Regel fra sidste slide: For alle a > 0 og b > 1 gælder na b n 0 for n For c > 1 og d > 0, sæt N = log c (n) og b = c d. Så haves (log c n) a n d = N a (c log c (n) ) d = Na c d log c (n) = N a Na = (c d ) log c (n) (c d ) N og derfor fås følgende variant af reglen: For alle a, d > 0 og c > 1 gælder (log c n) a n d 0 for n Dvs. enhver logaritme (selv opløftet i enhver potens) er o() af ethvert polynomium.
45 Asymptotisk analyse i praksis Regel fra sidste slide: For alle a > 0 og b > 1 gælder na b n 0 for n For c > 1 og d > 0, sæt N = log c (n) og b = c d. Så haves (log c n) a n d = N a (c log c (n) ) d = Na c d log c (n) = N a Na = (c d ) log c (n) (c d ) N og derfor fås følgende variant af reglen: For alle a, d > 0 og c > 1 gælder (log c n) a n d 0 for n Dvs. enhver logaritme (selv opløftet i enhver potens) er o() af ethvert polynomium. Eksempelvis giver dette at: (log n) 3 n for n, hvoraf ses (log n) 3 = o(n 0.5 )
46 Større eksempel Disse regler forklarer at følgende funktioner er sat i stigende voksehastighed (den ene er o() af den næste): 1, log n, n, n/ log n, n, n log n, n n, n 2, n 3, n 10, 2 n
47 Dominerende led Bemærk at dominerende led (led med højeste voksehastighed) bestemmer samlet voksehastighed. Eksempel (figur): f (n) = 700n 2 g(n) = 7n 3 h(n) = 600n n k(n) = 6n 3 + 5n 2 + 4n e+07 3e *x**2 600*x** *x *x**3 6*x**3 + 5*x**2 + 4*x e+07 2e e+07 1e+07 5e
48 Dominerende led Bemærk at dominerende led (led med højeste voksehastighed) bestemmer samlet voksehastighed. Eksempel (figur): f (n) = 700n 2 g(n) = 7n 3 h(n) = 600n n k(n) = 6n 3 + 5n 2 + 4n e+07 3e *x**2 600*x** *x *x**3 6*x**3 + 5*x**2 + 4*x e+07 2e e+07 1e+07 5e Figuren passer med beregninger:
49 Dominerende led 6n 3 + 5n 2 + 4n /n + 4/n2 7n 3 = = 6/7 for n 7 7 Dvs. 6n 3 + 5n 2 + 4n + 3 = Θ(7n 3 )
50 Dominerende led 6n 3 + 5n 2 + 4n /n + 4/n2 7n 3 = = 6/7 for n 7 7 Dvs. 6n 3 + 5n 2 + 4n + 3 = Θ(7n 3 ) 600n n /n + 400/n2 700n 2 = = 6/7 for n Dvs. 600n n = Θ(700n 2 )
51 Dominerende led 6n 3 + 5n 2 + 4n /n + 4/n2 7n 3 = = 6/7 for n 7 7 Dvs. 6n 3 + 5n 2 + 4n + 3 = Θ(7n 3 ) 600n n /n + 400/n2 700n 2 = = 6/7 for n Dvs. 600n n = Θ(700n 2 ) 600n n n 3 + 5n 2 + 4n + 3 = 600/n + 500/n /n /n 1 + 4/n 2 + 3/n = 0 for n Dvs. 600n n = o(6n 3 + 5n 2 + 4n + 3)
Asymptotisk analyse af algoritmers køretider
Asymptotisk analyse af algoritmers køretider Analyse af køretid (RAM-modellen vs. virkeligheden) public class Linear { public static void main(string[] args) { long time = System.currentTimeMillis(); long
Analyse af algoritmer
Analyse af algoritmer Analyse af algoritmer Køretid Pladsforbrug Asymptotisk notation O, Θ og Ω-notation. Eksperimentiel analyse af algoritmer Philip Bille Analyse af algoritmer Analyse af algoritmer Køretid
Analyse af algoritmer. Analyse af algoritmer. Analyse af algoritmer. Køretid
Philip Bille Mål. At bestemme og forudsige resourceforbrug og korrekthed af algoritmer Eks. Virker min algoritme til at beregne korteste veje i grafer? Hvor hurtigt kører min algoritme til at søge efter
Grundlæggende Algoritmer og Datastrukturer. Analyseværktøjer [CLRS, 1-3.1]
Grundlæggende Algoritmer og Datastrukturer Analyseværktøjer [CLRS, 1-3.1] Eksempler på en beregningsprocess Puslespil ved ombytninger Maximum delsum Hvad er udførselstiden for en algoritme? Maskinkode
Introduktion til DM507
Introduktion til DM507 Rolf Fagerberg Forår 2017 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA Forskningsområde: algoritmer og datastrukturer 2 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Introduktion til kurset Rolf Fagerberg Forår 2019 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, Institut for Matematik og Datalogi (IMADA) Forskningsområde: algoritmer
Grundlæggende køretidsanalyse af algoritmer
Grundlæggende køretidsanalyse af algoritmer Algoritmers effektivitet Størrelse af inddata Forskellige mål for køretid Store -notationen Klassiske effektivitetsklasser Martin Zachariasen DIKU 1 Algoritmers
Introduktion. Introduktion. Algoritmer og datastrukturer. Eksempel: Maksimalt tal
Philip Bille Algoritmer og datastrukturer Algoritmisk problem. Præcist defineret relation mellem input og output. Algoritme. Metode til at løse et algoritmisk problem. Beskrevet i diskrete og entydige
Introduktion. Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3. Philip Bille
Introduktion Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3 Philip Bille Introduktion Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3 Algoritmer
02105 Eksamensnoter. Lasse Herskind S maj Sortering 3
02105 Eksamensnoter Lasse Herskind S153746 12. maj 2017 Indhold 1 Sortering 3 2 Analyse af algoritme 4 2.1 Køretid.......................................... 4 2.2 Pladsforbrug.......................................
Danmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Analyseværktøjer [CLRS, 1-3.1] Eksempler på en beregningsprocess Puslespil ved ombytninger Maximum delsum Hvad er udførselstiden for en algoritme? Maskinkode
Skriftlig Eksamen DM507 Algoritmer og Datastrukturer
Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 6. juni 2016, kl. 15:00 19:00 Besvarelsen skal afleveres elektronisk. Se
Danmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed: timer Vægtning
Skriftlig Eksamen DM507 Algoritmer og Datastrukturer
Skriftlig Eksamen DM507 Algoritmer og Datastrukturer Institut for Matematik og Datalogi Syddansk Universitet, Odense Tirsdag den 24. juni 2014, kl. 10:00 14:00 Besvarelsen skal afleveres elektronisk. Se
Danmarks Tekniske Universitet
Eksamen 005, F side af sider Danmarks Tekniske Universitet Skriftlig prøve, den 6. maj 0. Kursusnavn: Algoritmer og datastrukturer I Kursus nr. 005. Tilladte hjælpemidler: Skriftlige hjælpemidler. Varighed:
Noter til Computerstøttet Beregning Taylors formel
Noter til Computerstøttet Beregning Taylors formel Arne Jensen c 23 1 Introduktion I disse noter formulerer og beviser vi Taylors formel. Den spiller en vigtig rolle ved teoretiske overvejelser, og også
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2010 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 24. april, 2010 (let justeret 10. maj og 21. maj 2010) Dette projekt udleveres i tre
Datalogi C + Datastrukturer og Algoritmer
Datalogi C + Datastrukturer og Algoritmer Velkommen til DatC erne Dagens emne: Hvad er D&A, mål for effektivitet Kursuslærer: Henning Christiansen [email protected], http://www.ruc.dk/~henning Hjælpelærer
DM502. Peter Schneider-Kamp ([email protected]) http://imada.sdu.dk/~petersk/dm502/
DM502 Peter Schneider-Kamp ([email protected]) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!
Et udtryk på formena n kaldes en potens med grundtal a og eksponent n. Vi vil kun betragte potenser hvor grundtallet er positivt, altså a>0.
Konkrete funktioner Potenser Som udgangspunkt er brugen af potenser blot en forkortelse for at gange et tal med sig selv et antal gange. Hvis a Rskriver vi a 2 for a a a 3 for a a a a 4 for a a a a (1).
Divide-and-Conquer algoritmer
Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer (af samme type). 2. Løs delproblemerne ved rekursion (dvs. kald algoritmen
Danmarks Tekniske Universitet
Eksamen 02105, F14 side 1 af 14 Danmarks Tekniske Universitet Skriftlig prøve, den 22. maj 2014. Kursusnavn: Algoritmer og datastrukturer 1 Kursusnummer: 02105 Hjælpemidler: Skriftlige hjælpemidler. Det
University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2
DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld
14 Algoritmeanalyse. Noter. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. Køretid for forskellige kontrolstrukturer.
14 Algoritmeanalyse. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. O og Ω. Køretid for forskellige kontrolstrukturer. Eksempler på algoritmeanalyse. Eksponentiel og polynomiel
Martin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox
Martin Olsen DM0 Projekt 0 Del I. marts 0 FOTO: Colourbox Indhold Indledning... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Kildekode til SimpleInv.java... Kildekode til MergeSort.java...
Danmarks Tekniske Universitet
side af 2 sider Danmarks Tekniske Universitet Skriftlig prøve, den 2. maj 200. Kursusnavn Algoritmer og datastrukturer Kursus nr. 02326. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne:
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 29. april, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Sortering. Eksempel: De n tal i sorteret orden
Sortering 1 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden
Danmarks Tekniske Universitet
side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave
Pointen med Differentiation
Pointen med Differentiation Frank Nasser 20. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk:
Divide-and-Conquer algoritmer
Divide-and-Conquer algoritmer Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. Divide-and-Conquer algoritmer Det samme som rekursive algoritmer. 1. Opdel problem i mindre delproblemer
Polynomier. Frank Villa. 26. marts 2012
Polynomier Frank Villa 26. marts 2012 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion 2
Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:
Sortering Sortering Input: Output: n tal De n tal i sorteret orden Eksempel: Kommentarer: 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Sorteret orden kan være stigende eller faldende. Vi vil i dette kursus
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til [email protected]. Besvarelsen skal
Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.
Grådige algoritmer Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Grådige algoritmer Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.
Sortering. Eksempel: De n tal i sorteret orden
Sortering 1 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden
Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010
Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Computere er uvurderlige redskaber for personer der ønsker at arbejde med matematiske modeller
Asymptoter. for standardforsøgene i matematik i gymnasiet. 2003 Karsten Juul
Asymptoter for standardforsøgene i matematik i gymnasiet 2003 Karsten Juul Indledning om lodrette asymptoter Lad f være funktionen bestemt ved =, 2. 2 Vi udregner funktionsværdierne i nogle -værdier der
Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.
Korteste veje Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. Korteste veje i vægtede grafer Længde af sti = sum af vægte af kanter på sti. δ(u, v) = længden af en korteste
Køreplan Matematik 1 - FORÅR 2005
Lineær algebra modulo n og kryptologi Køreplan 01005 Matematik 1 - FORÅR 2005 1 Introduktion Kryptologi er en ældgammel disciplin, som går flere tusinde år tilbage i tiden. Idag omfatter disciplinen mange
BRP 6.9.2006 Kursusintroduktion og Java-oversigt
BRP 6.9.2006 Kursusintroduktion og Java-oversigt 1. Kursusintroduktion 2. Java-oversigt (A): Opgave P4.4 3. Java-oversigt (B): Ny omvendings -opgave 4. Introduktion til næste kursusgang Kursusintroduktion:
Integer Factorization
Integer Factorization Per Leslie Jensen DIKU 2/12-2005 kl. 10:15 Overblik 1 Faktorisering for dummies Primtal og aritmetikkens fundamentalsætning Lille øvelse 2 Hvorfor er det interessant? RSA 3 Metoder
Kapitel 7 Matematiske vækstmodeller
Matematiske vækstmodeller I matematik undersøger man ofte variables afhængighed af hinanden. Her ser man, at samme type af sammenhænge tit forekommer inden for en lang række forskellige områder. I kapitel
Matematik YY Foråret Kapitel 1. Grupper og restklasseringe.
Matematik YY Foråret 2004 Elementær talteori Søren Jøndrup og Jørn Olsson Kapitel 1. Grupper og restklasseringe. Vi vil i første omgang betragte forskellige typer ligninger og søge efter heltalsløsninger
i x-aksens retning, så fås ). Forskriften for g fås altså ved i forskriften for f at udskifte alle forekomster af x med x x 0
BAndengradspolynomier Et polynomium er en funktion på formen f ( ) = an + an + a+ a, hvor ai R kaldes polynomiets koefficienter. Graden af et polynomium er lig med den højeste potens af, for hvilket den
Abstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
Archimedes Princip. Frank Nasser. 12. april 2011
Archimedes Princip Frank Nasser 12. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk: Dette er
Differentiation af Potensfunktioner
Differentiation af Potensfunktioner Frank Nasser 12. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her.
