Kursöversikt
Viggo Kann [VK] och Stefan Nilsson [SN] delar på föreläsningarna, som under period 1 genomförs via Zoom: https://kth-se.zoom.us/j/66455760375 Links to an external site.
Under period 2 ges föreläsningarna i sal enligt ordinarie schema.
Nedanstående tabell visar vad som kommer att behandlas under föreläsningarna och övningarna. För varje föreläsning anges vilket material i kurslitteraturen som behandlas. Du bör ha skummat det innan du kommer till föreläsningen för att ha riktig glädje av föreläsningen. I tabellen nedan finns länkar till föreläsningsbilder, övningsuppgifter och annat material.
Föreläsning 9-11 om dynamisk programmering samt föreläsning 20 och 21 om reduktioner och introduktion till komplexitet har omvänd undervisning, så videor ska ses och uppgifter ska göras före dessa föreläsningar. Första timmen på föreläsning 9, 10, 11 och 20 är avsatt för att du ska kunna göra förberedelserna.
Undervisning, redovisningar och läsanvisningar
- KT=Kleinberg-Tardos, oavsett om det är KTorig eller KTnie
- KTorig=Kleinberg-Tardos International Edition (2006) eller motsvarande amerikanska utgåva
- KTnie=Kleinberg-Tardos New International Edition (2014), när denna skiljer sig från den tidigare utgåvan (kapitel 5 Divide and Conquer kommer före kapitel 4 Greedy Algorithms och kapitel 13 Randomized Algorithms kommer före kapitel 12 Local Search)
- Sup=supplementet Algorithms and Complexity
Period 1
- F1
Download F1 31 augusti (2 timmar)
[SN+VK] Introduktion till kursen. Repetition av algoritmanalys, beräkningsmodeller, bitkostnad, enhetskostnad. (KT: 29-56)
Mer material: algoritm Links to an external site., tidskomplexitet Links to an external site., ordonotation Links to an external site., mästarsatsen Links to an external site., bitkostnad. Links to an external site.
- F2
Download F2 1 september (2 timmar)
[SN] Repetition av sortering (animering 1 Links to an external site., animering 2 Links to an external site.). (KTorig: 209-221/KTnie: 115-127)
Effektiv kodning och testning. Labbpartnermatchning i pausen.
Mer material: insättningssortering Links to an external site. (videoklipp Links to an external site.), quicksort Links to an external site.. Se även Diverse nyttiga och roliga länkar i ADK.
- F3
Download F3 2 september (2 timmar)
[VK] Datastrukturer: repetition Links to an external site., tidskomplexitet för listor Links to an external site., hashning Links to an external site., praktiska datastrukturer, trie Links to an external site. (animering Links to an external site.) (KT: 57-65) Latmanshashning, skipplistor Links to an external site.. (Sup: 77-83 Download Sup: 77-83) Labbpartnermatchning i pausen.
- Ö1
Download Ö1 3 september
Algoritmanalys.
- F4
Download F4 6 september
[SN] Grafer: djupetförstsökning Links to an external site., breddenförstsökning Links to an external site.. (KT: 73-107)
Mer material: grafteori och grafsökning Links to an external site., grafpaket i Go Links to an external site.
- F5
Download F5 7 september (färgfråga om datastrukturer
Download färgfråga om datastrukturer)
[VK] Datastrukturer: bloomfilter. Tillämpning: rättstavning.
Mer material: bloomfilter Links to an external site.
- F6
Download F6 8 september
[SN] Korrekthetsbevis.
Mer material: invarianter Links to an external site., induktion Links to an external site..
- Ö2
Download Ö2 9 september
Datastrukturer och grafer. Teoriredovisning till labb 1.
- F7
Download F7 14 september
[SN] Algoritmkonstruktion: giriga algoritmer, totalsökning. (Sup: 31-48, KTorig: 115-136, 183-188/KTnie: 157-179, 225-230)
- F8
Download F8 15 september
[SN] Algoritmkonstruktion: dekomposition. (KTorig: 221-234, 242-246/KTnie: 127-140, 148-152) - F9 förberedelse krävs! 16 september (OBS, omvänd föreläsning, )
[VK] Algoritmkonstruktion: dynamisk programmering, del 1. (KT: 251-260)
Visualiseringar: Fibonaccitalen Links to an external site..
Första timmen: tid för att göra förberedelserna.
Andra timmen: frågestund och arbete med uppgifter i grupp Download arbete med uppgifter i grupp (lösningar Download lösningar) - Ö3
Download Ö3 16 september
Dekomposition och dynamisk programmering. - Labb 1 17 september
Konkordans, redovisning. - F10 20 september (OBS, omvänd föreläsning, förberedelse krävs!)
[VK] Algoritmkonstruktion: dynamisk programmering, del 2. (KT: 261-290)
Första timmen: tid för att göra förberedelserna.
Andra timmen: frågestund och arbete med uppgifter i grupp Download arbete med uppgifter i grupp (lösningar Download lösningar)
Dags att börja titta på övningsmästarprov 1! - F11 22 september (OBS, omvänd föreläsning, förberedelse krävs!)
[VK] Dynamisk programmering, del 3: konstruktion av lösning och motivering av korrekthet. (KT: 290-301, 307-311)
Första timmen: tid för att göra förberedelserna.
Andra timmen: frågestund och arbete med uppgifter i grupp Download arbete med uppgifter i grupp (lösningar Download lösningar) - Ö4
Download Ö4 23 september
Dynamisk programmering. Teoriredovisning till labb 2. - F12
Download F12 23 september
[SN] Grafer: minimala spännande träd (Prim Links to an external site. och Kruskal Links to an external site.), kortaste stigar (Dijkstra Links to an external site.). (KTorig: 137-157/KTnie: 179-199) -
F13 Download F13 28 september
[VK] Grafer: demo av maximala flöden Links to an external site.. Extra föreläsningsbilder från en kurs på Princeton Links to an external site. (KT: 337-357, 367-373)
- MAS1-övning 28 september
Redovisning av övningsmästarprov 1 (lösningsförslag Download lösningsförslag) som förberedelse till mästarprov 1, som publiceras denna dag. - F14
Download F14 29 september
[VK] Undre gränser. (Sup: 17-29)
Genomgång av delar av lydelsen till mästarprov 1 (inspelning av genomgången).
- F15
Download F15 30 september
[SN] Algoritmkonstruktion: geometriska algoritmer, geomalgorithms.com Links to an external site., Grahamscan: beskrivning Links to an external site., animering Links to an external site..
Genomgång av resten av lydelsen till mästarprov 1 (inspelning av genomgången).
- Ö5
Download Ö5 30 september
Grafalgoritmer och undre gränser.
- Labb 2 1 oktober
Rättstavning, redovisning.
- F16
Download F16 4 oktober kl 8
[SN] Algoritmkonstruktion: sortering i linjär tid. Räknesortering och radixsortering Links to an external site.. (Sup: 1-6)
- F17 4 oktober kl 9
[SN] Algoritmkonstruktion: textsökning. (Sup: 7-16, Pythonkramaren II: 46-48 Download Pythonkramaren II: 46-48)
Visualiseringar Links to an external site.
- F18
Download F18 5 oktober Handskrivna föreläsningsanteckningar
[SN] Algoritmkonstruktion: polynomberäkningar och FFT. (KTorig: 234-242/KTnie: 140-148)
- Ö6
Download Ö6 6 oktober
Algoritmkonstruktion. Teoriredovisning till labb 3.
Sammanfattning av alla algoritmer hittills i kursen.
- F19
Download F19 11 oktober
[SN] Probabilistiska algoritmer. (KTorig: 707-734, 769-776/KTnie: 661-688, 723-730)
Lasvegas- och Montecarloalgoritmer, Links to an external site. Probabilistisk algoritm för medianproblemet Download Probabilistisk algoritm för medianproblemet
- F20
Download F20 13 oktober OBS, omvänd föreläsning: Förbered dig genom att göra detta quiz!
[SN] Reduktioner. (KT: 451-459)
Första timmen: tid för att göra förberedelserna.
Andra timmen: frågestund och arbete med uppgifter i grupp
- Ö7
Download Ö7 13 oktober
Probabilistiska algoritmer. Reduktioner. - Mästarprov 1, senast tisdag 12 oktober klockan 13:00!
Uppgiftslydelsen publiceras i Canvas 28 september.Algoritmer. Muntliga redovisningar sker 18-26 oktober.
- F21
Download F21 15 oktober OBS, omvänd föreläsning, förberedelse krävs!
[SN] Introduktion till komplexitet, motivering. (KT: 463-466 hela sidan)
Förberedelserna ska göras före föreläsningen. Hela föreläsningen ägnas åt frågestund och arbete med uppgifter i grupp
Period 2
I period 2 ges föreläsningarna i sal enligt ordinarie schema.
- F22
Download F22 1 november
[VK] Formella definitioner, turingmaskiner Links to an external site.. (PDF att läsa Download PDF att läsa, bild 1 Links to an external site., bild 2 Links to an external site.)
- F23
Download F23 2 november
[SN] Oavgörbarhet. (Sup: 49-73)
- Ö8
Download Ö8 3 november
Genomgång av lösning till mästarprov 1. Oavgörbarhet.
- Labb 3 4 november
Flöden och matchningar, redovisning.
- F24
Download F24 8 november
[VK] Cooks sats. (PDF att läsa) -
F25 Download F25 9 november kl 14
[VK] NP-fullständighetsbevis. (KT: 466-495)
- F26 9 november kl 15
[VK] NP-reduktionsvisualisering med Alvie Links to an external site..
I Alvie finns reduktioner för hörntäckning Download hörntäckning (Vertex Cover) och delmängdssumma Download delmängdssumma (Subset Sum) visualiserade och bevisade.
Alvie är utvecklat av Pierluigi Crescenzi. Om du inte vill ladda ner Alvie själv kan du titta på reduktionsvisualiseringarna som filmer:
Visualisering av reduktionen av 3-CNFSAT till hörntäckning som Flash och Quicktime.
Visualisering av reduktionen av 3-CNFSAT till delmängdssumma som Flash och Quicktime.
- Ö9
Download Ö9 10 november
NP-fullständighetsbevis. Teoriredovisning till labb 4.
- F27
Download F27 16 november
[SN] NP-fullständighetsreduktioner. (KT: 459-463)
- F28
Download F28 17 november
[VK] Mer NP-fullständighetsreduktioner. (KT: 497-505) - Dags att börja titta på övningsmästarprov 2!
- Två relevanta länkar från kursens länksamling för den som vill fördjupa sin förståelse av oavgörbarhet och reduktioner:
- Math has a fatal flaw - en film om ofullständighet och oavgörbarhet
- Reducing reductions to intuition - Douglas Wikström beskriver och definierar dom olika typerna av reduktioner som ingår i ADK. - Ö10
Download Ö10 17 november
NP-fullständiga problem. (övningsgrupp 2 inställd)
- Labb 4 22 november
NP-fullständighetsreduktioner, redovisning.
- F29
Download F29 22 november
[SN] Heuristiska algoritmer Links to an external site.. Simulated annealing Links to an external site.. (KTorig: 661-670/KTnie: 749-758) - F30
Download F30 23 november
[VK] Approximationsalgoritmer. (KT: 599-630) - MAS2-övning 24 november (övningsgrupp 2 inställd)
Redovisning av övningsmästarprov 2 och genomgång av fler exempel på NP-fullständighetsproblem som förberedelse till mästarprov 2, som publiceras denna dag.
- F31
Download F31 29 november
[VK] Mer approximationsalgoritmer. (webbsida Links to an external site. om Christofides algoritm, Viggos lista med approximationsresultat för NP-svåra optimeringsproblem)
Genomgång av lydelsen till mästarprov 2. - Ö11
Download Ö11 1 december (övningsgrupperna 1 och 2 inställda)
Approximationsalgoritmer. Teoriredovisning till labb 5. - F32
Download F32 2 december (observera dagen, i början av kursen var datumet ett annat)
[VK] Komplexitetsklasser. (KT: 495-497, 531-547) - F33
Download F33 6 december
[VK] Repetition. Kursens betygssystem. Om teoritentan, högrebetygslabben, muntan och omexamination.
- Ö12
Download Ö12 7 december (övningsgrupp 2 inställd)
Komplexitetsklasser och repetition. - Mästarprov 2 , senast 8 december klockan 18:00!
Uppgiftslydelsen publiceras i Canvas 24 november.Komplexitet. Muntliga redovisningar sker 13-17 december.
- Labb 5 10 december
Heuristik för rollbesättningsproblemet, redovisning.
- Extra labbredovisningstillfälle 15 december för alla labbar, inklusive högrebetygslabben.
Labbredovisningar prioriteras framför labbhjälp. Eftersom längden på redovisningarna varierar läggs inga bokningslistor upp, utan Stay-a-while används som kö.
- Teoritenta 20 december klockan 9-12. Skrivtid 9:00-10:30 i Canvas. Obligatorisk rättningssession kl 11:00-12:00 i Zoom.
- Ommästarprov för mästarprov 1 och mästarprov 2 offentliggörs 20 december och redovisas skriftligt 4 januari och muntligt 7-11 januari 2022.
- Frivillig munta för högre mästarprovsbetyg, 12 och 13 januari 2022. Anmälan görs under perioden 31 december 2021 till 6 januari 2022. Instruktioner om hur muntan genomförs och bokningslänk.
- Redovisning av högrebetygslabben Heuristik för rollbesättningsproblemet (även övriga labbar kan redovisas), 11 januari 2022 kl 9-12. Bokningslistor publiceras i Canvas 31 december.
Efter period 2 är kursen slut. Den som har labbar kvar att redovisa kan göra det antingen i labbveckan i juni eller under våren på labbpassen i systerkursen DD2352 Algoritmer och komplexitet. Säg till den du redovisar för att du ska ha labben rapporterad på adk21.
Den som har mästarprov kvar kan göra dom i en senare kursomgång av antingen ADK (som går varje hösttermin) eller systerkursen DD2352 (som går varje vårtermin; du ska inte registrera dig på DD2352, men du behöver kontakta kursledaren för DD2352, Per Austrin, för att bli inlagd i kursrummet). Säg till den du redovisar att du ska ha mästarprovet rapporterat på adk21.
Den som har teoritentan kvar kan gå upp på omtentan i april 2022 eller nästa ordinarietenta i december 2022.