constraint programming cp
play

Constraint Programming (CP) eVITA Winter School 2009 Optimization - PowerPoint PPT Presentation

Constraint Programming (CP) eVITA Winter School 2009 Optimization Tomas Eric Nordlander Outline Constraint Programming History Constraint Satisfaction Constraint Satisfaction Problem (CSP) Examples Optimisation Many


  1. Constraint Programming (CP) eVITA Winter School 2009 Optimization Tomas Eric Nordlander

  2. Outline � Constraint Programming � History � Constraint Satisfaction � Constraint Satisfaction Problem (CSP) � Examples � Optimisation � Many solution � Over constrained � Commercial Application � Pointers � Summary

  3. Constraint Programming (CP) � The basic idea of Constraint programming is to solve problems by stating the constraints involved—the solution should satisfy all the constraints. � It is an alternative approach to functional programming, that combines reasoning and computing techniques over constraints. � Constraint satisfaction � Constraint satisfaction deals mainly with finite domains � Combinatorial solving methods � Constraint solving � Constraint satisfaction deals mainly with infinite domains � Solving methods based more on mathematical techniques (Example: Taylor series)

  4. A Brief History of Constraint Programming � Sixties � Sketchpad, also known as Robot Draftsman (Sutherland in, 1963). � Seventies � The concept of Constraint Satisfaction Problem (CSP) was developed (Montanari 1974). � The scene labelling problem, (Waltz, 1975). � Experimental languages . � Eighties � Constraint logic programming. � Constraint Programming. � Nineties � Successfully tackled industrial personnel, production and transportation scheduling, as well as design problems. � The last and the upcoming years � Constraint Programming one of the basic technologies for constructing the planning systems. � Research Focus: Constraint Acquisition, Model Maintenance, Ease of Use, Explanation, Dynamic Constraints, Hybrid techniques, Uncertainty, etc..

  5. CP Interdisciplinary Nature Operational Artificial Intelligence Research Constraint Programming Discrete Logic programming Mathematics

  6. Outline � Constraint Programming � History � Constraint Satisfaction � Constraint Satisfaction Problem (CSP) � Examples � Optimisation � Many solution � Over constrained � Commercial Application � Pointers � Summary

  7. What components are there? � Model � Constraint Satisfaction Problem (CSP) � Search Algorithms � Consistency Algorithms � Heuristics � Solving a CSP achieve one of the following goals: � demonstrate there is no solution; � find any solution; � find all solutions; � find an optimal, or at least a good, solution given some objective evaluation function. 7

  8. CSP Model � Constraint Satisfaction Problem (CSP) � Definition 0,1,2 � a set of variables X={X1,..., Xn}, X2 � for each variable Xi, a finite set Di of possible <> < values (its domain), and � a set of constraints C, where each constraint C<j> is composed of a scope vars(C<j>) of the X1 X3 variables that participate in that constraint and = a relation rel(C<j>) � Dj1 × Dj2 × …× Djt, that specifies the values that variables in the scope 0,1,2 0,1,2 can be assigned simultaneous

  9. CSP: Search 0,1,2 � Simple Backtrack (BT) � Heuristic X2 0 2 1 0 � Variable ordering X1…X3 <> < � Value ordering 0…2 X1 0 1 X3 0 1 2 0 1 = 0,1,2 0,1,2

  10. CSP: Search � Simple Backtrack (BT) � Heuristic � Variable ordering X1…X3 � Value ordering 0…2 S S 2 0 0 1 1 0 1 2 0 0 1 1 2 2 0 0 1 2 0 1 2 0 1 2 0 1 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2

  11. CSP: Constraint Propagation � Constraint propagations through 0,1,2 consistency techniques � Arc Consistency {X2-X3} X2 <> < X1 0 X3 = 0,1,2 0,1,2

  12. CSP: Constraint Propagation � Example of Arc Consistency � Arc Consistency {X2-X3} � Arc Consistency {X1-X3} � Arc Consistency {X2-X1}

  13. CSP: seems fairly limited? � CSP and solving methods are much richer then previous example showed, in particular when it comes to: � Domain � Constraints � Search � Consistency techniques

  14. CSP: Domain and Constraints � Domain � Constraints � finite (but also continues) � linear (but also nonlinear) � Integer � Unary � Reals � Binary � Boolean (SAT) � Higher arity � String � Global Constraints � Combinations of above

  15. CSP: Search & Consistency tech. Constraint propagations General algorithms � Node* Consistency � Generate and Test � Arc** Consistency � Simple Backtracking � Path Consistency � Intelligent Backtracking Algorithms using consistency checking � Forward Checking (FC) � Partial Look Ahead (PLA) � Full Look (FL) � Maintaining Arc Consistency (MAC) *Node = Variable **Arc = Constraint 15

  16. CSP: Modelling � Critical for success � Very Easy and very hard � Often Iterative process � Open CSP � Dynamic CSP � Trick includes � Aux. constraints � Redundant to avoid trashing � Remove some solution to break symmetry � Specialized constraints � Aux. Variables � Etc. 16

  17. Outline � Constraint Programming � History � Constraint Satisfaction � Constraint Satisfaction Problem (CSP) � Examples � Optimisation � Many solution � Over constrained � Application areas � Pointers � Summary

  18. CSP Examples � Graph Colouring � Scheduling

  19. Graph Coloring � The graph colouring problem involves assigning colours to vertices in a graph such that adjacent vertices have distinct colours. � This problem relates to problem such as scheduling, register allocation, optimization.

  20. Graph Coloring � Variable order: A-F � Value order: Red, Green, Blue.

  21. Graph Coloring � Variable order: A-F � Value order: Red, Green, Blue.

  22. Graph Coloring � Variable order: A-F � Value order: Red, Green, Blue.

  23. Graph Coloring � Variable order: A-F � Value order: Red, Green, Blue.

  24. Graph Coloring � Variable order: A-F � Value order: Red, Green, Blue.

  25. Graph Coloring � Variable order: A-F � Value order: Red, Green, Blue.

  26. Graph Coloring � Variable order: A-F � Value order: Red, Green, Blue.

  27. Graph Coloring We reach a end node without being able to generate a solution…so we need to backtrack

  28. Graph Coloring � Variable order: A-F � Value order: Red, Green, Blue.

  29. Graph Coloring � Variable order: A-F � Value order: Red, Green, Blue.

  30. Graph Coloring � Variable order: A-F � Value order: Red, Green, Blue.

  31. Graph Coloring � Variable order: A-F � Value order: Red, Green, Blue.

  32. Graph Coloring

  33. Graph Coloring

  34. Graph Coloring

  35. Graph Colouring (SICStus Prolog) :- use_module(library(clpfd)). solve_AFRICA(A,B,C,D,E,F):- domain([A,B,C,D,E,F], 1, 3), % Variables & their domain size % colour 1=RED, 2=GREEN or 3=BLUE A #\= B, % Constraints A #\= F, B #\= F, B #\= C, F #\= E, C #\= E, C #\= D, E #\= D, labeling([],[A,B,C,D,E,F]). % assign values to the Variables | ?- solve_AFRICA (A,B,C,D,E,F). A = 1, B = 2, C = 1, D = 3, E = 2, F = 3? yes | ?-

  36. CSP example: Scheduling � We have 7 patients that need different surgeries. � Our 4 Operations rooms are open 24/7 � We have 13 people in our medical staff, each surgery demands one or more from the staff. Exp. Duration (h) 16 6 13 7 5 18 4 Resource demand 2 9 3 7 10 1 11 (number of Staff) Starting time ? ? ? ? ? ? ? � Give us the optimal plan (starting time for the surgical task) to minimize the total end time?

  37. A optimal solution! � An optimal schedule, all surgeries are conducted within 23 hours. � Utilisation of the 13 staff and the 4 rooms 100% Staff 50% Room 0% 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 39

  38. CSP example: Scheduling */ TASK DURATION RESOURCE :- use_module(library(clpfd)). ==== ======== ======== :- use_module(library(lists), [append/3]). t1 16 2 t2 6 9 schedule(Ss, Rs, End) :- t3 13 3 length(Ss, 7), t4 7 7 Ds = [16,6,13,7,5,18,4], t5 5 10 Rs = [2,9,3,7,10,1,11], t6 18 1 domain(Ss,1,30), t7 4 11 /* domain([End],1,50), after(Ss, Ds, End), cumulative(Ss, Ds, Rs, 13), append(Ss, [End], Vars), labeling([minimize(End)], Vars). after([], [], _). after([S|Ss], [D|Ds], E) :- E #>= S+D, after(Ss, Ds, E). | ?- schedule(Ss,Rs,End). %% End of file Rs = [2,9,3,7,10,1,11], Ss = [1,17,10,10,5,5,1], End = 23 ? yes | ?-

  39. Outline � Constraint Programming � History � Constraint Satisfaction � Constraint Satisfaction Problem (CSP) � Examples � Optimisation � Many solution � Over constrained � Commercial Application � Pointers � Summary

  40. Optimisation � Case A: If there are many solution to the problem � Use some criteria to select the best one � E.g a cost function � Case B: If all constraints in a problem cannot be satisfied � Seek the “best” partial solution � E.g. use MAX-CSP or Constraint hierarchy

  41. Optimization: Case A Cost function � The previous example simply found single solution 0 1 1 � A complete search discover two more solutions 0 1 2 2 2 2 � We can use a simple cost function to find the optimal solution � As an example take � Cost function = 5X1 + 2X2 – 1X2

Recommend


More recommend