To jest stara wersja strony!
Constraint Programming
Programowanie z ograniczeniami (ang. Constraint Programming, dalej nazywane CSP) jest deklaratywnym paradygmatem programowania, skupionym na modelowaniu problemu i wypisanie wymagań (ograniczeń) stawianych jego rozwiązaniom. Do obowiązków programisty należy:
zamodelowanie problemu poprzez zdefiniowanie zmiennych o odpowiedniych dziedzinach,
zdefiniowanie ograniczenia, które określają dozwolone wartości zmiennych w rozwiązaniu
[opcjonalne] podanie kryterium oceny rozwiązania, np. minimalizacja długości trasy w problemie komiwojażera
[opcjonalne] sprecyzowanie procesu przeszukiwania przestrzeni możliwych rozwiązań.
Poniższe laboratoria mają za zadanie przedstawić motywacje oraz podstawowe techniki programowania CSP.
Przykład zastosowania
Przypuścmy, że pracujemy jako kelner w restauracji, która leży w pobliżu trwającej akurat konferencji informatyków zajmujących się optymalizacją dyskretną. Jest to bardzo niewdzięczna praca – przydarzają nam się różne nieprzyjemne przygody, takie jak ta opisana w poniższym komiksie:
Sytuacja byłaby beznadziejna, ale na szczęście jest CSP. W dalszej części laboratorium będziemy modelować i rozwiązywać problem przedstawiony w komiksie.
Oprogramowanie
Rozwiązanie problemu
Problem portfelowy