bild
Skolan för
elektroteknik
och datavetenskap

Information om DD2354, Algoritmer och komplexitet hösten 2008

Tryck här för att hämta bokningslistor:

Aktuellt

Omtenta

Den 25 aug kl 9-11 är det omtenta i DD1352. Den fungerar också som omtenta för DD2354.

Tentan 081216

Lösningar

Tenta

Tentan är som tidigare sagts 3 timmar lång. Den är den 16 dec kl 14-17.

En extenta

Lösning

Redovisning av hemtal 2

Tider

Lärare

Kursledare, föreläsare och övningsassistent är Johan Karlander, johank@nada.kth.se. Telefon 070-686 74 66.

Kurslitteratur

Kurslitteraturen ska läsas på egen hand parallellt med kursen. Föreläsningar och övningar täcker endast en del av kursmaterialet.

Kursbok

Kleinberg, Tardos; Algorithm Design, Pearson Addison-Wesley.

Examination

Examinationsformen är anpassad till kursen DD1352 Algoritmer, datastrukturer och komplexitet. Examination

Kursbunt

  • Kursprogram (i stort sett denna text).
  • Kapitel 8 ur "David Harel: Algorithmics - the spirit of computing.
  • Tre exempeltentor.
Kursbunten kan köpas på Nadas elevexpedition. Papper som delas ut under kursens gång kommer att finnas i en pärm i hyllan utanför expeditionen. Kursen kommer att gå i period 1-2. Huvudvikten av undervisningen kommer att ligga i period 2.

Schema

VeckaTidPlatsInnehåll
40F1Måndag 13-15D34Introduktion. Presentation av grundläggande begrepp. Grafalgoritmer: Sökning.
F2Torsdag 13-15E52Grafalgoritmer: Kortaste vägar.
41Ö1Måndag 13-15D34Grafalgoritmer.
42F3Måndag 10-12E31Divide and Conquer-algoritmer.
Ö2Onsdag 15-17E31Divide and Conquer-algoritmer.
44F4Måndag 10-12D31Giriga algoritmer. Inroduktion till dynamisk programmering.
Ö3Måndag 13-15D31Giriga algoritmer och Divide and Conqueralgoritmer.
F5Onsdag 10-12Q22Dynamisk programmering, fortsättning.
Ö4Onsdag 13-15E35Dynamisk programmering.
45F6Måndag 10-12D42Flödesalgoritmer. Introduktion till linjärprogrammering.
Ö5Måndag 13-15E53Flödesalgoritmer och linjärprogrammering.
F7Onsdag 10-12D31Linjärprogrammering, forts.
46F8Onsdag 10-12Q15Komplexitet: Introduktion till NP-problem.
47F9Tisdag 10-12D33Mer om NP-problem.
Ö6Tisdag 13-15D33NP-problem.
48F10Tisdag 10-12D33Turing-maskiner. Oavgörbarhet.
Ö7Tisdag 13-15D33Oavgörbarhet.
F11Onsdag 10-12E33PSPACE-problem.
49F12Måndag 10-12D35Approximationsalgoritmer.
Ö8Tisdag 13-15L42Approximationsalgoritmer.
F13Onsdag 10-12E51Approximationsalgoritmer, fortsättning.
50F14Tisdag 10-12D33Randomiserade algoritmer. Lokal sökning.
Ö9Tisdag 13-15D33Repetition.
F15Onsdag 10-12E33Introduktion till parallella algoritmer och kvantalgoritmer.

Föreläsningsanteckningar

Här kommer föreläsningsanteckningar att finnas. De redogör för innehållet i föreläsningarna i kortfattad form och utgör ett komplement till kurslitteraturen.

Föreläsning 1

Föreläsning 2

Föreläsning 3

Föreläsning 4

Föreläsning 5

Föreläsning 6

Föreläsning 7

Föreläsning 7 del 2 Anteckningar från en annan kurs jag håll en gång som också behandlade Linjärprogrammering.

Föreläsning 8

Föreläsning 9

Föreläsning 10

Föreläsning 11

Föreläsning 12+13

Föreläsning 14

Föreläsning 15 (del 1)

Föreläsning 15 (del 2)

Övningar

Övning 1

Övning 2

Övning 3+4

Övning 5

Övning 6

Övning 7

Övning 8+9

Läsanvisningar

Preliminärt skall ni läsa följande kapitel i läroboken.
  • Kap 1.
  • Kap 2: Framför allt 2.1, 2.2, 2.4.
  • Kap 3: Hela kapitlet.
  • Kap 4: Hela kapitlet utom 4.8-4.9.
  • Kap 5: Hela kapitlet.
  • Kap 6: 6.1, 6.2, 6.3, 6.4, 6.5, 6.8, 6.10 (kursivt)
  • Kap 7: 7.1, 7.2, 7.3, 7.5 resten av kapitlet kan läsas kursivt.
  • Kap 8: Hela kapitlet.
  • Kap 9: Hela kapitlet.
  • Kap 11: 11.1, 11.4 (en variant på problemet från föreläsningen), 11.5 t.o.m. sid 627, 11.8. Avsnitt 11.2 och 11.3 kan läsas kursivt.
  • Till föreläsning 13: Kap 11.6, 11.7 och föreläsningsanteckningar.
  • Kap 13: 13.2, 13.33, 13.4, 13.5

Kursregistrering

Alla som vill gå kursen måste registrera sig på den. Detta görs med kommandot

res checkin algokomp08

på någon av Nadas unixdatorer. Registrera dig så snart som möjligt efter att kursen börjat!

Du bör också ge kommandot

course join algokomp08

Detta kommando gör tre saker:

  • Du får se eventuella nya meddelanden från kursledaren varje gång du loggar in.
  • Du får kursens användarmiljö, det vill säga alla initieringar ensom kursledaren tycker att kursdeltagarna bör ha görs vid varje inloggning.
  • Du får en speciell kurshemsida som startsida i Netscape.
När du är klar med kursen ger du kommandot

course leave algokomp08

för att återställa allt.

Hederskodex

Grundregeln är att det jobb du gör i kursen (inlämningsuppgifter, tentor m.m.) ska du göra själv.

Ibland, speciellt när man skriver program, kan det vara nödvändigt att fråga någon annan (en kamrat eller en handledare) om hjälp med att hitta fel. Detta är tillåtet förutsatt att du uppfyller följande villkor.

  • Du måste förstå hela den färdiga lösningen, även de delar du fått hjälp med.
Varje annan form av samarbete och utnyttjande av andras lösningar betraktas som ett brott mot hederskodexen och kan bestraffas, t ex genom att du förlorar alla bonuspoäng eller får göra en ny uppgift.

Detta är en översatt och omarbetad version av den hederskodex som används i kursen Introduction to computer science vid Stanford University. Den tillämpas i många av Nadas kurser.

Copyright © Sidansvarig: Johan Karlander <johank@nada.kth.se>
Uppdaterad 2009-11-16