Villkorsprogrammering
Kursplan, Avancerad nivå, 1DL440
Kursen är avvecklad.
- Kod
- 1DL440
- Utbildningsnivå
- Avancerad nivå
- Huvudområde(n) med fördjupning
- Datavetenskap A1N, Teknik A1N
- Betygsskala
- Underkänd (U), godkänd (3), icke utan beröm godkänd (4), med beröm godkänd (5)
- Fastställd av
- Teknisk-naturvetenskapliga fakultetsnämnden, 18 mars 2010
- Ansvarig institution
- Institutionen för informationsteknologi
Behörighetskrav
120 hp. Grundläggande koncept i algebra, kombinatorik, logik, graf- och mängdteori. Kunna implementera enkla sökalgoritmer. Motsvarande delar av Baskurs i matematik, Algebra I, samt 10 hp i programmering.
Mål
För godkänt betyg ska studenten kunna
- beskriva och bevisa grundläggande koncept inom villkorsteknik.
- beskriva hur en allmän villkorslösare fungerar - arkitekturen och principerna.
- modellera kombinatoriska problem som ett villkorsprogram, med användning av grundvillkor från en villkorslösare.
- utforma (empiriskt) en fungerande heuristisk kontroll av sökningen som villkorsprogrammet utför.
- skriva och (empiriskt) jämföra olika villkorsprogram för samma problem.
- evaluera (empiriskt) konsekvensen för beräkningen av att introducera redundanta variabler.
- identifiera och ta bort (några) symmetrier i ett villkorsprogram för att snabba upp exekveringen.
- utöka en villkorslösare med ett ytterligare grundvillkor, utforma en filtreringsalgoritm för villkoret, och argumentera varför denna lösning är snabbare än den baserad på de ursprungliga grundvillkor.
- kortfattat beskriva alternativa teknologier för att modellera och lösa kombinatoriska problem, såsom heltalsprogrammering och lokal sökning.
Innehåll
Villkorsteknik (constraint technology) är ett samlingsnamn på vissa
metoder och verktyg för att lösa kombinatoriska problem. I dessa problem ska variabler tilldelas värden så att givna villkor uppfylls, alternativt att en given funktion av dessa variabler maximeras eller minimeras. Vanligtvis är antalet möjliga tilldelningar astronomiskt, så att naiv sökning även med snabba datorer inte löser problemet. Att effektivt lösa dessa problem är viktig i många praktiska tillämpningsområden: konfigurering, design, logistik, planering, schemaläggning, transporter, naturvetenskap, osv.
Kursen behandlar följande moment.
Villkorsteknikens grunder. Modellering med villkor.
Konsistens och spridning av villkor.
Globala villkor och deras spridningsalgoritmer.
Sökning: konstruktion och genomsökning av sökträdet, heuristiker.
Villkorsbaserad lokal sökning.
Villkorsbaserad schemaläggning.
Optimeringsproblem.
Avancerade lösningsmetoder: mängdvariabler, redundans och symmetri.
Alternativa teknologier: lokal sökning, heltalsprogrammering, boolsk satisfierbarhet, etc.
Implementering i ett villkorsspråk.
Undervisning
Föreläsningar, gästföreläsningar, laborationer, lektioner, övningar och ett obligatoriskt projekt.
Examination
Examination vid kursens slut (5 hp).
Skriftlig projektrapport vid kursens slut (3 hp).
Uppgifter under kursens gång (2 hp).