© Roman Barták, 1999
Quotations“Constraint programming represents one of the
closest approaches computer science has yet made to the Holy Grail of programming: the user states the problem, the computer solves it.”
Eugene C. Freuder, Constraints, April 1997
“Were you to ask me which programming paradigm is likely to gain most in commercial significance over the next 5 years I’d have to pick Constraint Logic Programming, even though it’s perhaps currently one of the least known and understood.”
Dick Pountain, BYTE, February 1995
© Roman Barták, 1999
Talk ScheduleHistorical contextConstraint technology
– basic features– constraint satisfaction– constraints in optimisation– over-constrained problems
ApplicationsSummary
– Advantages & Limitations
TrendsResources
© Roman Barták, 1999
The Origins
Artificial Intelligence– Scene Labelling (Waltz)
Interactive Graphics– Sketchpad (Sutherland)– ThingLab (Borning)
Logic Programming– unification --> constraint solving
Operations Research– NP-hard combinatorial problems
© Roman Barták, 1999
Scene Labellingfirst constraint satisfaction problemTask:
recognise objects in 3D scene by interpreting lines in 2D drawings
Waltz labelling algorithm– legal labels for junctions only– the edge has the same label at both ends
+
+
+ -
+
- ++ +
+
© Roman Barták, 1999
Interactive GraphicsSketchpad (Sutherland)ThingLab (Borning)
– allow to draw and manipulate constrained geometric figures in the computer display
© Roman Barták, 1999
What is CP?CP = Constraint Programming
– stating constraints about the problem variables– finding solution satisfying all the constraints
constraint = relation among several unknowns
Example: A+B=C, X>Y, N=length(S) …Features:
– express partial information X>2
– heterogeneous N=length(S)
– non-directional X=Y+2: X Y+2 YX-2
– declarative manner “
– additive X>2,X<5 X<5,X>2
– rarely independent A+B=5, A-B=1
© Roman Barták, 1999
Solving Technology
Constraint Satisfaction– finite domains -> combinatorial problems– 95% of all industrial applications
Constraints Solving– infinite or more complex domains– methods
• automatic differentiation, Taylor series, Newton method
– many mathematicians deal with whether certain constraints are satisfiable(Fermat’s Last Theorem)
© Roman Barták, 1999
Constraint Satisfaction ProblemConsist of:
– a set of variables X={x1,…,xn}
– variables’ domains Di (finite set of possible values)
– a set of constraints
Example:• X::{1,2}, Y::{1,2}, Z::{1,2}• X = Y, X Z, Y > Z
Solution of CSP– assignment of value from its domain to every variable
satisfying all the constraints
Example:• X=2, Y=2, Z=1
© Roman Barták, 1999
Systematic Search Methods
exploring the solution spacecomplete and soundefficiency issues
Backtracking (BT)Generate & Test (GT)
exploringindividual assignments
exploring subspace
X
Z
Y
© Roman Barták, 1999
Generate & Test
probably the most general problem solving method
Algorithm:generate labelling
test satisfaction
Drawbacks: Improvements:blind generator smart generator
--> local search
late discovery of testing within generatorinconsistencies --> backtracking
Systematic Search Methods
© Roman Barták, 1999
Backtracking (BT)incrementally extends a partial solution
towards a complete solutionAlgorithm:
assign value to variable
check consistency
until all variables labelled
Drawbacks:– thrashing– redundant work– late detection of conflict
Systematic Search Methods
A
C
B
1
1
1
1
2
2
A = D, B D, A+C < 4
1
2
D21
1
© Roman Barták, 1999
GT & BT - ExampleProblem:
X::{1,2}, Y::{1,2}, Z::{1,2}
X = Y, X Z, Y > Z
generate & test backtrackingX Y Z test1 1 1 fail1 1 2 fail1 2 1 fail1 2 2 fail2 1 1 fail2 1 2 fail2 2 1 passed
X Y Z test1 1 1 fail
2 fail2 fail
2 1 fail2 1 passed
Systematic Search Methods
© Roman Barták, 1999
Consistency Techniquesremoving inconsistent values from variables’
domainsgraph representation of the CSP– binary and unary constraints only (no problem!)– nodes = variables– edges = constraints
node consistency (NC)arc consistency (AC)path consistency (PC)(strong) k-consistency
A
B
C
A>5
AB
A<C
B=C
© Roman Barták, 1999
Arc Consistency (AC)
the most widely used consistency technique (good simplification/performance ratio)
deals with individual binary constraints
repeated revisions of arcsAC-3, AC-4, Directional AC
Consistency Techniques
a
b
c
a
b
c
X Y
a
b
c
Z
© Roman Barták, 1999
AC - ExampleProblem:
X::{1,2}, Y::{1,2}, Z::{1,2} X = Y, X Z, Y > Z
1 2
1 2
1 2
1 2
1 2
1 2
Consistency Techniques
X
Y
Z
X
Y
Z
© Roman Barták, 1999
Is AC enough?empty domain => no solutioncardinality of all domains is 1 => solutionProblem:
X::{1,2}, Y::{1,2}, Z::{1,2} X Y, X Z, Y Z
1 2
1 2
1 2
Consistency Techniques
X
YZ
© Roman Barták, 1999
Path Consistency (PC)
consistency along the path only
checking paths of length 2 is enoughPlus/Minus
+ detects more inconsistencies than AC
- extensional representation of constraints
- changes in graph connectivity
Directional PC, Restricted PC
Consistency Techniques
V0 V1
V3
V2 V4 V5
???
© Roman Barták, 1999
K -consistency
K-consistency– consistent valuation o (K-1) variables can be
extended to K-th variable
strong K-consistency J-consistency for each JK
NC strong 1-consistencyAC strong 2-consistencyPC strong 3-consistency
Consistency Techniques
© Roman Barták, 1999
Consistency Completenessstrongly N-consistent constraint graph with
N nodes => solutionstrongly K-consistent constraint graph with
N nodes (K<N) => ???
path consistentbut no solution
Special graph structures – tree structured graph => (D)AC is enough– cycle cutset, MACE
A
B C
D
{1,2,3}
{1,2,3}
{1,2,3}
{1,2,3}
© Roman Barták, 1999
Constraint Propagationsystematic search only => no efficientconsistency only => no completecombination of search (backtracking) with
consistency techniquesmethods:– look back (restoring from conflicts)– look ahead (preventing conflicts)
look back
Labelling order
look ahead
© Roman Barták, 1999
Look Back Methodsintelligent backtrackingconsistency checks among instantiated
variables
backjumping– backtracks to the conflicting variable
backchecking and backmarking– avoids redundant constraint checking
by remembering conflicting levelfor each value
Constraint Propagation
jump here
a
b b b
conflict
still conflict
© Roman Barták, 1999
Look Ahead Methodspreventing future conflicts via consistency
checks among not yet instantiated variables
forward checking (FC)– AC to direct neighbourhood
partial look ahead (PLA)– DAC
(full) look ahead (LA)– Arc Consistency– Path Consistency
Constraint Propagationlab
elling
ord
er
instantiated variable
© Roman Barták, 1999
Look Ahead - ExampleProblem:
X::{1,2}, Y::{1,2}, Z::{1,2}
X = Y, X Z, Y > Z
generate & test - 7 stepsbacktracking - 5 stepspropagation - 2 steps
X Y Z action result1 labelling
{1} {} propagation fail2 labelling
{2} {1} propagation solution
Constraint Propagation
© Roman Barták, 1999
Stochastic and Heuristic MethodsGT + smart generator of complete valuationslocal search - chooses best neighbouring configuration
– hill climbing neighbourhood = value of one variable changed
– min-conflicts neighbourhood = value of selected conflicting variable changed
avoid local minimum => noise heuristics– random-walk
sometimes picks neighbouring configuration randomly– tabu search
few last configurations are forbidden for next step
does not guarantee completeness
© Roman Barták, 1999
Connectionist approachArtificial Neural Networks
– processors (cells) = <variable,value>on state means “value is assigned to the variable”
– connections = inhibitory links between incompatible pairs
GENETstarts from random configuration
re-computes states using neighbouring cells
till stable configuration found (equilibrium)
learns violated constraints by strengthening weights
Incomplete (oscillation)
X Y
1
2
Z
variables
valu
es
© Roman Barták, 1999
Constraint Optimisationlooking for best solutionquality of solution measured by application
dependent objective function
Constraint Satisfaction Optimisation Problem– CSP– objective function: solution -> numerical value
Note: solution = complete labelling satisfying all the constraints
Branch & Bound (B&B)– the most widely used optimisation algorithm
© Roman Barták, 1999
Branch & Bounddepth first search (like BT)
+ under estimate of the objective function (minimisation)
+ bound (initially set to plus infinity)
heuristic function: partial labelling -> under estimate of the objective function
pruning sub-tree under the partial labelling when– constraint inconsistency detected
– heuristic value exceeds the bound
efficiency is determined by:– the quality of the heuristic function
– whether a good bound is found early
Constraint Optimisation
© Roman Barták, 1999
Over-Constrained ProblemsWhat solution should be returned when
no solution exists?impossible satisfaction of all constraints
because of inconsistency Example: X=5, X=4
Solving methods– Partial CSP (PCSP)
weakening original CSP– Constraint Hierarchies
preferential constraints
© Roman Barták, 1999
Dressing Problem
shirt: {red, white}
footwear: {cordovans, sneakers}
trousers: {blue, denim, grey}
shirt x trousers: red-grey, white-blue, white-denim
footwear x trousers: sneakers-denim, cordovans-grey
shirt x footwear: white-cordovans
Over-Constrained Problems
red white
blue denim grey
cordovans sneakers
shirt
trousers footwear
© Roman Barták, 1999
Partial CSPweakening a problem:
– enlarging the domain of variable– enlarging the domain of constraint – removing a variable– removing a constraint
one solutionwhite - denim - sneakers
Over-Constrained Problems
enlarged constraint’s domain
red white
blue denim grey
cordovans sneakers
shirt
trousers footwear
© Roman Barták, 1999
Partial CSPPartial Constraint Satisfaction Problem– CSP– evaluation function: labelling -> numerical value
Task:find labelling optimal regarding the evaluation functionExample: maximising number of satisfied constraints
Usage:– over-constrained problems– optimisation problems (PCSP is a generalisation of CSOP)– obtaining “good enough” solution within fixed time
Over-Constrained Problems
© Roman Barták, 1999
Constraint Hierarchiesconstraints with preferencessolution respects the hierarchy
– weaker constraints do not cause dissatisfaction of stronger constraint
shirt x trousers @ requiredfootwear x trousers @ strongshirt x footwear @ weak
two solutionsred - grey - cordovans
white - denim - sneakers
Over-Constrained Problems
red white
blue denim grey
cordovans sneakers
shirt
trousers footwear
© Roman Barták, 1999
Constraint HierarchiesHierarchy = (finite) set of labelled constraints
levels Hi (H0 - required constraints, H1 - strongest non required …)
Solution:– S0={ | all required constraints are satisfied by }
– SH={ | S0 s.t. S0 better(,,H) }where better - comparator (partial ordering of valuations)
solving methods:– refining method (DeltaStar)
• solve constraints from stronger to weaker levels
– local propagation (DeltaBlue, SkyBlue)• repeatedly selects uniquely satisfiable constraints• planning + value propagation
hierarchies in optimisation problems– weak constraint objective function = optimum
Over-Constrained Problems
© Roman Barták, 1999
Applicationsassignment problems
– stand allocation for airports– berth allocation to ships– personnel assignment
• rosters for nurses
• crew assignment to flights
network management and configuration– planning of cabling of telecommunication networks– optimal placement of base stations in wireless networks
molecular biology– DNA sequencing
analogue and digital circuit design
© Roman Barták, 1999
Scheduling Problemsthe most successful application area
production scheduling (InSol Ltd.)well-activity scheduling (Saga Petroleum) forest treatment schedulingplanning production of jets (Dassault Aviation)
© Roman Barták, 1999
Advantages
declarative nature– focus on describing the problem to be solved, not on
specifying how to solve it
co-operative problem solving– unified framework for integration of variety of special-
purpose algorithms
semantic foundation– amazingly clean and elegant languages– roots in logic programming
applications– proven success
© Roman Barták, 1999
LimitationsNP-hard problems & tracktabilityunpredictable behaviourmodel stabilitytoo high-level
(new constraints, solvers, heuristics)
too low-level (modelling)
too localnon-incremental (rescheduling)
weak solver collaboration
© Roman Barták, 1999
Trendsmodelling
– global constraints (all_different)– modelling languages (Numerica, VisOpt)
understanding search– visualisation, performance debugging
hybrid algorithmssolver collaborationparallelismmulti-agent technology
© Roman Barták, 1999
ResourcesConferences
– Principles and Practice of Constraint Programming (CP)
– The Practical Application of Constraint Technologies and Logic Programming (PACLP)
Journal– Constraints (Kluwer Academic Publishers)
Internet– Constraints Archive
http://www.cs.unh.edu/ccc/archive
– Guide to Constraint Programminghttp://kti.mff.cuni.cz/~bartak/constraints/
Top Related