An Introduction To Constraint Programming - Jacob Allen