The Constraint Programming Platform project is developing G12, a software platform for solving large-scale industrial combinatorial optimisation problems.
The information processing revolution has enabled organisations of all sizes to capture and access accurate and up-to-date information about all their activities and resources. The Constraint Programming Platform project will enable this information to be turned to immediate benefit by supporting optimised decision-making and resource allocation.
Advanced software engineering will encapsulate algorithms from several different disciplines, so they can be reused and combined freely. Program development will be accelerated by mapping low-level computation back to the problem model, enabling the programmer to analyse and improve algorithm behaviour.
What will this research achieve?
The project is building G12, a powerful, easy-to-use, constraint programming platform for solving large-scale industrial combinatorial problems.
The research project is split into four related threads: building richer modelling languages, building richer solving capabilities (search and solver technology), a richer control language mapping the problem model to the underlying solving capabilities and a richer problem-solving environment.
The system uses constraint programming (CP) techniques, which will allow problems to be stated simply and solved efficiently. Solution development time and computing time can be dramatically reduced.
Who will benefit?
This research will enable Australian industry to exploit resources more efficiently. It will support more efficient management of complex private and public utilities such as transportation, communication, power and water. It will help these organisations optimise and justify their strategic decision making and investment.
O. Ohrimenko, P.J. Stuckey, and M. Codish. Propagation via lazy clause generation. Constraints, 14(3):357–391, 2009. [ERA A]. [PDF]
Dynamic Programming for Free
The CPP team have developed a method for automatically caching subproblems visited during search, so that when an identical subproblem is met this search can be avoided. This can increase solving time by orders of magnitude when identical subproblems arise during search. It can be seen as a way of gaining the advantages of dynamic programming without specifically modelling an optimization problem as a recurrence relation. The system is fully automatic and works on arbitrary Minizinc models. See autocache for more details.
CP 2009 impact
The International Conference on Principles and Practice of Constraint Programming is the peak conference on constraint programming. For 2009, 10 out of 61 accepted papers have authors from the Constraint Programming Platform project.
Resource Constrained Project Scheduling Problems (RCPSP)
RCPSP is a class of problems underlying many important scheduling activities, where we have a finite renewable resource of say manpower, or equipment, or power for completing a set of tasks. PSPLib gives a suite of standard benchmarks for these problems. Using the G12 systems powerful lazy clause generation hybrid solver we are able to solve more of these problems than any other approach in the literature. Our approach closes 60 open problems from the suite. Another advantage of our approach is it does not rely on any clever search specific to the problem, and hence is insensitive to adding side constraints to the problem. See RCPSP for more details.
| J30 | J60 | J90 | J120 | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 15s | 300s | 1800s | 15s | 300s | 1800s | 15s | 300s | 1800s | 15s | 300s | 1800s | |
| L | - | 100 | 100 | - | 84.2 | 85.0 | - | 78.5 | 79.4 | - | 41.3 | 41.7 |
| G12 | 98.75 | 100 | 100 | 85.8 | 89.0 | 89.6 | 80.0 | 81.9 | 82.7 | 42.7 | 45.8 | 47.0 |
Comparison of percentage of problems solved to optimality in different times versus [L] Laborie, P.: Complete MCS-based search: Application to resource constrained project scheduling. In: L.P. Kaelbling, A. Saffiotti (eds.) Proceedings IJCAI 2005, pp. 181–186.
MiniZinc and FlatZinc home page
MiniZinc Wiki