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 as Constraint Programming Software

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 Application Examples

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

Learn more, Try it

The AIMMS interface to Constraint Programming with CP Optimizer (IBM) was released with the first Feature Release of AIMMS 3.13 (AIMMS 3.13 FR1), which you can download here. For two more detailed examples, see this page. 

References: Introduction of AIMMS CP at CPAIOR 2011: