Beruflich Dokumente
Kultur Dokumente
0
an Open Source Java Constraint Programming Library
C.Prudhomme, JG. Fages EMNantes, INRIA TASC, CNRS LINA Nantes, France
1 / 22
Outline
1 The Choco constraint solver 2 Inside Choco 3 Dealing with real world problems 4 The future of Choco
2 / 22
3 / 22
4 / 22
Academic users
In France :
Universities : Nantes, Montpellier, Paris, Rennes, Toulouse, Clermont-Ferrand des Mines de Engineering schools : ENSTA, ENAC, Ecole Nancy, Ecole des Mines de Nantes, ISIMA
5 / 22
Industrial users
Big companies : Safran, Dassault, PSA Research agencies : ONERA, NASA Software and Integrators : Kls-Optim, alfaplan GmbH, Easyvirt, Hedera Technology, etc.
6 / 22
Inside Choco
Outline
1 The Choco constraint solver 2 Inside Choco 3 Dealing with real world problems 4 The future of Choco
7 / 22
Inside Choco
A wide variety of variable paradigms : Integer variables Boolean variables Set variables Graph variables Real variables
8 / 22
Inside Choco
More than 80 available constraints in Choco : Classical arithmetic constraints : =, =, <, , >, , A large set of useful global constraints : AllDierent, GlobalCardinality, NValue, Cumulative, Din, Occurrence, Element, Regular, Circuit . . . Exclusive constraints : Tree, CostRegular, Ibex . . . Reied constraints : any constraint can be reied.
9 / 22
Inside Choco
Discrete-continuous hybridization
The Ibex global constraint : Handles numerous non linear continuous expressions
+, , , /, =, <, >, , , min, max, abs, sqr, sqrt, exp, log, pow, cos, sin, tan, acos, asin, atan ...
10 / 22
Inside Choco
Explanations
Choco natively supports explained constraints. Both generic and ad hoc explanations schemas Asynchronous and lazy computation, attened or unattened storage Improve resolution (CBJ, DBT, path repair, LNS) Next steps : Providing feedback to the user Nogood recording / SAT Solver interaction
11 / 22
Inside Choco
Search-related tools
Dierent kinds of use : Get a solution, Enumerate all solutions, Find an optimal solution Predened search methods : Built-in search strategies (DomWDeg, ABS, IBS, etc.) and some optimization procedures (LNS, fast restart, Last Conict, etc.).
12 / 22
Inside Choco
Use of Factories to build a model : Variables : VariableFactory , Constraints : IntConstraintFactory , LogicalConstraintFactory , SetConstraintsFactory . . . Strategies : IntStrategyFactory , SetStrategyFactory . . .
13 / 22
Inside Choco
Choco diusion
Contestant within the MiniZinc Challenge (2012, 2013) JSR-331 implementation (in progress) CP-Viz interface One-sheet documentation, teaching materials, articles, demo material (> 60 examples), etc.
14 / 22
Inside Choco
S o l v e r s = new S o l v e r ( L a n g f o r d ) ; I n t V a r [ ] p = VF . e n u m e r a t e d A r r a y ( p , n k , 0 , k n 1, s ) ; f o r ( i n t i = 0 ; i < n ; i ++) { f o r ( i n t j = 0 ; j < n ( k 1 ) ; j+=n ) { s . p o s t ( ICF . a r i t h m (VF . o f f s e t ( p [ i+j ] , i +2) , = , p [ i +( j+n ) ] ) ) ; } } s . p o s t ( ICF . a r i t h m ( p [ 0 ] , < , p [ n k 1 ] ) ) ; s . p o s t ( ICF . a l l d i f f e r e n t ( p o s i t i o n , AC ) ) ; s . s e t ( ISF . f i r s t F a i l I n D o m a i n M a x ( p o s i t i o n ) ) ; s . findSolution ();
15 / 22
Outline
1 The Choco constraint solver 2 Inside Choco 3 Dealing with real world problems 4 The future of Choco
16 / 22
Entropy, Easyvirt, Hedera : data center management (VM placement), Vaberlin, GSD lab : software development, code generation, Safran, Dassault Aviation : mission planning, KLS Optim, Optilogistic : loading plans for vehicles and palettes, Biotrial, Maif : personal scheduling, Kosmos : timetabling for secondary schools, PSA : online car conguration (prototype),
17 / 22
Entropy
They like Modeling (declarative, reliable), Ad hoc constraints (simplicity), Scalability (more than 100,000 VMs). Issues Clear problem statement, Unaware of NP-hardness, Discrete-continuous hybridization, Multi-objective resolution.
16th September 2013 CPSolvers 2013 Choco 18 / 22
Discussion
Few feedbacks from users only when they have trouble modeling a problem, or when there is a bug. BSD license Academic inconvenience Cannot provide professional support (heavy administration), Not interested in turnkey project (SQL, HMI) : AIMMS ?
19 / 22
Outline
1 The Choco constraint solver 2 Inside Choco 3 Dealing with real world problems 4 The future of Choco
20 / 22
Explanations :
User-oriented explanations SAT Solver interaction
21 / 22
Acknowledgements
22 / 22