DM507 Algoritmer og datastrukturer
|
|
|
- Minna Kristoffersen
- 6 år siden
- Visninger:
Transkript
1 DM507 Algoritmer og datastrukturer Introduktion til kurset Rolf Fagerberg Forår / 20
2 Hvem er vi? Underviser: Rolf Fagerberg, Institut for Matematik og Datalogi (IMADA) Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software Engineering BA i Matematik-Økonomi BA i Anvendt Matematik BA sidefag i Datalogi Stor diversitet: forskellige semestre (2./4./6.) i uddannelsen, forskellige mængder af programmering og af matematiske fag på uddannelsen. 2 / 20
3 Kursets format Forudsætninger: Format: Programmering i Java, lidt matematik Forelæsninger (I-timer). Ofte 3 x 30 min. Opgaveregning (TE-timer). Med instruktor. Arbejde selv og i studiegrupper Eksamenform: Skriftlig eksamen (juni): Multiple-choice (med bøger, noter, computer). efter 7-skala. Mål: check af kendskab til stoffet. Projekt undervejs: Karakter I flere dele. Karakter B/IB. Skal bestås for at gå til skriftlig eksamen. Mål: træne overførsel af stoffet til praksis (programmering). 3 / 20
4 Materialer Lærebog: Cormen, Leiserson, Rivest, Stein: Introduction to Algorithms, 3rd edition, Andet læremateriale på kursets webside: Slides fra forelæsninger Links til videoer Opgaver til øvelsestimer Tidligere eksamenssæt Projektet Stoffet findes i fuld detalje i tre udgaver: lærebog, slides, video. Brug de dele, som virker bedst for dig (gerne flere dele). 4 / 20
5 Forventet arbejdsindsats Skim stof før forelæsning: 0,5 timer mindst vigtig Forelæsning: 2 timer Læs stof efter forelæsning: 1,5 timer Opgaveregning (forberedelse): 3 timer Opgaveregning (klasse): 2 timer mest vigtig Ovenstående i gennemsnit 1.5 gang per uge over 14 uger. Dertil følgende én gang: Projektet: timer Eksamenslæsning: 40 timer Spørgetime og eksamen: 6 timer I alt: = 290 timer 10 ECTS = 1/6 årsværk = 1650/6 timer = 275 timer 5 / 20
6 Kursets formål og plads i det store billede Generelt mål i IT: Få computer til at udføre en opgave. Relaterede spørgsmål: Hvordan skrives programmer? Programmering, programmeringssprog, software engineering. Hvordan skal programmet løse opgaven? DM507 Algoritmer og datastrukturer, databasesystemer, lineær algebra med anvendelser, data mining og machine learning. (Hvor godt) er det overhovedet muligt at løse opgaven? Nedre grænser, kompleksitet, beregnelighed. Hvordan fungerer maskinen der udfører opgaven? Baggrundsviden om computerarkitektur og operativsystemer. 6 / 20
7 Fokus: Hvordan skal programmet løse opgaven? 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. Relevante opgaver for enhver beregningsopgave: 1. Find (mindst) én algoritme der løser opgaven. 2. Sammenlign flere algoritmer der løser opgaven. 3. Hvad er den bedste algoritme der kan findes? 7 / 20
8 Udvikling og vurdering af algoritmer 1. Find (mindst) én algoritme der løser opgaven. 2. Sammenlign flere algoritmer der løser opgaven. 3. Hvad er den bedste algoritme der kan findes? Punkt 1: Kræver ideer, tænkearbejde, erfaring, og en værktøjskasse af kendte 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 implementationsarbejde. Sammenligning upåvirket af: maskine, sprog, programmør, konkrete input. I alle byggefag analyserer og planlægger man før man bygger (tænk storebæltsbro). Din fremtidige chef vil forlange det! (Bemærk: Punkt 3 kan kun afklares med analyse.) DM507 vil have mest fokus på analyse, lidt mindre på implementation. 8 / 20
9 Målsætning for kurset DM507 giver dig en værktøjskasse af algoritmer for fundamentale opgaver, samt metoder til at udvikle og analysere nye algoritmer og varianter af eksisterende. 9 / 20
10 Målsætning for kurset Regneøvelser og programmeringsprojekter øger din forståelse for værktøjerne og træner dig i brug af værktøjskassen. Undervejs begejstres du måske også over smarte og elegante ideer i algoritmer og analyser. 10 / 20
11 Konkret indhold af kurset Algoritmer: Analyse af algoritmer: korrekthed og køretid 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 11 / 20
12 Algoritmeanalyse Mindstekrav til algoritmer for at løse et problem: Stopper for alle input. Korrekt output når stopper. Kvalitet af algoritmer som opfylder mindstekrav: Hastighed Pladsforbrug Kompleksitet af implementation Ekstra egenskaber (problemspecifikke), f.eks. stabilitet af sortering. For dette kræves følgende ingredienser: klar beskrivelse af problem og maskine (modeller), en definition af kvalitet, samt en værktøjskasse af analyseredskaber. 12 / 20
13 Ingredienser i algoritmeanalyse Model af problem. Individuelt for hvert problem. Model af maskine. Ofte RAM-modellen (alias von Neumann modellen). Mål for ressourceforbrug (tid og plads). Matematiske analyseværktøjer: Løkkeinvarianter, induktion, rekursionsligninger. 13 / 20
14 RAM-modellen En CPU En hukommelse ( uendeligt array af celler). Et antal basale operationer: add, sub, mult, shift, compare, flyt dataelement, jump i program (løkke, forgrening, metodekald). Disse antages alle at tage samme tid. Tid for en algoritme: antal basale operationer udført. Plads for en algoritme: maks antal optagne hukommelsesceller. 14 / 20
15 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 15 / 20
16 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 ofte ikke så megen relevant information. Næsten alle analyser i dette kursus er worst case. 16 / 20
17 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 17 / 20
18 Voksehastighed Forbruget skal derfor ses som en funktion f (n) af inputstørrelsen n. 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. 18 / 20
19 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. 19 / 20
20 Konkret eksempel på algoritmeanalyse Ombytningspuslespil / 20
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
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
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
Introduktion til Datalogi
Introduktion til Datalogi DM534/DM558 Rolf Fagerberg Mål og midler Mål og midler Mål for kurset: 1. Hurtig indsigt i mange dele af datalogi. Dette giver perspektiv på faget og studiet og dermed øget motivation.
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
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 20. april, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Programmering, algoritmik og matematik en nødvendig sammenblanding?
Programmering, algoritmik og matematik en nødvendig sammenblanding? Oplæg til IDA møde, 29. november 2004 Martin Zachariasen DIKU 1 Egen baggrund B.Sc. i datalogi 1989; Kandidat i datalogi 1995; Ph.D.
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2017 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 6. april, 2017 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del III Institut for matematik og datalogi Syddansk Universitet 10. april, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Asymptotisk analyse af algoritmers køretider
Asymptotisk analyse af algoritmers køretider 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:
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
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
Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)
Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Onsdag den 0. juni 009, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
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
Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)
Skriftlig Eksamen Algoritmer og Datastrukturer (DM507) Institut for Matematik og Datalogi Syddansk Universitet, Odense Mandag den 7. juni 00, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater, osv.)
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
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
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
Algoritmeanalyse. Øvre grænse for algoritme. Øvre grænse for problem. Nedre grænse for problem. Identificer essentiel(le) operation(er)
Algoritmeanalyse Identificer essentiel(le) operation(er) Øvre grænse for algoritme Find øvre grænse for antallet af gange de(n) essentielle operation(er) udføres. Øvre grænse for problem Brug øvre grænse
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:
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.......................................
Skriftlig Eksamen Diskret Matematik (DM528)
Skriftlig Eksamen Diskret Matematik (DM528) Institut for Matematik & Datalogi Syddansk Universitet Tirsdag den 20 Januar 2009, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger, notater etc.) samt brug
Skriftlig Eksamen Algoritmer og Sandsynlighed (DM538)
Skriftlig Eksamen Algoritmer og Sandsynlighed (DM538) Institut for Matematik og Datalogi Syddansk Universitet, Odense Fredag den 25. januar 2013 kl. 1013 Alle hjælpemidler (computer, lærebøger, notater,
Skriftlig Eksamen Algoritmer og sandsynlighed (DM538)
Skriftlig Eksamen Algoritmer og sandsynlighed (DM538) Institut for Matematik & Datalogi Syddansk Universitet Fredag den 9 Januar 2015, kl. 10 14 Alle sædvanlige hjælpemidler(lærebøger, notater etc.) samt
Datalogistudiet. Rolf Fagerberg. Institut for Matematik og Datalogi Syddansk Universitet. Studiestart, 1. september 2014
Datalogistudiet Rolf Fagerberg Institut for Matematik og Datalogi Syddansk Universitet Studiestart, 1. september 2014 Datalogistudiet Studiestart, 1. september, 2014 1 / 15 Hvad arbejder du med bagefter?
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
Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528)
Skriftlig Eksamen Kombinatorik, sandsynlighed og randomiserede algoritmer (DM528) Institut for Matematik & Datalogi Syddansk Universitet Mandag den 3 Januar 2011, kl. 9 13 Alle sædvanlige hjælpemidler
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
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
Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012. May 15, 2012
Algoritmer og datastrukturer Course No. 02105 Cheat Sheet 2012 May 15, 2012 1 CONTENTS 2012 CONTENTS Contents 1 Kompleksitet 3 1.1 Køretid................................................ 3 1.2 Asymptotisk
CPUer og maskinkode DM534. Rolf Fagerberg
CPUer og maskinkode DM534 Rolf Fagerberg CPUers opbygning En CPU er bygget op af elektriske kredsløb (jvf. sidste forelæsning), som kan manipulere bits. En CPU manipulerer flere bits ad gangen, deres antal
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.
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
Læseplan for Foråret 2017, Odense
Matematik-Økonomi, 2. semester Semestret starter onsdag den 1. februar 2017. For fag udbudt af Samfundsvidenskab gælder, at øvelserne starter efter, at første forelæsning har fundet sted, medmindre andet
Datalogistudiet. Institut for Matematik og Datalogi (IMADA) SDU. Information til kommende studerende
Datalogistudiet Institut for Matematik og Datalogi (IMADA) SDU Information til kommende studerende Indhold Hvad er datalogi? Hvad arbejder man med bagefter? Hvordan er det at studere? Hvordan er instituttet
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
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2012 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 15. marts, 2012 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Prioritetskøer og hobe. Philip Bille
Prioritetskøer og hobe Philip Bille Plan Prioritetskøer Træer Hobe Repræsentation Prioritetskøoperationer Konstruktion af hob Hobsortering Prioritetskøer Prioritetskø Vedligehold en dynamisk mængde S af
DM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2015 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 3. marts, 2015 Dette projekt udleveres i to dele. Hver del har sin deadline, således
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:
Symmetrisk Traveling Salesman Problemet
Symmetrisk Traveling Salesman Problemet Videregående Algoritmik, Blok 2 2008/2009, Projektopgave 2 Bjørn Petersen 9. december 2008 Dette er den anden af to projektopgaver på kurset Videregående Algoritmik,
IMADAs Fagråd. Evalueringsrapport. Matematik & Datalogi. 2. juni 2011. Kontaktpersoner
Evalueringsrapport Matematik & Datalogi 2. juni 2011 Kontaktpersoner Christian Kudahl - [email protected] Maria Buhl Hansen - [email protected] Indhold Indhold 2 1 Indledning 4 1.1 Matematik-økonomi.......................
Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output...
Indhold Maskinstruktur... 3 Kapitel 1. Assemblersprog...3 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... 9 Kapitel 2. Maskinkode... 13 2.1 Den fysiske maskine... 13 2.2 Assemblerens
Perspektiverende Datalogikursus
Perspektiverende Datalogikursus Algoritmer og kompleksitet Gerth Stølting Brodal 1 Perspektiverende kursus Formål: Vise bredden af Datalogi. Vise fagets anvendelighed. Vise konkrete eksempler på hvad datalogi
Dynamisk programmering
Dynamisk programmering Dynamisk programmering Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Har en hvis lighed med divide-and-conquer: Begge opbygger løsninger til større problemer
Programmering. Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen
Programmering Det rent og skært nødvendige, det elementært nødvendige! Morten Dam Jørgensen Oversigt Undervisningen Hvad er programmering Hvordan er et program organiseret? Programmering og fysik Nobelprisen
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
