Constraint Programming - PowerPoint PPT Presentation

Constraint programming l.jpg
Download
1 / 41

  • 271 Views
  • Updated On :
  • Presentation posted in: Travel / Places

Constraint Programming. Michael Trick (actually 75% Pascal Van Hentenryck, 20% Irv Lustig, 5% Trick) Carnegie Mellon. Outline. Motivation An Overview of Constraint Programming Constraint Programming at Work Getting Started Sports Scheduling Manufacturing Perspectives.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

Download Presentation

Constraint Programming

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Constraint programming l.jpg

Constraint Programming

Michael Trick

(actually 75% Pascal Van Hentenryck, 20% Irv Lustig, 5% Trick)

Carnegie Mellon


Outline l.jpg

Outline

  • Motivation

  • An Overview of Constraint Programming

  • Constraint Programming at Work

    • Getting Started

    • Sports Scheduling

    • Manufacturing

  • Perspectives


Combinatorial optimization l.jpg

Combinatorial Optimization

  • Many, many practical applications

    • Resource allocation, scheduling, routing

  • Properties

    • Computationally difficult

    • Technical and modeling expertise needed

    • Experimental in nature

    • Important ($$$) in practice

  • Many solution techniques

    • Integer programming

    • Specialized methods

    • Local search/metaheuristics

    • Constraint programming


Constraint programming4 l.jpg

Constraint programming

  • Began in 1980s from AI world

    • Prolog III (Marseilles, France)

    • CLP(R)

    • CHIP (ECRC, Germany)

  • Application areas

    • Scheduling, sequencing, resource and personnel allocation, etc. etc.

  • Active research area

    • Specialized conferences (CP, CP/AI-OR, …)

    • Journal (Constraints)

    • Companies


Constraint programming5 l.jpg

Constraint Programming

  • Two main contributions

    • A new approach to combinatorial optimization

      • Orthogonal and complementary to standard OR methods

      • Combinatorial versus numerical

    • A new language for combinatorial optimization

      • Rich language for constraints

      • Language for search procedures

      • Vertical extensions


The tutorial l.jpg

The Tutorial

  • Goal: to provide an introduction

    • What is constraint programming?

    • What is it good for?

    • How does it compare to integer programming?

    • How easy is it to use?

    • What is the underlying technology?


Constraint programming7 l.jpg

Constraint Programming

  • Constraint programming by example

    • Illustrate rich language

    • Contrast with integer programming

    • Illustrate some underlying technologies

  • Disclaimers

    • Can’t cover all of CP

    • I want to make you curious

  • Language/system used

    • Could use many; choose OPL


Modeling in constraint programming l.jpg

Modeling in Constraint Programming

  • A rich constraint language

    • Arithmetic, higher-order, logical constraints

    • Global constraints for natural substructures

  • Specification of a search procedure

    • Definition of search tree to explore

    • Specification of search strategy


Comparison of cp ip l.jpg

Branch and Prune

Prune: eliminate infeasible configurations

Branch: decompose into subproblems

Prune

Carefully examine constraints to reduce possible variable values

Branch

Use heuristics based on feasibility info

Main focus:constraints and feasibility

Branch and Bound

Bound: eliminate suboptimal solutions

Branch: decompose into subproblems

Bound

Use (linear) relaxation of problem (+ cuts)

Branch

Use information from relaxation

Main focus: objective function and optimality

Comparison of CP/IP


Illustrative artificial example l.jpg

Illustrative artificial example

  • Color a map of (part of) Europe: Belgium, Denmark, France, Germany, Netherlands, Luxembourg

  • No two adjacent countries same color

  • Is four colors enough?


Opl example l.jpg

enum Country {Belgium,Denmark,France,Germany,Netherlands,Luxembourg};

enum Colors {blue,red,yellow,gray};

var Colors color[Country];

solve {

color[France] <> color[Belgium];

color[France] <> color[Luxembourg];

color[France] <> color[Germany];

color[Luxembourg] <> color[Germany];

color[Luxembourg] <> color[Belgium];

color[Belgium] <> color[Netherlands];

color[Belgium] <> color[Germany];

color[Germany] <> color[Netherlands];

color[Germany] <> color[Denmark];

};

Variables non-numeric

Constraints are non-linear

Looks nothing like IP!

Perfectly legal CP

OPL example


Constraint programming12 l.jpg

Domain store

For each variable: what is the set of possible values?

If empty for any variable, then infeasible

If singleton for any variable, then solution

Constraints

Capture interesting and well studied substructures

Need to

Determine if constraint is feasible WRT the domain store

Prune “impossible” values from the domains

Constraint Programming


Constraints l.jpg

Constraints

  • Can have differing techniques to “handle” a constraint type:

    3x+10y+2z + 4w = 4

    x in {0,1}, y in {0,1,2}, z in {0,1,2}, w in {0,1}

    Simple bound on sizes gives y in {0}

    More complicated handling gives

    x in {0}, y in {0}, z in {0,2}, w in {0,1}


Constraint solving l.jpg

Constraint Solving

  • General algorithm is

    Repeat

    select a constraint c

    if c is infeasible wrt domain store

    return infeasible

    else apply pruning algorithm of c

    Until no value can be removed


Branching l.jpg

Branching

  • Once the constraint solving is done, if the problem is not infeasible nor are the domains singletons, then apply the search method

    Choose a variable x with non-singleton domain (d1, d2, … di)

    Foreach d in (d1, d2, … di)

    add constraint x=di to problem and solve


Show opl solving coloring problem l.jpg

Show OPL solving coloring problem


Strength of cp l.jpg

Strength of CP

  • Since there is no need for a linear relaxation, the language can represent much more directly (no need for big-M IP formulations.


Examples of formulation abilities l.jpg

Examples of formulation abilities

  • Facility location: want a constraint that customer j can be assigned to warehouse i only if warehouse open. (y[i]=1 if warehouse i open)

    IP: x[i,j] is 1 if cust j assigned to i

    x[i,j] <= y[i]

    CP:x[j] is the warehouse cust j assigned to (not a 0,1 variable)

    y[x[j]] = 1;


Similar example l.jpg

Similar example

  • Routing type constraints.

    Let x[i] be the ith customer visited and d[i,j] be distance from i to j

    sum (i in 1..n) d[x[i],x[i+1]]

    gives total distance traveled


Formulation strengths l.jpg

Formulation strengths

  • Logical requirements: if A=1 and B<=2 then either C>=3 or D=1.

  • Really painful in IP. Straightforward in CP:

    ((A=1) &(B<=2)) => ((C>=3)\/(D=1))


Global constraints l.jpg

Global Constraints

  • Recognize that some types of constraints come up often

    • Create specialized routines to handle

      • Strong pruning

      • Efficient handling

  • Extend system to include these


Global constraint alldifferent l.jpg

Global constraint: alldifferent

  • Most well known and studied constraint.

    alldifferent(x,y,z)

    states that x, y, and z take on different values. So x=2, y=1, z=3 would be ok, but not x=1, y=3, z=1.

    Clear uses in routing (x[i] is ith customer visited, alldifferent[x] says each customer visited at most once), very useful in many other situations.


Alldifferent feasibility and pruning l.jpg

Alldifferent feasibility and pruning

  • Feasibility? Given domains, create domain/variable bipartite graph

x1

1

x2

2

3

x3

4

x4

5

x5


Alldifferent feasibility and pruning24 l.jpg

Alldifferent feasibility and pruning

  • Pruning? Which edges are in no matching?

x1

1

Domain is sharply

reduced

x2

2

3

x3

4

x4

5

x5


Global constraints25 l.jpg

Global constraints

  • Many different types of constraints have specialized routines

    • distribute(card,value,base): the number of times value[i] appears in base is card[i]

    • circuit(succ) : the values in succ form a hamiltonian circuit (so if you follow the sequence 1, succ[1], succ[succ[1]] etc, you will get a loop through 1..n.


Global constraints26 l.jpg

Global constraints

  • Many others, and new ones being created all the time

    • Strengthen and expand the language

    • Make modeling easier and more natural

    • System is faster at finding solutions

    • Details hidden to user


Vertical language extensions l.jpg

Vertical language extensions

  • Can add constraints and definitions to make modeling even more natural

  • Ideas remain the same: there are domains and constraints; constraints check for feasibility and prune domains; a search strategy guides the system in finding solutions


Scheduling l.jpg

Scheduling

  • Want concepts of jobs, machines, “before”, “after”, jobs requiring machines, and so on.

  • Easy to extend


Example of scheduling l.jpg

Example of scheduling

forall(j in Jobs)

forall(t in 1..nbTasks-1)

task[j,t] precedes task[j,t+1];

forall(j in Jobs)

forall(t in Tasks)

task[j,t] requires tool[resource[j,t]];


Search strategy l.jpg

Search Strategy

  • Combined with model, search strategies are integral to constraint systems.

  • Allow choice of branching variables or more powerful search strategies

  • Can be key in solving problems

  • Two steps

    • Specify tree to search

    • Specify how to explore the tree


Example of search strategies l.jpg

Example of Search Strategies

forall(s in Stores ordered by increasing regretdmax(cost[s]))

tryall(w in Warehouses ordered by increasing supplyCost[s,w]) supplier[s] = w; };

implements a maximum regret ordering (find a store with maximum regret then order the warehouses by increasing cost)


Example problem l.jpg

Example Problem

  • Painting cars (from Magnanti and Sokel).

  • Sequence cars to minimize paint changeover

  • Cars cannot be sequenced too far out of order


Small example l.jpg

Small example

Small Example: 10 cars in sequence. The order for assembly is 1, 2, ..., 10. A car must be painted within 3 positions of its assembly order. For instance, car 5 can be painted in positions 2 through 8 inclusive. Cars 1, 5, and 9 are red; 2, 6, and 10 are blue; 3 and 7 green; and 4 and 8 are yellow. Initial sequence 1, 2, ... 10 corresponds to color pattern RBGYRBGYRB and has 9 purgings. The sequence 2,1,5,3,7,4,8,6,10,9 corresponds to color pattern BRRGGYYBBR and has 5 purgings.


Constraint program l.jpg

Constraint Program

int n=…;

int rnge=…;

int ncolor=…;

range Slots 1..n;

var Slots slot[1..n];

var Slots revslot[1..n];

int color[1..n]= …;

minimize

sum (j in 1..n-1) (color[revslot[j]] <> color[revslot[j+1]])

subject to {

forall (i in Slots)

i-rnge<=slot[i] <= i+rnge; /*Must be in range */

alldifferent(slot); /*must choose different slots */

forall (i in Slots)

revslot[slot[i]] = i;

};


Personal use l.jpg

Personal use

  • Tremendous help in my work on sports scheduling: much easier to formulate idiosyncratic constraints

  • Very fast to create prototypes

  • Competitive (at least!) to IP approaches


Result l.jpg

Result

  • Formulation is much easier than IP formulation

  • Gets good solutions much faster than IP

  • Is competitive in proving optimality


Finding optimal solutions l.jpg

Finding optimal solutions

  • Constraint programs can find optimal solutions. Typically works by finding a feasible solution and adding a constraint that future solutions must be better than it. Repeat until infeasible: the last solution found is optimal


Perspectives l.jpg

Perspectives

  • Many solution techniques

    • Integer programming

    • Constraint programming

    • Local search

    • Combinations

  • Which to use?


Comparing ip and cp l.jpg

Comparing IP and CP

  • Complementary technologies

    • Integer programming

      • Objective function: relaxations

    • Constraint programming

      • Feasibility: domain reductions

  • Might need to experiment with both

  • CP particularly useful when IP formulation is hard or relaxation does not give much information


Combining methods l.jpg

Combining Methods

  • Local and Global Search

    • Use CP/IP for very large neighborhood search (take a solution, remove large subset, find optimal completion)

  • Combining CP and IP

    • Use LP as constraint handler

    • Use CP as subproblem solver in branch and price

    • ……


Conclusions l.jpg

Conclusions

  • Constraint programming should become a part of every OR person’s toolkit

  • Combinations of CP and IP represent a “big thing” in future techniques

  • Blurring of lines between optimization and heuristics

  • This talk at http://mat.gsia.cmu.edu/INFORMS/cp.ppt


  • Login