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

constraint programming cp
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

eVITA Winter School 2009 Optimization

Tomas Eric Nordlander

Constraint Programming (CP)

slide-2
SLIDE 2

Outline

Constraint Programming

History

Constraint Satisfaction

Constraint Satisfaction Problem (CSP) Examples

Optimisation

Many solution Over constrained

Commercial Application Pointers Summary

slide-3
SLIDE 3

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)

Constraint Programming (CP)

slide-4
SLIDE 4

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..

A Brief History of Constraint Programming

slide-5
SLIDE 5

CP Interdisciplinary Nature

Operational Research Artificial Intelligence Discrete Mathematics Logic programming

Constraint Programming

slide-6
SLIDE 6

Outline

Constraint Programming

History

Constraint Satisfaction

Constraint Satisfaction Problem (CSP) Examples

Optimisation

Many solution Over constrained

Commercial Application Pointers Summary

slide-7
SLIDE 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

slide-8
SLIDE 8

Constraint Satisfaction Problem (CSP)

Definition

a set of variables X={X1,..., Xn}, 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 variables that participate in that constraint and a relation rel(C<j>) Dj1 × Dj2 × …× Djt, that specifies the values that variables in the scope can be assigned simultaneous

CSP Model

0,1,2 0,1,2 0,1,2 X1 X3 X2 <> = <

slide-9
SLIDE 9

Simple Backtrack (BT) Heuristic

Variable ordering X1…X3 Value ordering 0…2

CSP: Search

0,1,2 0,1,2 0,1,2 <> = < X3 X1 X2 1 1 2 2 1 1

slide-10
SLIDE 10

1 1 2 1 2 2 S 1 2 1 1 2 2 1 2 2 1 2 1 1 1 2 1 2 2 1 2 1 1 2 1 1 2 2 1 S

CSP: Search

Simple Backtrack (BT) Heuristic

Variable ordering X1…X3 Value ordering 0…2

slide-11
SLIDE 11

Constraint propagations through consistency techniques

Arc Consistency {X2-X3}

CSP: Constraint Propagation

0,1,2 0,1,2 0,1,2 <> = < X3 X2 X1

slide-12
SLIDE 12

Example of Arc Consistency

Arc Consistency {X2-X3}

CSP: Constraint Propagation

Arc Consistency {X1-X3} Arc Consistency {X2-X1}

slide-13
SLIDE 13

CSP and solving methods are much richer then previous example showed, in particular when it comes to:

Domain Constraints Search Consistency techniques

CSP: seems fairly limited?

slide-14
SLIDE 14

Domain

finite (but also continues) Integer Reals Boolean (SAT) String Combinations of above

CSP: Domain and Constraints

Constraints

linear (but also nonlinear) Unary Binary Higher arity Global Constraints

slide-15
SLIDE 15

CSP: Search & Consistency tech.

General algorithms Generate and Test Simple Backtracking Intelligent Backtracking Algorithms using consistency checking Forward Checking (FC) Partial Look Ahead (PLA) Full Look (FL) Maintaining Arc Consistency (MAC)

15

Constraint propagations Node* Consistency Arc** Consistency Path Consistency

*Node = Variable **Arc = Constraint

slide-16
SLIDE 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

slide-17
SLIDE 17

Outline

Constraint Programming

History

Constraint Satisfaction

Constraint Satisfaction Problem (CSP) Examples

Optimisation

Many solution Over constrained

Application areas Pointers Summary

slide-18
SLIDE 18

CSP Examples

Graph Colouring Scheduling

slide-19
SLIDE 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,

  • ptimization.
slide-20
SLIDE 20

Graph Coloring

Variable order: A-F Value order: Red, Green, Blue.

slide-21
SLIDE 21

Graph Coloring

Variable order: A-F Value order: Red, Green, Blue.

slide-22
SLIDE 22

Graph Coloring

Variable order: A-F Value order: Red, Green, Blue.

slide-23
SLIDE 23

Graph Coloring

Variable order: A-F Value order: Red, Green, Blue.

slide-24
SLIDE 24

Graph Coloring

Variable order: A-F Value order: Red, Green, Blue.

slide-25
SLIDE 25

Graph Coloring

Variable order: A-F Value order: Red, Green, Blue.

slide-26
SLIDE 26

Graph Coloring

Variable order: A-F Value order: Red, Green, Blue.

slide-27
SLIDE 27

Graph Coloring

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

slide-28
SLIDE 28

Graph Coloring

Variable order: A-F Value order: Red, Green, Blue.

slide-29
SLIDE 29

Graph Coloring

Variable order: A-F Value order: Red, Green, Blue.

slide-30
SLIDE 30

Graph Coloring

Variable order: A-F Value order: Red, Green, Blue.

slide-31
SLIDE 31

Graph Coloring

Variable order: A-F Value order: Red, Green, Blue.

slide-32
SLIDE 32

Graph Coloring

slide-33
SLIDE 33

Graph Coloring

slide-34
SLIDE 34

Graph Coloring

slide-35
SLIDE 35

:- 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

Graph Colouring (SICStus Prolog)

| ?- solve_AFRICA (A,B,C,D,E,F). A = 1, B = 2, C = 1, D = 3, E = 2, F = 3? yes | ?-

slide-36
SLIDE 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.

Give us the optimal plan (starting time for the surgical task) to minimize the total end time?

  • Exp. Duration (h)

16 6 13 7 5 18 4 Resource demand (number of Staff) 2 9 3 7 10 1 11 Starting time ? ? ? ? ? ? ?

slide-37
SLIDE 37

39

A optimal solution!

An optimal schedule, all surgeries are conducted within 23 hours. Utilisation of the 13 staff and the 4 rooms

0% 50% 100%

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Staff Room

slide-38
SLIDE 38

CSP example: Scheduling

:- use_module(library(clpfd)). :- use_module(library(lists), [append/3]). schedule(Ss, Rs, End) :- length(Ss, 7), Ds = [16,6,13,7,5,18,4], Rs = [2,9,3,7,10,1,11], domain(Ss,1,30), 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). %% End of file | ?- schedule(Ss,Rs,End). Rs = [2,9,3,7,10,1,11], Ss = [1,17,10,10,5,5,1], End = 23 ? yes | ?- */ TASK DURATION RESOURCE ==== ======== ======== t1 16 2 t2 6 9 t3 13 3 t4 7 7 t5 5 10 t6 18 1 t7 4 11 /*

slide-39
SLIDE 39

Outline

Constraint Programming

History

Constraint Satisfaction

Constraint Satisfaction Problem (CSP) Examples

Optimisation

Many solution Over constrained

Commercial Application Pointers Summary

slide-40
SLIDE 40

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

Optimisation

slide-41
SLIDE 41

Optimization: Case A

Cost function

The previous example simply found single solution A complete search discover two more solutions We can use a simple cost function to find the optimal solution

As an example take

Cost function = 5X1 + 2X2 – 1X2

1 1 2 2 2 1 2

slide-42
SLIDE 42

Over constrained problem:

Not uncommon that real world problem is over- constrained Solution, relaxation by removing constraints.

Allow user to select constraint(s) associate a cost with each constraint violation (known

in mathematical programming as ‘Lagrangian relaxation’

Constraint hierarchies

44

Optimization: Case B

slide-43
SLIDE 43

45

Constraint Hierarchies

CSPH0

constraints are partitioned into levels, {H0, H1, .., Hn}

H0 contain hard constraints that must be satisfied H1 … Hn hold soft constraints of decreasing priority or strength

If the CSPH0 have a solution start adding constraints from the next hierarchy. Soft Constraints

slide-44
SLIDE 44

46

Constraint Hierarchies

CSPH0 CSPH1 CSPH01

Solution Space Example

CSPH1

A Solution?

slide-45
SLIDE 45

Outline

Constraint Programming

History

Constraint Satisfaction

Constraint Satisfaction Problem (CSP) Examples

Optimisation

Many solution Over constrained

Application areas Pointers Summary

slide-46
SLIDE 46

Commercial Application: examples

  • Airline crew scheduling - XLufthansa: (OR + CP)
  • The counter allocation problem - Hong Kong International Airport.
  • structure prediction of lattice proteins with extended alphabets
  • Nurse rostering - GATsoft (Norweigen hospitals) (CP + LS)
  • Planning and Scheduling space exploration - Component Library for NASA
  • Staff planning – BanqueBuxelles Lambert
  • Vihivle production optimization – Chrysler Corperation
  • Planning medical appointments – FREMAP
  • Task scheduling – Optichrome computer systems
  • Resource allocation – SNCF
  • From Push to Pull manufacturing – Whirlpool
  • Utility service otimization – Long island lighting company
  • Intelligent cabling of big building – France Telecom
  • Financial DSS – Caisse des Depots
  • Load Capacity constraint regulation – Eurocontrol
  • Planning satellites mission – Alcatel Espace
  • Optimization of configuration of telecom equipment – Alcatel CIT
  • Production Scheduling of herbicides – Monsanto
  • “Just in time” transport and logistic in food industri – Sun Valley
  • Etc.

48

slide-47
SLIDE 47

Pointers: Background reading

http://www.cs.toronto.edu/~fbacchus/csc2512/biblio.html Nordlander, T.E., (2004) 'Constraint Relaxation Techniques & Knowledge Base Reuse', University of Aberdeen, PhD Thesis, pp. 246.

49

slide-48
SLIDE 48

Pointers: Constraint Logic Languages

SCREAMER (LISP, open software) B-Prolog (Prolog based, proprietary) CHIP V5 (Prolog based, also includes C++ and C libraries, proprietary) Ciao Prolog (Prolog based, Free software: GPL/LGPL) ECLiPSe (Prolog based, open source) SICStus (Prolog based, proprietary) GNU Prolog YAP Prolog SWI Prolog a free Prolog system containing several libraries for constraint solving Claire

50

slide-49
SLIDE 49

Pointers: Libraries for CP

Choco (Java library, free software: X11 style) Comet (C style language for constraint programming, free binaries available for non-commercial use) Disolver (C++ library, proprietary) Gecode (C++ library, free software: X11 style) Gecode/J (Java binding to Gecode, free software: X11 style) ILOG CP Optimizer (C++, Java, .NET libraries, proprietary) ILOG CP (C++ library, proprietary) JaCoP (Java library, open source) JOpt (Java library, free software) Koalog Constraint Solver (Java library, proprietary) Minion (C++ program, GPL) python-constraint (Python library, GPL) Cream (Java library, free software: LGPL) (Microsoft Solver Foundation (free up to a certain problem size) )

51

slide-50
SLIDE 50

Summary

Constraint Programming

History

Constraint Satisfaction

Constraint Satisfaction Problem (CSP) Examples

Optimisation

Many solution Over constrained

Application areas Pointers Summary

slide-51
SLIDE 51

References:

(Bistarelli et al, 1997) S. Bistarelli, U. Montanari, and F. Rossi. Semiring-based constraint satisfaction and optimization. J. of the ACM, 44(2):201–236, 1997. (Montanari, 1974)

  • U. Montanari Networks of constraints: Fundamental properties and application to

picture processing, Inf. Sci. 7, 95-132, 1974 (Sutherland , 1963) Sketchpad (aka Robot Draftsman) was a revolutionary computer new electronic editionPDF (3.90 MiB) was published in 2003 (Waltz, 1975) Waltz, D.L.: Understanding line drawings of scenes with shadows, in: Psychology

  • f Computer Vision, McGraw- Hill, New York, 1975

(Burke & Kendal, 2005) Edmund Burke, Graham Kendall. Search methodologies: Introduction tutorials in

  • ptimization and decision support techniques

Tomas Eric Nordlander tomas.nordlander@sintef.no