Perspektiverende Datalogi Klassiske Algoritmer

Slides:



Advertisements
Lignende præsentationer
Patron: His Royal Highness Crown Prince Frederik Præsentation af WOC-06 for publikum.
Advertisements

en dag i indskolingen på Givskud skole
Elevens læringsuge for Hovedforløbet PV MandagTirsdagOnsdagTorsdagFredag Kl. 8.15– ¾ timers blok inkl. 15 min. pause Kl. 8.15– ¾ timers blok.
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
Information om den ændrede skoledag Komme- og gåtider m.m. for elever Juni 2014.
Sammen vender vi strømmen. Program måndag den 12. maj 2014 Kl Registrering af delegater. Kl Åbning af NBS NBS Ordförende.
Dagens øvelse Forberedelse til bunden opgave
Intern survey uge 45.
De grønne pigespejdere Regionslejr Aftenens program • Rejse tider • Hvad går pengene til? • Madbudget • Spire- og smutterne • Program og aktiviteter.
UGE 14 SFO. Mandag Sportsplads: Meld jer til Møde kl.13.30: Nikolai, Mattias O, Phoebe, Mathias D, Maiken, Natascha og Cille X-Sonja.
FEN IntroJava AAU1 Introduktion til Java programmering Kursusintroduktion Introduktion til programmering Java og BlueJ.
av Lajla Ellingsen og Mari By Rise Adresseavisen
Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS 15] Gerth Stølting Brodal.
0.-6. årg., Haderslevreformen og Folkeskolereformen Juni 2014
© Capacent 0 Projektledelse som karrierevej Dansk projektledelses Forskningsprogram 28. Januar 2011Roskilde Universitets Center.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
De grønne pigespejdere Regionslejr Aftenens program Rejse tider Hvad går pengene til? Madbudget Spire- og smutterne Program og aktiviteter Kom med.
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ] Gerth Stølting Brodal.
Afskedsreception for Erik Granum Program: 13.00Velkomst ved professor Lise B. Kofoed “Something about boxes” ved lektor Claus B. Madsen “Colour.
Folkeskolereform på Vestre Skole 2014
VE-anlæg Valg af vedvarende energikilder (case).
Velkommen til SkillsCamp Uge 42
Gl. Hellerup Der er brug for dig Min. 17 år Veje min. 50 kg. Være sund og rask.
Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS, kapitel 15] Gerth Stølting Brodal Aarhus Universitet.
Mandag den 12. november Bordtennis i gymnastiksalen kl. 14. Poolturnering kl. 14. Der er blevet lavet JULEPYNT (uha uha) julen er nær … der er blevet arbejdet.
Informationsmøde om skolereformen 17. Juni 2014 Nordals Skolen.
1 Algoritme til at løse knude P-center problemet Algoritmen brugte set covering problemet Virker derfor kun til knude problemer Vi vil alligevel bruge.
Himmelev gymnasium & Ungeprojektet Uge
Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS 15] Gerth Stølting Brodal.
IMODUS – IHK Workshop om Blended Learning Workshopintroduktion.
Mandag 24. september Gymnastiksal kl. 14 – Gymnastiksal kl. 14 – Mountainbiketur for 2.B’s drenge kl – Mountainbiketur for.
Mandag den 14. april Gymnastiksal 14 – 15. Bo syg.
Uge 22 Man- poolturnering. Tirs- udedag og mountainbike. Ons- Carlsen Cup. Tors- fællestur til Engen. Fre- poolturnering.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Mønstergenkendelse [CLRS, kapitel , 32.4]
1 Vi ser nu på en general graf Men antager at alle afstande er heltallige (Det er ikke så restriktivt) Algoritmen leder efter den mindst mulige dækningsdistance.
Grunde til at jeg elsker dig
SAMMEN GØR VI DIG BEDRE 1 Rammesætning Kompetenceudvikling af pædagogiske ledere.
SAMMEN GØR VI DIG BEDRE 1 Velkommen til 2. undervisningsgang Kompetenceudvikling af pædagogiske ledere.
Kl.MandagTirsdagOnsdagTorsdagFredag 8:30-10:00Intro til Økonomi RenteformelOpsparingLånGruppe- video-opgave 10:15-11:45Penge Excel & Geogebra Tips & Tricks.
Strategiseminar 28. og 29. januar 2008, Bogense Velkomst Praktiske forhold Programoversigt for de to dage.
Nørre Aaby Realskole - en skole jeg er stolt af Velkommen til info-møde om 10. klasse GYM10.
Perspektiverende Datalogi 2011 Klassiske Algoritmer Gerth Stølting Brodal.
Mandag den 29. 0ktober  Bo på kursus  B klassen er ude til kl.13,  A,C,D klassen er ude til 14.  Bordtennistræning i drengenes gymnastiksal fra kl.
Mandag den 28. april Mountainbiketur for pigerne i 2.B kl Uge 18 Man. Tirs. – udedag. Ons. – fælles udedag. Tors. – Kristi himmelfart. Fre. –
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
Mandag den 1. oktober  Drengenes gymnastiksal  Vi har lavet flotte armbånd af nye smykkesten.  Mange øver sig på poolspillet.  Der bliver leget.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal.
SFO UGE:33. Velkommen tilbage fra sommerferien. Husk: Møder du i SFO inden kl.7.30, skal du gå i det gule hus, da vi åbner der.
1 Center problems Placer et givet antal nye faciliteter Alt efterspørgsel skal dækkes Dækningsdistancen skal minimeres.
Et eller andet datalogi… Gerth Stølting Brodal Institut for Datalogi Aarhus Universitet Voronoi Diagrammer Datalogi, Studiestart 2013.
Algoritmer og Datastrukturer 1 Union-Find [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal.
PROGRAM FOR UDVEKSLING 8. – 18. APRIL TIRSDAG DEN 8. APRIL  Islændingene ankommer til banegården.  Velkomst på Tornbjerg. Fællesspisning.
AFSLUTTENDE RAPPORT Afleveres senest mandag den 11. maj kl til Ida.
Algoritmer og Datastrukturer 2 Grådige Algoritmer [CLRS ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Algoritmer og Datastrukturer 1 ”Rush Hour” Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Topologisk Sortering, Stærke Sammenhængskomponenter [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Introduktion til programmering Kursusoversigt. dIntProg, F08Kursusintroduktion.2 dIntProg Forelæsninger –Fire timer om ugen –Mandag samt fredag.
Introduktion til programmering Kursusoversigt. dIntProg, E08Kursusintroduktion.2 Mål (fra kursusbeskrivelsen) Deltagerne skal ved afslutning af kurset.
Algoritmer og Datastrukturer 2 Topologisk Sortering, Stærke Sammenhængskomponenter [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
2017.
Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS 15]
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 1
Præsentationens transcript:

Perspektiverende Datalogi Klassiske Algoritmer Gerth Stølting Brodal

Ugens Program Mandag 10.15‐12.00 Introduktion til Algoritmik Gerth Stølting Brodal Tirsdag 9.15‐12.00 Øvelser ‐ Open Learning Center 12.15‐13.00 Opgave 11: Længste voksende delsekvens Gerth Stølting Brodal 13.15‐16.15 Øvelser ‐ Open Learning Center Onsdag 14.15‐16.00 Historisk perspektiv Erik Meineche Schmidt

Algoritmer Algoritme Klart beskrevet metode til løsning af en opgave Eksempler Madopskrift Strikkeopskrift Computerprogram 50-35-30 g Tvinni to-trådet grøn Pinde nr. 3 Slå 38-28-20 m op, strik 4-3-3 p glatstr, start med r p. Lav raglan-indtag 2 r 2 dr r sm. 2 dl havregryn 4 dl vand Hæld alt i gryde. Kog 3 min. Smag til med salt. int i,k; for (i=0;i<N;i++){ C[A[i]]++; k = k+i; } Hver algoritme er beskrevet i sit eget sprog. Hvordan ”smag”er man til med salt?

Beregningsmodeller Formel model: Beskriver præcis hvad en algoritme kan gøre, præcis definition af resourceforbrug Turing maskine Boolske netværk Aritmetiske netværk Sorterings netværk ( Øvelse 6 )

= designe og analysere algoritmer Algoritmik = designe og analysere algoritmer Kvalitet af algoritme: Korrekt, d.v.s. løser bevisligt problemet Effektiv - lavt ressourceforbrug, f.eks. – Tid – Plads Nem at programmere Problem-specifikke egenskaber

Teltstangsfoldning, øvre og nedre grænser

Søgning i Sorteret Liste 3 7 9 11 13 27 33 37 42 89 Sorteringsnetværk 1+ log2 n sammenligninger

Sortering 11 42 16 7 16 29 11 42 29 7 Sorteringsnetværk ( Øvelser 1-10 )

Begreber Analyse af algoritme Analyse af problem Modeller assymptotisk tid øvre grænse worst-case best-case Analyse af problem nedre grænse (alle algoritmer tager lang tid) adversary/modspiller (strategi for at finde et dårligt input for en given algoritme) Modeller sorteringsnetværk ( øvelser 6 ) beslutningstræer ( øvelser 9 )

Matematik repetition x 1 2 4 8 ∙∙∙ 64 80 128 log2(x) 3 6 6.3219 7 3 6 6.3219 7 e = 2,71828183 26 = 64 log(x) = log2(x) log(x) ≠ log10(x) log(x) ≠ loge(x) = ln(x) y = log2(x)  x = 2 y log2(x ∙ y) = log2(x) + log2(y) NB: Ascii notation ofte 23=2^3 NB: I datalogi...

Husk Hver læsegruppe skal tirsdag medbringe: en saks, to-tre ure med sekundvisere, skriveredskaber og lidt kladdepapir, evt. en lommeregner (gerne grafisk) 

Indhold Eksempler på beregningsproblemer Algoritmer og deres analyse Korrekthed af algoritmer Ressourceforbrug for algoritmer Kompleksitet af beregningsproblemer

Beregningsproblemer Sortering Søgning Grafer Strenge Geometri Numeriske beregninger Kombinatorisk optimering …

Sortering Problem Stil en mængde elementer i orden 110 755 766 51 652 28 729 713 681 407  28 51 110 407 652 681 713 729 755 766 Data er meget bekvemmere hvis de er sorterede. Specielt er det nemmere at lede i dem (ordbøger, telefonbøger, eksamensopslag, ... ) Brugt som rutine i mange andre algoritmer Meget velstuderet problem Mange algoritmer ( øvelser 1-10 + QuickSort + . . . )

Søgning Problem: Gem data så de kan findes igen effektivt Find(x) Insert(x) Delete(x) Successor(x), RangeSearch(x1, x2), ... Et andet meget fundamentalt problem (jvf. databaser) Brugt som rutine i mange andre algoritmer Meget velstuderet, mange algoritmer To grundgrupper: søgetræer og hashing

Grafer Knuder (punkter) og kanter (streger mellem punkter) Ekstra struktur: orientering af kanter, vægte på kanter En meget anvendt model: Flyruter, veje, el/vand/computer netværk, bekendtskaber og andre relationer, weblinks, ...

Problemer på grafer Løb grafen igennem (besøge alle knuder) Sammenhæng, k-sammenhæng (Mindste) udspændende træ Hamilton tur, rejsende sælger Korteste veje Euler tur Graffarvning Klike …

Strenge Alfabet = mængde af tegn som kan bruges Streng = sekvens af tegn fra alfabetet Eksempler: “To be or not to be” 10001100110001110 ACCCATTCCGTAA

Problemer på Strenge Mønster genkendelse Regulære udtryk Afstandsmål (Hamming, edit) Længste fælles delstreng Længste fælles delsekvens …

Kombinatorisk Optimering Spande pakning (1D, 2D, 3D) Rygsæk Delmængde sum Job-skemaplanlægning Crew-skemaplanlægning …

Geometri Konvekse hylster Nærmeste naboer Krydsninger af ortogonale linjesegmenter 2D område søgninger …

Numeriske Beregninger Polynomieevaluering Matrixmultiplikation Løsning af ligningssystemer Løsning af differentialligninger … (6/7-1)*7+1 = -4.44089209850063e-16 ?

Indhold Eksempler på beregningsproblemer Algoritmer og deres analyse Korrekthed af algoritmer Ressourceforbrug for algoritmer Kompleksitet af beregningsproblemer

Invarianter Udsagn I som gælder efter alle skridt i algoritmen Vælges så: Man kan vise at I gælder ved starten Man kan vise at hvis I gælder før et skridt, så gælder det efter Man kan vise af I samt omstændigheder ved algoritmens afslutning implicerer det ønskede slutresultat Eksempler: Binær søgning, RadixSort (øvelse 7), ... 3 7 9 11 13 27 33 37 42 89

Indhold Eksempler på beregningsproblemer Algoritmer og deres analyse Korrekthed af algoritmer Ressourceforbrug for algoritmer Kompleksitet af beregningsproblemer

Ressourceforbrug, målestok RAM-modellen Tidsmåling vs. analyse Voksehastighed, asymptotisk notation Worst case, best case, average case … Først vælge (eller designe) algoritme efter forskelle i asymptotisk ressourceforbrug Ved lighed, vælg dernæst efter konstanter (tidsmåling nu relevant)

Indhold Eksempler på beregningsproblemer Algoritmer og deres analyse Korrekthed af algoritmer Ressourceforbrug for algoritmer Kompleksitet af beregningsproblemer

= studere problemers iboende sværhedsgrad Kompleksitet Kompleksitetsteori = studere problemers iboende sværhedsgrad Kompleksitetsklasser: Klasse(X,Y) = De problemer, som kan løses i model X med ressourceforbrug Y. Mål Øvre grænser (d.v.s. algoritmer) og nedre grænser (d.v.s. beviser for at ingen algoritme i model X kan løse problemet med ressourceforbrug mindre end Y). wikipedia.org

Nedre Grænser Beviser for at ingen algoritme (blandt en stor klasse af algoritmer for en given beregnings-model) kan løse problemet bedre end angivet Eksempler: Søgning og Sortering Øvre og nedre grænser ens  problemets kompleksitet kendt

Eksempel: sortering vs. brute-force løsning af puslespil ( øvelse 17 ) P  EXP Meget grov inddeling af algoritmer i gode og dårlige: P = problemer med polynomiel tids algoritme v.s. EXP = problemer med eksponentiel tids algoritme Eksempel: sortering vs. brute-force løsning af puslespil ( øvelse 17 )

NP NP = ja/nej-problemer, hvor en ja-løsning kan kontrolleres (men ikke nødvendigvis findes) i polynomiel tid Eksempel: Hamilton tur Det er nemt at se at P  NP  EXP Formodning: P  NP

Hvis ingen polynomiel algoritme... Heuristisk søgning Algoritmer for specielle instanser (jvf. “The Eternity Puzzle”) Approximationsalgoritmer Eternity is a tiling puzzle created by Christopher Monckton and launched by the Ertl Company in June 1999. Consisting of 209 pieces, it was marketed as being practically unsolveable, with a £1 million prize on offer for whoever could solve it within four years. The prize was paid out in October 2000 for a winning solution arrived at by two mathematicians from Cambridge.

Flere modeller og cost-funktioner Online algoritmer Randomiserede algoritmer Parallelisme Hukommelseshierarkier ...

Algoritmik Designe algoritmer Analysere algoritmer Analysere problemer David Harel “Algorithmics is more than a branch of computer science. It is the core of computer science, and, in all fairness, can be said to be relevant to most of science, business, and technology.”

Øvelse 11 (Længste voksende delsekvens) Betragt følgende liste af tal. 30 83 73 80 59 63 41 78 68 82 53 31 22 74 6 36 99 57 43 60 Øvelsen er at slette så få af disse tal som muligt, så de resterende tal står i voksende orden. Hvis for eksempel alt på nær de første to tal slettes, har man en voksende følge tilbage af længde 2 (30 83). Ved at slette alt på nær det første, tredie, ottende og tiende opnår man det samme, men har slettet færre tal og har en voksende følge tilbage af længde 4 (30 73 78 82). Spørgsmål Hvor lang er den længste voksende følge man kan opnå ?