constraint satisfaction problems