Kombinatorisk optimering och villkorsprogrammering
Kursplan, Avancerad nivå, 1DL442
- Kod
- 1DL442
- 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, 3 mars 2022
- Ansvarig institution
- Institutionen för informationsteknologi
Behörighetskrav
120 hp inklusive Baskurs i matematik, Algebra I samt en fortsättningskurs i programmering eller annan kurskombination innehållande grundläggande koncept i algebra, kombinatorik, logik, graf- och mängdteori samt implementering av enkla sökalgoritmer. Engelska 6. (Med en svensk kandidatexamen uppfylls kravet på engelska.)
Mål
Efter godkänd kurs ska studenten kunna:
- definiera begreppet kombinatoriskt (optimerings- eller satisfierbarhets-) problem,
- förklara begreppet villkor, såsom det används i ett villkorsbaserat modelleringsspråk,
- modellera ett kombinatoriskt problem i ett villkorsbaserat lösningsteknik-oberoende modelleringsspråk,
- jämföra (empiriskt) flera modeller,
- beskriva och jämföra lösningstekniker som kan användas av backends till ett villkorsbaserat modelleringsspråk,
- välja lämpliga lösningstekniker för ett nytt kombinatoriskt problem och motivera valet,
- presentera och diskutera material relaterat till kursens innehåll muntligt och skriftligt med en för utbildningsnivån lämplig färdighet,
- beskriva hur en constraint programming (CP) lösare fungerar, genom att beskriva arkitekturen och de principer den baseras på,
- utöka en CP-lösare med en propagator för ett nytt villkor, och utvärdera (empiriskt) om propagatorn är snabbare än en definition baserad på lösarens ursprungliga villkor,
- utforma (empiriskt) en (problemspecifisk) sökstrategi som kan användas av en CP-lösare,
- designa och (empiriskt) jämföra flera villkorsprogram (modell och sökning) för ett kombinatoriskt problem.
Innehåll
Användning av verktyg för att lösa ett kombinatorisk problem, genom att först modellera problemet i ett lösningsteknik-oberoende villkorsbaserat modelleringsspråk och sedan köra modellen i en befintlig lösare. Jamförelse av modeller, såsom att introducera redundans eller identifiera och ta bort symmetrier. Lösningstekniker som kan användas av backends till ett villkorsbaserat modelleringsspråk, t.ex. villkorsprogrammering, lokal sökning, Boolesk satisfierbarhet (modulo teorier) och heltalsprogrammering.
Villkorskonsistens; villkorspropagering; fixpoint propageringsalgoritmen.
Lösning genom systematisk sökning: konstruera och utforska ett sökträd; branching strategier; hantera en "objective function" för optimering.
Lösning genom (villkorsbaserad) stokastisk lokal sökning: konstruera och utforska en sökrymd; villkors-violation; variabel-violation; undersöka drag; söknings heuristiker; meta-heuristiker.
Undervisning
Föreläsningar, gästföreläsningar, obligatoriska uppgifter, handledning, lektioner, och ett obligatoriskt projekt.
Examination
Muntlig och skriftlig redovisning av modelleringsuppgifter (3 hp).
Muntlig och skriftlig redovisning av programmeringsuppgifter (5 hp).
Muntliga och skriftliga projektredovisningar (2 hp).
Om särskilda skäl finns får examinator göra undantag från det angivna examinationssättet och medge att en enskild student examineras på annat sätt. Särskilda skäl kan t.ex. vara besked om särskilt pedagogiskt stöd från universitetets samordnare för studenter med funktionsnedsättning.
Övriga föreskrifter
Kursen kan ej ingå i samma examen som 1DL441, 1DL451, 1DL448 eller 1DL449.