- Obecné neimperativní programovací paradigma.
- V množině možných řešení problému je hledané řešení popsáno pouze omezujícími podmínkami, které musí splňovat.
- Podle typu proměnných, vystupujících v popisu problému.
- Pravdivostní hodnoty, Celočíselné hodnoty, Konečné množiny, Doména lineárních funkcí, …
- Myšlenka
- Modelování problému v dané doméně.
- Program
- Specifikace proměnných a jejich rozsahů.
- Specifikace omezujících podmínek.
- Vymezení cíle.
- Výpočet
- Zjednodušení zadání, propagace omezení.
- Systematické procházení možných valuací a hledání vyhovujícího řešení.
- Obvykle součástí nějakého programovacího jazyka/systému.
- Constraint Logic Programming (CLP)
- clpdf v Prologu - CLP over Finite Domains
- Výrazy jsou v celočíselné doméně
- Porovnávání se přeřazuje ‘#’
- Určení, které proměnné patří do jakých domén
- Určení hodnot domén - počet, horní a dolní hranice, sjednocení domén