ID2204 Villkorsprogrammering 7,5 hp
Constraint Programming
Kursen handlar om att modellera och lösa kombinatoriska (optimerings) problem med hjälp av villkorsprogrammering (constraint programming). Villkorsprogrammering har pekats ut somett strategiskt område inom datalogi av ACM. Kombinatoriska problem finns överallt, exempelvis att tilldela och schemalägga resurser, designa introduktioner för processorer, samt optimera instruktionsschemaläggning vid kompilering. Den här kursen lär ut de grundläggande koncepten inom villkorsprogrammering, tillämpningar, utökningar, samt dess relation till andra tekniker för kombinatorisk optimering.
| Utbildningsnivå | Avancerad nivå | Kursnivå (A-D) | D |
| Huvudområde |
Informationsteknik |
Betygsskala | A, B, C, D, E, FX, F |
Kurstillfällen
VT12 TSEDM för programstuderande
| Perioder VT12 | P4 (7,5 hp) | Anmälningskod | 70545 |
| Kursen startar | 2012-03-19 | Kursen slutar | 2012 vecka: 22 |
| Undervisningsspråk | Engelska | Campus | KTH Kista |
| Antal föreläsningar | Undervisningstid | Dagtid | |
| Antal platser | Ingen begränsning | Antal övningar | |
| Undervisningsform | Normal |
- Kursansvarig
Christian Schulte <cschulte@kth.se>
- Lärare
Christian Schulte <cschulte@kth.se>
- Målgrupp
Öppen för TSEDM TIDAB CDATE och alla andra program
- Del av program
Lärandemål
Kursens tema är att modellera och lösa kombinatoriska (optimerings)problem med hjälp av villkorsprogrammering ("constraintprogramming"). Villkorsprogrammering har pekats ut som ett strategisktområde inom datalogi av ACM. Kombinatoriska problem finns överallt,exempelvis att tilldela och schemalägga resurser, designa intruktionerför processorer, samt optimera instruktionsschemaläggning vidkompilering. Den här kursen behandlar de grundläggande koncepten inomvillkorsprogrammering, tillämpningar, utökningar, samt dess relationtill andra tekniker för kombinatorisk optimering.
Kursens övergripande mål är att skapa en förståelse för degrundläggande koncepten bakom villkorsprogrammering;
öva upp färdigheti att modellera och lösa kombinatoriska problem;
öva upp färdighet iatt kunna uttnytja starka algoritmiska tekniker;
skapa enförståelse för förtjänster och begränsningar hosvillkorsprogrammering.
Efter kursen skall studenten kunna:
- förklara och använda grundläggande modelleringstekniker för villkorsproblem vilket inkluderar val av variabler, villkor, och optimeringskrtieria.
- beskriva och använda djupet-först sökning samt "branch-and-bound" sökning för att lösa kombinatoriska problem.
- beskriva och förklara villkorspropagering samt förgrening och utforskning inom sökning. Bevisa korrekthet, överensstämmelse ("consistency"), och fullständighet för propagerare som implementerar villkor. Definiera och bevisa korrekthet för förgreningsstrategier. Beskriva optimeringar av villkorspropagering baserat på fixpunktsresonemang.
- beskriva avancerade modelleringstekniker, analysera om dessa tekniker är applicerbara på givna kombinatoriska problem. Exempel på tekniker är: generella symmetrier, värde- och variabel-symmetrier, symmetrieliminering med villkor, symmetrieliminering under sökning, domineringsvillkor, redundanta villkor, redundant modellering och kanalisering, att använda starka algoritmiska tekniker och förgreningsheuristiker.
- beskriva och använda Régin's algoritm för distinct villkoret som ett exempel på stark villkorspropagering. Förklara algoritmer för element villkoret, linjära villkor, och villkor för disjunkt schemaläggning. Implementera en enkel propageringsalgoritm.
- förklara de huvudsakliga förtjänsterna och begränsningarna med villkorsprogrammering samt hur villkorsprogrammering relaterar till andra metoder (lokalsökning och heltalsprogrammering).
Kursens huvudsakliga innehåll
Att modellera med villkorsprogrammering:
grundläggande lösningsmetoder (propagering och sökning), tekniker för modellering (implicerade villkor, symmetrireduktion), förfining av modeller, heuristiska sökmetoder, tillämpning på problem av industristorlek.
Grundläggande principer för villkorsprogrammering:
modeller för propagering och sökning samt deras väsentliga egenskaper, olika nivåer av överrensstämmelse (consistency), olika villkorsdomäner. Starka algoritmiska metoder: Régin's algoritm för distinct, edge-finding, integrering (nödvändiga egenskaper för propagering). Förhållande till andra tekniker för att lösa kombinatoriska problem (heltalsprogrammering, lokalsökning), diskussion om förtjänsteroch begränsingar, hybrid-varianter (t.ex. column generation).
Behörighet
Kurser i grundläggande datalogi, diskret matematik, algoritmer och datastrukturer. Grundläggande färdigheter i objektorienterad programmering (till exempel: i Java eller C++).
Rekommenderade förkunskaper
Kunskaper motsvarande minst en av: SF1610 Diskret matematik, ID1015 Logik för datavetenskap, ID2213 Logikprogrammering, ID1218 Tillämpad programmering.
Litteratur
Hand outs, vetenskapliga artiklar, och kurskompendium.
Examination
- LAB1 - Laborationer, 3,0 hp, betygsskala: P, F
- TEN1 - Tentamen, 4,5 hp, betygsskala: A, B, C, D, E, FX, F
Krav för slutbetyg
Godkänd skriftlig tentamina (TEN1; 4.5hp) samt godkändainlämningsuppgifter (LAB1; 3hp).
Inlämningsuppgifterna betygsätts med P/F (godkänd eller underkänd).
Kursen omfattar tre inlämningsuppgifter som måste lösas ochlämnas in i tid (du har en veckas tid att lösa varjeinlämningsuppgift). Varje inlämningsuppgift kommer att ha 5 poängfördelat på deluppgifter.
För att bli godkänd påinlämningsuppgiftsdelen av kursen måste du få minst 10 poängtotalt på de tre inlämningsuppgifterna. Om du lämnar in en uppgift i tid så kan poängen, totalt 20 poäng,även användas som bonuspoäng till tentan.
Notera: bonuspoängen ärendast giltiga för innevarande läsår.
Poängsumman på tentan är 200 poäng. Betyget för kursen bestäms av det totala antalet poäng,d.v.s. summan av tentapoäng och bonuspoäng fråninlämningsuppgifterna. Du behöver minst 100 poäng totalt för attbli godkänd på tentan.
Tentan betygsätts med betygen A-F.
Betyget för den totala poängsumman n är som följer:
n >= 180: A
180 > n >= 160: B
160 > n >= 140: C
140 > n >= 120: D
120 > n >= 100: E
100 > n >= 80: Fx
80 > n : F
I händelse av betyg Fx så är kompletterande examination möjliginom en månad efter den ursprungliga tentan. I det fallet såkommer kursansvarige att på begäran tillhandahålla en extrainlämningsuppgift att lösas inom en veckas tid.
Ges av
ICT/Programvaru- och datorsystem
Kontaktperson
Schulte, Christian
Examinator
Christian Schulte <cschulte@kth.se>
Versionsinformation
Kursplan giltig från och med
HT08.
Examinationsinformation giltig från och med
HT07.
