Constraint Programming

Constraint Programming

Constraint Programming (CP) is the process of solving a system of constraints of various types over a set of unknown discrete variables possibly along with an objective function to be maximized or minimized.  Part of the attraction of Constraint Programming is that it enables the capturing of many structures observed in reality in a very natural manner using e.g. ‘AllDifferent’ and ‘Sequence’ constraints, element valued variables and the Resource and Activity concepts.

Benefits of using AIMMS for Constraint Programming

Besides the general benefits of using AIMMS, there are specific functionalities that make AIMMS an excellent tool for modeling CP problems:

  • The AIMMS modeling language is based on algebraic notation to naturally capture the constraint programming structures frequently used.
  • The AIMMS modeling language support special scheduling constructs to allow schedulers to formulate their problem in a manner that is natural to them.
  • The AIMMS GUI supports Gantt charts and a rich set of other object to visualize and interact with resulting schedules and solutions.
  • The AIMMS generator provides several automatic reformulations to generate input to a growing set of advanced solution algorithms.

Constraint Programming Solvers

Standard Solvers

AIMMS supports the solver CP Optimizer to solve constraint programming models.

Open Solver Interface

The AIMMS Open Solver Interface allows solver developers to link their own mixed integer programming solvers to AIMMS themselves.

Constraint Programming Application Examples

  • Nurse Scheduling
  • Workforce Optimization
  • Job Shop Scheduling
  • Bridge Building
  • Sport Scheduling
  • Pegboard Planning
  • Allocations Problems
  • Circuit Verification
  • Vehicle Routing

Free Constraint Programming Software License

Download a free license to experience the benefits of using AIMMS as your constraint programming software.