Rolf Fagerberg. Forår 2013

Relaterede dokumenter
Rolf Fagerberg. Forår 2012

Rolf Fagerberg. Forår 2015

Rolf Fagerberg. Forår 2014

Rolf Fagerberg. Forår 2015

Introduktion til DM507

DM507 Algoritmer og datastrukturer

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal Aarhus Universitet

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal

Analyse af ombytningspuslespil

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Analyse af ombytningspuslespil

Grundlæggende Algoritmer og Datastrukturer

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden

Sortering af information er en fundamental og central opgave.

Sortering af information er en fundamental og central opgave.

DM507 Algoritmer og datastrukturer

Asymptotisk analyse af algoritmers køretider

Datastrukturer (recap)

Algoritmedesign med internetanvendelser ved Keld Helsgaun

Danmarks Tekniske Universitet

DM507 Algoritmer og datastrukturer

Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er)

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Danmarks Tekniske Universitet

Perspektiverende Datalogi Klassiske Algoritmer

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.

DM507 Algoritmer og datastrukturer

Danmarks Tekniske Universitet

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Perspektiverende Datalogikursus

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

DM507 Algoritmer og datastrukturer

Grundlæggende Algoritmer og Datastrukturer. Analyseværktøjer [CLRS, 1-3.1]

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.

Programmering, algoritmik og matematik en nødvendig sammenblanding?

Invarianter. Invariant: Et forhold, som vedligeholdes af algoritmen gennem (dele af) dens udførelse. Udgør ofte kernen af ideen bag algoritmen.

Perspektiverende Datalogikursus

DM02 Kogt ned. Kokken. Januar 2006

DM507 Algoritmer og datastrukturer

Danmarks Tekniske Universitet

Bits DM534. Rolf Fagerberg, 2012

Skriftlig Eksamen Algoritmer og Sandsynlighed (DM538)

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3

Danmarks Tekniske Universitet

DM507 Algoritmer og datastrukturer

Datastrukturer (recap) Datastruktur = data + operationer herpå

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Danmarks Tekniske Universitet

Datastrukturer (recap)

Grundlæggende køretidsanalyse af algoritmer

Perspektiverende Datalogi Klassiske Algoritmer. Gerth Stølting Brodal

Introduktion. Algoritmer og datastrukturer Toppunkter Algoritme 1 Algoritme 2 Algoritme 3. Philip Bille

Danmarks Tekniske Universitet

Introduktion. Introduktion. Algoritmer og datastrukturer. Eksempel: Maksimalt tal

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

Skriftlig Eksamen Diskret Matematik (DM528)

Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)

Perspektiverende Datalogikursus

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

BRP Sortering og søgning. Hægtede lister

Algoritmer og Datastrukturer 1. Gerth Stølting Brodal

Symmetrisk Traveling Salesman Problemet

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer.

Introduktion. Philip Bille

Algoritmer og Datastrukturer 1

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer.

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet. Mandag den 22. marts 2004, kl

Dynamisk programmering

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Divide-and-Conquer algoritmer

Dynamisk programmering

Danmarks Tekniske Universitet

Analyse af algoritmer

Skriftlig Eksamen Algoritmer og sandsynlighed (DM538)

Mm7: A little bit more about sorting - and more times for exercises - November 4, 2008

DM507 Eksamen Obligatorisk Opgave Rejseplanlægning

Skriftlig Eksamen Beregnelighed (DM517)

DM507 Algoritmer og datastrukturer

Danmarks Tekniske Universitet

Dynamisk programmering

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)

Perspektiverende Datalogikursus

Perspektiverende Datalogikursus Uge 1 - Algoritmer og kompleksitet

Perspektiverende Datalogikursus

Asymptotisk analyse af algoritmers køretider

1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer

Divide-and-Conquer algoritmer

Transkript:

Forår 2013

Mål for i dag Dagens program: 1 2 3 4 5 6

Forudsætninger: DM536 og DM537 Timer: 50% forelæsninger, 50% øvelser

Forudsætninger: DM536 og DM537 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger, 50% øvelser 4 timer med bøger, noter, og computer. Karakter efter 7-skala. Projekt: I flere dele. I alt 3 ECTS ud af 10. Karakter B/IB. Skal bestås for at gå til skriftlig eksamen.

Forudsætninger: DM536 og DM537 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger, 50% øvelser 4 timer med bøger, noter, og computer. Karakter efter 7-skala. Projekt: Materialer: I flere dele. I alt 3 ECTS ud af 10. Karakter B/IB. Skal bestås for at gå til skriftlig eksamen. Lærebog: Cormen, Leiserson, Rivest, Stein: Introduction to Algorithms, 3rd edition, 2009. Materiale på nettet (gl. eksamenssæt, slides,...)

Forudsætninger: DM536 og DM537 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger, 50% øvelser 4 timer med bøger, noter, og computer. Karakter efter 7-skala. Projekt: Materialer: I flere dele. I alt 3 ECTS ud af 10. Karakter B/IB. Skal bestås for at gå til skriftlig eksamen. Lærebog: Cormen, Leiserson, Rivest, Stein: Introduction to Algorithms, 3rd edition, 2009. Materiale på nettet (gl. eksamenssæt, slides,...)

Deltagere BA i Datalogi BA i Matematik-Økonomi BA i Anvendt Matematik Tilvalg i Datalogi

Perspektivering: Kursets placering i det store billede

Perspektivering: Kursets placering i det store billede Generelt mål i datalogi: Få computer til at udføre en opgave.

Perspektivering: Kursets placering i det store billede Generelt mål i datalogi: Relaterede spørgsmål: Få computer til at udføre en opgave.

Perspektivering: Kursets placering i det store billede Generelt mål i datalogi: Relaterede spørgsmål: Få computer til at udføre en opgave. Hvordan skrives programmer? (Java-)programmering, programmeringssprog, software engineering (software arkitektur, udviklingsmetodikker, projektstyring, usability) [DM536, DM537, DM509, DM540, DM541, DM542].

Perspektivering: Kursets placering i det store billede Generelt mål i datalogi: Relaterede spørgsmål: Få computer til at udføre en opgave. Hvordan skrives programmer? (Java-)programmering, programmeringssprog, software engineering (software arkitektur, udviklingsmetodikker, projektstyring, usability) [DM536, DM537, DM509, DM540, DM541, DM542]. Hvordan skal programmet løse opgaven? Algoritmer og datastrukturer [, DM508, DM545, MM532]

Perspektivering: Kursets placering i det store billede Generelt mål i datalogi: Relaterede spørgsmål: Få computer til at udføre en opgave. Hvordan skrives programmer? (Java-)programmering, programmeringssprog, software engineering (software arkitektur, udviklingsmetodikker, projektstyring, usability) [DM536, DM537, DM509, DM540, DM541, DM542]. Hvordan skal programmet løse opgaven? Algoritmer og datastrukturer [, DM508, DM545, MM532] (Hvor godt) er det overhovedet muligt at løse opgaven? Nedre grænser, kompleksitet, beregnelighed [DM508, DM517].

Perspektivering: Kursets placering i det store billede Generelt mål i datalogi: Relaterede spørgsmål: Få computer til at udføre en opgave. Hvordan skrives programmer? (Java-)programmering, programmeringssprog, software engineering (software arkitektur, udviklingsmetodikker, projektstyring, usability) [DM536, DM537, DM509, DM540, DM541, DM542]. Hvordan skal programmet løse opgaven? Algoritmer og datastrukturer [, DM508, DM545, MM532] (Hvor godt) er det overhovedet muligt at løse opgaven? Nedre grænser, kompleksitet, beregnelighed [DM508, DM517]. Hvordan fungerer maskinen der udfører opgaven? Baggrundsviden om computerarkitektur og operativsystemer [DM544, DM510].

Perspektivering: Kursets placering i det store billede Generelt mål i datalogi: Relaterede spørgsmål: Få computer til at udføre en opgave. Hvordan skrives programmer? (Java-)programmering, programmeringssprog, software engineering (software arkitektur, udviklingsmetodikker, projektstyring, usability) [DM536, DM537, DM509, DM540, DM541, DM542]. Hvordan skal programmet løse opgaven? Algoritmer og datastrukturer [, DM508, DM545, MM532] (Hvor godt) er det overhovedet muligt at løse opgaven? Nedre grænser, kompleksitet, beregnelighed [DM508, DM517]. Hvordan fungerer maskinen der udfører opgaven? Baggrundsviden om computerarkitektur og operativsystemer [DM544, DM510].

Fokus: Hvordan skal programmet løse opgaven?

Fokus: Hvordan skal programmet løse opgaven? Relevante opgaver for ethvert beregningsproblem: 1 Find (mindst) een algoritme der løser problemet.

Fokus: Hvordan skal programmet løse opgaven? Relevante opgaver for ethvert beregningsproblem: 1 Find (mindst) een algoritme der løser problemet. 2 Sammenlign flere algoritmer der løser problemet.

Fokus: Hvordan skal programmet løse opgaven? Relevante opgaver for ethvert beregningsproblem: 1 Find (mindst) een algoritme der løser problemet. 2 Sammenlign flere algoritmer der løser problemet. 3 Hvad er den bedste algoritme der kan findes?

Fokus: Hvordan skal programmet løse opgaven? Relevante opgaver for ethvert beregningsproblem: 1 Find (mindst) een algoritme der løser problemet. 2 Sammenlign flere algoritmer der løser problemet. 3 Hvad er den bedste algoritme der kan findes? Algoritme = løsningsmetode.

Fokus: Hvordan skal programmet løse opgaven? Relevante opgaver for ethvert beregningsproblem: 1 Find (mindst) een algoritme der løser problemet. 2 Sammenlign flere algoritmer der løser problemet. 3 Hvad er den bedste algoritme der kan findes? Algoritme = løsningsmetode. Tilpas præcist skrevet ned: præcis tekst, pseudo-kode, flow-diagrammer, formler,...

Fokus: Hvordan skal programmet løse opgaven? Relevante opgaver for ethvert beregningsproblem: 1 Find (mindst) een algoritme der løser problemet. 2 Sammenlign flere algoritmer der løser problemet. 3 Hvad er den bedste algoritme der kan findes? Algoritme = løsningsmetode. Tilpas præcist skrevet ned: præcis tekst, pseudo-kode, flow-diagrammer, formler,... Datastruktur = data + effektive operationer herpå.

Fokus: Hvordan skal programmet løse opgaven? Relevante opgaver for ethvert beregningsproblem: 1 Find (mindst) een algoritme der løser problemet. 2 Sammenlign flere algoritmer der løser problemet. 3 Hvad er den bedste algoritme der kan findes? Algoritme = løsningsmetode. Tilpas præcist skrevet ned: præcis tekst, pseudo-kode, flow-diagrammer, formler,... Datastruktur = data + effektive operationer herpå. Forskellige datastrukturer gemmer forskellige typer data og/eller tilbyder forskellige operationer. Har stor anvendelse som delelement i algoritmer.

Udvikling og vurdering af algoritmer 1 Find (mindst) een algoritme der løser problemet. 2 Sammenlign flere algoritmer der løser problemet. 3 Hvad er den bedste algoritme der kan findes?

Udvikling og vurdering af algoritmer 1 Find (mindst) een algoritme der løser problemet. 2 Sammenlign flere algoritmer der løser problemet. 3 Hvad er den bedste algoritme der kan findes? Punkt 1: Kræver ideer, tænkearbejde, erfaring, og et bagkatalog af algoritmer. Korrekthed: ved analyse eller implementation/afprøvning?

Udvikling og vurdering af algoritmer 1 Find (mindst) een algoritme der løser problemet. 2 Sammenlign flere algoritmer der løser problemet. 3 Hvad er den bedste algoritme der kan findes? Punkt 1: Kræver ideer, tænkearbejde, erfaring, og et bagkatalog af algoritmer. Korrekthed: ved analyse eller implementation/afprøvning? Punkt 2: Kræver definition af hvad er kvalitet. Sammenligning: ved analyse eller implementation/afprøvning?

Udvikling og vurdering af algoritmer 1 Find (mindst) een algoritme der løser problemet. 2 Sammenlign flere algoritmer der løser problemet. 3 Hvad er den bedste algoritme der kan findes? Punkt 1: Kræver ideer, tænkearbejde, erfaring, og et bagkatalog af algoritmer. Korrekthed: ved analyse eller implementation/afprøvning? Punkt 2: Kræver definition af hvad er kvalitet. Sammenligning: ved analyse eller implementation/afprøvning? Analyse (): Giver (høj) sikkerhed for korrekthed. Sparer arbejde. Sammenligning upåvirket af: maskine, sprog, programmør, konkrete input.

Udvikling og vurdering af algoritmer 1 Find (mindst) een algoritme der løser problemet. 2 Sammenlign flere algoritmer der løser problemet. 3 Hvad er den bedste algoritme der kan findes? Punkt 1: Kræver ideer, tænkearbejde, erfaring, og et bagkatalog af algoritmer. Korrekthed: ved analyse eller implementation/afprøvning? Punkt 2: Kræver definition af hvad er kvalitet. Sammenligning: ved analyse eller implementation/afprøvning? Analyse (): Giver (høj) sikkerhed for korrekthed. Sparer arbejde. Sammenligning upåvirket af: maskine, sprog, programmør, konkrete input. (Men: relevans for virkelighed skal holdes for øje.)

Udvikling og vurdering af algoritmer 1 Find (mindst) een algoritme der løser problemet. 2 Sammenlign flere algoritmer der løser problemet. 3 Hvad er den bedste algoritme der kan findes? Punkt 1: Kræver ideer, tænkearbejde, erfaring, og et bagkatalog af algoritmer. Korrekthed: ved analyse eller implementation/afprøvning? Punkt 2: Kræver definition af hvad er kvalitet. Sammenligning: ved analyse eller implementation/afprøvning? Analyse (): Giver (høj) sikkerhed for korrekthed. Sparer arbejde. Sammenligning upåvirket af: maskine, sprog, programmør, konkrete input. (Men: relevans for virkelighed skal holdes for øje.) I alle byggefag analyserer og planlægger man før man bygger (tænk storebæltsbro). Din fremtidige chef vil (bør) forlange det!

Udvikling og vurdering af algoritmer 1 Find (mindst) een algoritme der løser problemet. 2 Sammenlign flere algoritmer der løser problemet. 3 Hvad er den bedste algoritme der kan findes? Punkt 1: Kræver ideer, tænkearbejde, erfaring, og et bagkatalog af algoritmer. Korrekthed: ved analyse eller implementation/afprøvning? Punkt 2: Kræver definition af hvad er kvalitet. Sammenligning: ved analyse eller implementation/afprøvning? Analyse (): Giver (høj) sikkerhed for korrekthed. Sparer arbejde. Sammenligning upåvirket af: maskine, sprog, programmør, konkrete input. (Men: relevans for virkelighed skal holdes for øje.) I alle byggefag analyserer og planlægger man før man bygger (tænk storebæltsbro). Din fremtidige chef vil (bør) forlange det! Og bemærk: Punkt 3 kan kun afklares med analyse.

Målsætning for kurset

Målsætning for kurset er en værktøjskasse af algoritmer for fundamentale problemer, samt metoder til at udvikle og analysere nye algoritmer og varianter af eksisterende.

Målsætning for kurset er en værktøjskasse af algoritmer for fundamentale problemer, samt metoder til at udvikle og analysere nye algoritmer og varianter af eksisterende.

Målsætning for kurset er en værktøjskasse af algoritmer for fundamentale problemer, samt metoder til at udvikle og analysere nye algoritmer og varianter af eksisterende.

Målsætning for kurset Regneøvelser og programmeringsprojekter øger forståelse for værktøjerne og træner brugen af værktøjskassen i praksis.

Målsætning for kurset Regneøvelser og programmeringsprojekter øger forståelse for værktøjerne og træner brugen af værktøjskassen i praksis. Undervejs begejstres man også over smarte og elegante ideer brugt i algoritmekonstruktion og -analyse.

Formel målbeskrivelse for eksamen.

Formel målbeskrivelse for eksamen. Ved kursets afslutning forventes den studerende at kunne: Anvende algoritmerne fra kurset på konkrete problemer. Argumentere præcist for en algoritmes korrekthed eller mangel på samme. Bestemme en algoritmes asymptotiske køretid. Tilpasse kendte algoritmer og datastrukturer til specialtilfælde af kendte problemer og til nye problemer. Designe nye algoritmer til at løse problemer, som i natur minder om problemer fra kurset. Herunder give en præcis beskrivelse af algoritmen, feks. vha. pseudokode. Foretage fornuftige valg af datastruktur. Designe nye datastrukturer baseret på kendte datastrukturer. Designe og implementere et større program, som bl.a. anvender algoritmer og datastrukturer fra kurset. Argumentere præcist for de valg, der foretages i forbindelse med foregående 4 punkter.

Algoritmer: Korrekthed og kompleksitetsanalyse Del og hersk algoritmer Grådige algoritmer Dynamisk programmering Sortering Graf-algoritmer Huffman-kodning Datastrukturer: Ordbøger (søgetræer og hashing) Prioritetskøer (heaps) Disjunkte mængder

I DM537 (DM534) har I (nogle) allerede mødt:

I DM537 (DM534) har I (nogle) allerede mødt: Algoritmer: Binær søgning Sortering: InsertionSort, Mergesort, Datastrukturer: Kø, stak, liste. Hashing

Korrekthed af algoritmer: Terminerer (for alle input). Korrekt output (for alle input) når terminerer.

Korrekthed af algoritmer: Terminerer (for alle input). Korrekt output (for alle input) når terminerer. Kvalitet af algoritmer: Hastighed Pladsforbrug Kompleksitet af implementation Ekstra egenskaber (problemspecifikke), f.eks. stabilitet af sortering.

Korrekthed af algoritmer: Terminerer (for alle input). Korrekt output (for alle input) når terminerer. Kvalitet af algoritmer: Hastighed Pladsforbrug Kompleksitet af implementation Ekstra egenskaber (problemspecifikke), f.eks. stabilitet af sortering. For dette kræves modellering af problem og maskine, en definition af kvalitet, samt en matematisk/datalogisk værktøjskasse af analyseredskaber.

i algoritmeanalyse

i algoritmeanalyse Model af problem. Problemspecifikt.

i algoritmeanalyse Model af problem. Problemspecifikt. Model af maskine. Ofte RAM-modellen (alias von Neumann modellen).

i algoritmeanalyse Model af problem. Problemspecifikt. Model af maskine. Ofte RAM-modellen (alias von Neumann modellen). Mål for ressourceforbrug (tid og plads).

i algoritmeanalyse Model af problem. Problemspecifikt. Model af maskine. Ofte RAM-modellen (alias von Neumann modellen). Mål for ressourceforbrug (tid og plads). Matematiske/datalogiske analyseværktøjer: Løkkeinvarianter, induktion, rekursionsligninger,...

RAM-modellen

RAM-modellen En CPU En hukommelse ( uendeligt array af celler). Et antal basale operationer: add, sub, mult, shift, sammenligning, flyt dataelement mellem celler i hukommelsen. Disse antages alle at tage samme tid. Tid for en algoritme sættes lig antal basale operationer udført. Plads for en algoritme sættes lig det maksimale antal hukommelsesceller som er optaget under kørslen.

Måle ressourceforbrug

Måle ressourceforbrug For en givet størrelse n af input er der ofte mange forskellige input instanser. Algoritmen har som regel forskelligt ressourceforbrug på hver af disse. Hvilket skal vi bruge til at vurdere ressourceforbruget?

Måle ressourceforbrug For en givet størrelse n af input er der ofte mange forskellige input instanser. Algoritmen har som regel forskelligt ressourceforbrug på hver af disse. Hvilket skal vi bruge til at vurdere ressourceforbruget? Worst case (max over alle input af størrelse n) Average case (gennemsnit over en fordeling af input af størrelse n) Best case (min over alle input af størrelse n) Køretid for de forskellige input af størrelse n

Worst case ressourceforbrug Worst case giver garanti. Ofte repræsentativ for average case (men nogen gange betydeligt mere pessimistisk).

Worst case ressourceforbrug Worst case giver garanti. Ofte repræsentativ for average case (men nogen gange betydeligt mere pessimistisk). Average case: Hvilken fordeling? Er den realistisk? Ofte svær analyse at gennemføre (matematisk svær)

Worst case ressourceforbrug Worst case giver garanti. Ofte repræsentativ for average case (men nogen gange betydeligt mere pessimistisk). Average case: Hvilken fordeling? Er den realistisk? Ofte svær analyse at gennemføre (matematisk svær) Best case: Giver som regel ikke megen relevant information.

Worst case ressourceforbrug Worst case giver garanti. Ofte repræsentativ for average case (men nogen gange betydeligt mere pessimistisk). Average case: Hvilken fordeling? Er den realistisk? Ofte svær analyse at gennemføre (matematisk svær) Best case: Giver som regel ikke megen relevant information. Næsten alle analyser i dette kursus er worst case.

Forskellige inputstørrelser Worstcase køretid er normalt en voksende funktion af inputstørrelsen n: Køretid for de forskellige input af stigende størrelse n

Voksehastighed Forbruget skal derfor ses som en funktion f (n) af inputstørrelsen n.

Voksehastighed Forbruget skal derfor ses som en funktion f (n) af inputstørrelsen n. (Her skal der for for hvert problem vedtages en måleenhed for inputstørrelse n f.eks. antal dataelementer eller bytes i input.)

Voksehastighed Forbruget skal derfor ses som en funktion f (n) af inputstørrelsen n. (Her skal der for for hvert problem vedtages en måleenhed for inputstørrelse n f.eks. antal dataelementer eller bytes i input.) Vi har derfor brug for at sammenligne funktioner. Det relevante mål er voksehastighed - en hurtigere voksende funktion vil altid overhale en langsomt voksende funktion når n bliver stor nok. Og for små n er (næsten) alle algoritmer hurtige.

Voksehastighed Eksempler (stigende voksehastighed): 1, log n, n, n/ log n, n, n log n, n n, n 2, n 3, n 10, 2 n

Voksehastighed Eksempler (stigende voksehastighed): 1, log n, n, n/ log n, n, n log n, n n, n 2, n 3, n 10, 2 n Næste gang: mere præcis definition af asymptotisk voksehastighed og sammenligninger heraf.

på algoritmeanalyse Jul i Valhalla...

på algoritmeanalyse Hvilken bedste (laveste) score kan du opnå på 5 forsøg?

på algoritmeanalyse Hvilken bedste (laveste) score kan du opnå på 5 forsøg? Hvad er det bedst mulige? Afhænger det af input (startopstillingen)? Hvilken algoritme bruger du? Kan du sige noget om bedste og værste køretid for din algoritme for puslespil med n brikker? Er køretiden lig antal brikker, som står rigtigt til at starte med?

på algoritmeanalyse Hvilken bedste (laveste) score kan du opnå på 5 forsøg? Hvad er det bedst mulige? Afhænger det af input (startopstillingen)? Hvilken algoritme bruger du? Kan du sige noget om bedste og værste køretid for din algoritme for puslespil med n brikker? Er køretiden lig antal brikker, som står rigtigt til at starte med? Er den grådige algoritme (sæt een på plads i hvert skridt) optimal, eller kan man få flere skridt hvor to sættes på plads ved nogle gange at undlade at sætte een på plads? Omvendt, hvis grådig er optimal, skal man sætte een på plads hver gang for at være optimal?

Hvad har vi lært i dag? 1 2 3 4 5 6