Principles and Practice of Constraint Programming - Schulte (Springer Berlin Heidelberg, 2013)