Constraint Programming: A Programming Paradigm on the Rise
Division of Computing Science
Department of Information Technology
Constraint Programming (CP) is a relatively recent programming paradigm, geared towards the elegant modelling and efficient solving of combinatorial problems, which are so ubiquitous and important in management, engineering, and science. CP works in a way orthogonal and complementary to other optimisation technologies, such as linear programming (LP), integer programming (IP), Boolean satisfiability (SAT), etc. CP handles satisfaction and optimisation problems, discrete and continuous variables, linear and non-linear constraints, in any combination thereof, by global search (if optimality is more important than speed) or by local search (if speed is more important than optimality). CP has become the technology of choice in some areas, such as scheduling, time-tabling, rostering, and configuration. CP was identified by the ACM as a strategic direction in computing research.
I will first present the essential principles of CP and contrast them with those of LP/IP/SAT/etc, thereby revealing opportunities for hybridisation. I will also present some of the activities at my ASTRA research group within CP and with CP, such as modelling language design, symmetry detection and exploitation, local search, air traffic control, computational finance, and bioinformatics.