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 wskazaniu 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
Do ściągnięcia:
Instalacja:
Ściągnięte archiwa zawierają skompilowane już pliki binarne. Instalacja sprowadza się do rozpakowania plików. W przypadku paczki zawierającej solver rozsądne jest wywołanie skryptu ''SETUP'', który przygotowuje środowisko do działania. W przypadku paczki zawierającej IDE, uruchamia się ono poprzez uruchomienie skryptu ''MiniZincIDE.sh''. Po pierwszym uruchomieniu może być konieczne wskazanie ściezki do katalogu z solverem.
Rozwiązanie problemu
Problem portfelowy