Upcoming SlideShare
×

Solvers and Applications with CP

1,270 views

Published on

Um seminário do Prof Claudio

Published in: Technology
0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

Views
Total views
1,270
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
21
0
Likes
0
Embeds 0
No embeds

No notes for slide

Solvers and Applications with CP

1. 1. Solvers in CSP 1/28Search and Solvers inConstraint ProgrammingClaudio Cesar de S´ aUDESC/DCCJoinville, March 14, 2011 Back Close
2. 2. Contents 2/281 Introduction 52 Fundamental Concepts on CP 83 Characteristics of Constraint Programming 104 Example 125 The Constraint Programming Process 136 Search 177 Solvers and Lybraries for CP 208 What’s Missing? 25 Back Close
3. 3. 9 A Conjecture 2610 Conclusions 2711 Final Remarks 28 3/28 Back Close
4. 4. 4/28BackClose
5. 5. IntroductionThe France 5/28 Back Close
6. 6. Auvergne Region 6/28 Back Close
7. 7. Universit´ d’Auvergne e • Many faculties and instituts • IUT – Institut Universitaire de Technologie 7/28 • Many labs (CNRS, INRIA, ...) • LAIC - (vanished in August/2011); • On the other side of street: Universit´ Blaise Pascal, in 2012 will e be together with Universit´ d’Auvergne. e Back Close
8. 8. Fundamental Concepts on CP 8/28º The Constraint Satisfaction Problem (CSP) is deﬁned by a set of variables which must be satisﬁed under a set of the domainº Constraint Satisfaction Problem (CSP) consists of: µ Finite set of variables x1 , x2 , . . . ,xn µ For each variable xi , a ﬁnite set Di of possible values (its domain) µ Set of constraints restricting the values that the variables can take µ Resuming, each variable xi has a non-empty domain Di of pos- sible values, and its goal to ﬁnd a consistent set for these xis variables under their domains. µ The CSP problems are attack by the Constraint Programming (CP) (known as CP area) Back Close
9. 9. µ Once CSP is represented, solving process include: ¶ Determining whether the CSP has a solution (check for con- sistency) ¶ Finding a solution: a solution to a CSP is a complete consis- 9/28 tent assignment of variables ¶ Finding all solutions ¶ Finding an optimal solution ¶ Finding all optimal solutions ¶ Finding a good solution° This discussion will be resumed later .... Back Close
10. 10. Characteristics of Constraint Program-ming 10/28º Declarative programming – modelingº Flexible representation – constraints can be added, removed or mod- iﬁedº A two phase programming approach: É Generation of a problem representation as a CSP É Finding a solution of the CSP Back Close
11. 11. º Presence of built-in (embeeded ) mechanisms such: ¶ Constraints can be added, removed or modiﬁed ¶ Features to declare and deﬁne variables ¶ Features to generate constraints over the variables 11/28 ¶ Constraint solvers ¶ Constraint propagation algorithm ¶ Search techniques In steps, basically, the CP consists of three basic steps:º Declaring the domains of the variablesº Declaring the constraints on the declared variablesº Searching for the solutions (search, constraint and propagation) Back Close
12. 12. Example 12/28 Graph 3-colourability. For a graph G := (V, E) we generate aCSP with variables V := {v1, v2, ..., vn}, values D := {r, g, b} andconstraints:C := {(vi, vj , {r, g, b}2 {(r, r), (g, g), (b, b)}) : for each (vi, vj ) ∈ E}Note that {r, g, b}2 {(r, r), (g, g), (b, b)} is the triangle K3. r y g y y bThe CSP admits two other formulations, one as the model-checkingproblem for existential conjuctive-positive First-Order Logic, andone as the homomorphism problem (other seminar). Back Close
13. 13. The Constraint Programming Process 13/28 µ Whose are the requirements to work?É Constraint Modeling: Representations of a problem as a constraint satisfaction problem with constraints is called constraint model- ing.É Constraint Solving: Solving the constraint models formulated by modeling can be carried out using any of the three methods: ¶ Domain speciﬁc method 5 (Simplex, Gr¨bner bases, etc.) o ¶ General Method 5 (Constraint propagation) ¶ Combination of both methods (Solver cooperation) Back Close
14. 14. Domain Speciﬁc MethodsÉ Special purpose algorithms devoted to speciﬁc domains and con- straintsÉ Method by means of specialized packages called constraint solvers 14/28É Examples include: ¶ Program that solves systems of linear equations ¶ Package for linear programming ¶ Implementation of uniﬁcation algorithm Back Close
15. 15. General MethodsÉ Can be used for several diﬀerent types of constraints and domains (of the variables)É Concerned with the ways of reducing the search space with speciﬁc 15/28 search methods This encompasses two diﬀerent methods/approaches:É Constraint Propagation Algorithm ¶ Algorithm that repeatedly removes inconsistent values from the domains ¶ Reduces the search space ¶ Maintain equivalence while simplifying the problem ¶ Achieve various forms of local consistencyÉ Search Methods ¶ Explores the search space – a tree search is built ¶ Consists of combination of constraint propagation, backtrack, branch and bound search Back Close
16. 16. ¶ Heuristics schemes such: simulated annealing, tabu search, hill- climbing ... 16/28 Back Close
17. 17. Search 17/28 Basically, two types:¶ Systematic or rigid schemes: dfs, bs, tabu search, ... (none consid- eration about the entropy during the search)¶ Heuristics schemes such: simulated annealing, tabu search, hill- climbing, ... (some consideration on entropy – randonness) and evolutionary algorithms (ags, swarm, genetic programming, ... ) É Common point: any warranty about its completeness, why? Back Close
18. 18. Our Metaphore for Search in CP 18/28 Figure 1: crab computation Back Close
19. 19. Our Real Situation in Interesting Problems 19/28 Figure 2: A hard and real situation Back Close
20. 20. Solvers and Lybraries for CP 20/28 É Solvers:• Java-based constraint solvers• C-based constraint solvers• C++ -based constraint solvers• C, C++, Python and Tcl based constraint solvers• C++/Java/Python/Scheme and Smalltalk-based constraint solvers• Python-based constraint solvers• PROLOG-based constraint solvers• VB.NET-based constraint solvers• Mozart-Oz-based constraint solvers• .... Back Close
21. 21. É Lybraries: A library that extends a programming language or iscalled by another programming system. 21/28 Back Close
22. 22. C++ based Constraint SolversÉ MINION * http://minion.sourceforge.net/reference.html * Cygwin (MS Windows), All POSIX (Linux/BSD/UNIX-like OSes), 22/28 OS X * Availability: FreeÉ ILOG Solver * http://www.ilog.com/ * IRIX 6.5 (System V-based Unix operating system with BSD ex- tensions) * Availability: CommercialÉ GeCode- Generic Constraint development Environment * http://www.gecode.org/ * Windows and BSD style * Availability: Free Back Close
23. 23. PROLOG-based Constraint SolversÉ CHIP V5, the Second-Generation Constraint Programming tool * http://www.cosytec.com/production scheduling/chip/optimization product * UNIX, Linux and Windows NT/2000 23/28 * Availability: CommercialÉ GNU Prolog * http://sourceforge.net/projects/gprolog * All 32-bit MS Windows (95/98/NT/2000/XP), All POSIX (Linux/BSD/UNI like OSes), Other Operating Systems * Availability: FreeÉ Eclipse * http://eclipseclp.org/ * Availability: Free Back Close
24. 24. Java-based SolversÉ KOALOG * http://www.koalog.com/php/jcs.php * Windows, Windows 2000/XP, LINUX 24/28 * Availability: CommercialÉ Choco * http://choco.sourceforge.net/ * UNIX * Availability: FreeÉ DragonBreath Engine * http://sourceforge.net/projects/dragonbreath * OS Independent (Written in an interpreted language) * Availability: FreeÉ Temporal Constraint Solver * http://sourceforge.net/projects/tcsolver * OS Independent (Written in an interpreted language) * Availability: Free Back Close
25. 25. What’s Missing? 25/28º Functional paradigm is not ready yet ... although it is direct in programming languages such: Haskellº Any interface for any lybrary was implemented under functional paradigmº Distributed computation is a challenge in CPº Under multi-core processor a new-paradigm for CPº Adaptation in CP systems are unknow yetº Finally, the hybridization was not reached with meaningful success. Back Close
26. 26. A Conjecture 26/28 Agent #1 Agent #2 CP Evolutive classic Back Close
27. 27. Conclusions 27/281. Build new solvers? No2. Explore the massive computation? Yes3. Investigation on news representation and paradigm on its computa- tion? Yes4. For example: Haskell is mature ... well accepted Back Close
28. 28. Final Remarks 28/28º Thanks for your attentionº Questions?º Time for the coﬀe Back Close