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:

 General solutions get you a 50% tip.

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

Dodanie karty menu

pl/dydaktyka/csp/intro.1400016608.txt.gz · ostatnio zmienione: 2019/06/27 15:52 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0