constraint-satisfaction problems