Integer Programming (IP) and Constraint Programming (CP) are methods for solving NP-hard problems. They use multiple heuristics and are often able to solve problems substantially faster than a brute-force approach. In IP we model our problem as a system of linear inequalities. These inequalities give us constraints, and we want to maximise some function subject to them [1]}. In CP we have variables and different constraints that relate these variables to each other and define what kinds of solutions are feasible. A CP solver explores the search tree of different possible solutions [2]}.
