Villkorsprogrammering

10 hp

Kursplan, Avancerad nivå, 1DL440

Det finns en senare version av kursplanen.
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).

FÖLJ UPPSALA UNIVERSITET PÅ

facebook
instagram
twitter
youtube
linkedin