# Constraint programming with CP Optimizer

Solving constraint programming problems with CP Optimizer can be broken into three steps: describing the problem, modeling the problem and finding solutions to the model of the problem. A basic constraint programming problem model consists of decision variables and constraints on those variables. Finding a solution to a model involves constraint propagation and search.