g53clp constraint logic programming - nottinghampszrq/files/11clpoptimisation.pdfconstraint...
TRANSCRIPT
G53CLPConstraint Logic Programming
Constraint Optimisation Problems
Dr Rong Qu
Constraint Satisfaction Problems
So far All solutions are equally good
In some real world applications, we Not only want feasible solutions, but also good
solutions
We have different preferences on constraints
Problems are too constrained that there is no solution satisfying all constraints
G53CLP – Constraint Logic Programming Dr R. Qu
Constraint Optimisation Problems
Real world problems present to be messy
In some cases a conflict-free solution is needed All constraints must be satisfied
In some cases preferences are given, rather than constraints Hard and soft constraints
In some cases, some constraints are more important than others Constraints with different weights (importance)
G53CLP – Constraint Logic Programming Dr R. Qu
Constraint Optimisation Problems
What are good solutions? Objective function
Problem specific function How much are constraints satisfied
Relatively new research Scheduling Timetabling Resource allocations etc
G53CLP – Constraint Logic Programming Dr R. Qu
Constraint Optimisation Problems
Find feasible solutions with the best value of the objective function
COP (C,f) Constraint Satisfaction Problem (C)
+
Objective function (f)(maps every solution to a numeric value)
G53CLP – Constraint Logic Programming Dr R. Qu
Constraint Optimisation Problems
A solution θ is preferred to solution θ’ If the value of objective function f under θ is less
(or larger in maximisation problem) than θ’
An optimal solution of COP (C,f) A solution θ* of C, such that no other solution of C
is preferred to θ*.
G53CLP – Constraint Logic Programming Dr R. Qu
G53CLP – Constraint Logic Programming Dr R. Qu
COP - examples
Graph colouring
C: different colour for adjacent vertices
f: Minimum number of colours used
Linear expression
C: constraints for variables in the expression
f: Minimise the result of linear expressions
G53CLP – Constraint Logic Programming
COP - examples
TSP with time windows
C Each city visited only once
Each city visited within a certain time window
f: shortest route
COP for TSP*
Constraint propagation to remove values of variable which lead to no better solution
*G. Pesant, M. Gendreau , J.Y. Potvin, J.M. Rousseau. An Exact Constraint Logic Programming Algorithm for the TravelingSalesman Problem with Time Windows. Transportation Science 32(1): 12 - 29, 1998*F. Focacci, A. Lodi, M. Milano, "A hybrid exact algorithm for the TSPTW", INFORMS Journal on Computing 14, 403-417, 2002
Branch and Bound (B&B)
General method for optimisation problems Systematically enumerate all candidate solutions Large subsets of fruitless candidates are discarded Use upper and lower estimated bounds of the
quantity being optimized
In COP most widely used CPLEX in ILOG Solver …
G53CLP – Constraint Logic Programming Dr R. Qu
Branch and Bound (B&B)
Based on depth first search Branches pruned during the search by a bound
Keep the best solution so far
During the search if partial solutions (nodes) are proved cannot improve the result Prune the branch under the node
All solutions in branches under the node are abandoned
G53CLP – Constraint Logic Programming Dr R. Qu
Branch and Bound (B&B)
Bestsolution
X
…
X
Bestsolution
…
No optimal solutionbelow these branches
G53CLP – Constraint Logic Programming Dr R. Qu
B & B
Two important factors
A heuristic function, h
Estimated objective values for compound labels of partial solutions
A bound, b
Used to prune branches with no optimal solutions
Updated during the search
G53CLP – Constraint Logic Programming Dr R. Qu
B & B
During the search in the search tree
Before labelling a variable, a value of the heuristic function is calculated
If the heuristic value is greater than* the bound The whole sub-tree under the node is pruned
If the heuristic value of a solution is less than the existing bound Update the bound Store the newly found solution
* For a minimisation problem
G53CLP – Constraint Logic Programming Dr R. Qu
B & B – heuristic
Heuristic h
Function maps a partial solution to an estimate of the objective function value
Good estimate of the best values of all branches under the current node
If the best value under the branch is worse than the current bound, then there is no need to explore these branches
Problem specific
G53CLP – Constraint Logic Programming Dr R. Qu
B & B – heuristic
Use heuristic to prune the search tree There is no solution in the sub-tree (under the
node)
All solutions in the sub-tree are not optimal
So that Solutions can be found earlier
The search space is reduced
Speed up the search
G53CLP – Constraint Logic Programming Dr R. Qu
B & B – heuristic
A good heuristic h is the key to successful B&B
1. Must underestimate* Admissible Return the lower bound of the heuristic value Otherwise the optimal solution may be
pruned h’ is the actual cost, h <= h’
2. Good heuristics
* For a minimisation problem
G53CLP – Constraint Logic Programming Dr R. Qu
B & B – heuristic
A good heuristic h is the key to successful B&B
1. Must underestimate
2. Good heuristics The closer the estimation of heuristic, the
larger the part of search tree pruned h’ is the actual cost, the closer h is to h’ the
better
G53CLP – Constraint Logic Programming Dr R. Qu
B & B – bound
Usually set as infinite value* at the beginning
Updated during the search by recording the best so far heuristic value
* For a minimisation problem
infinite positive*
G53CLP – Constraint Logic Programming Dr R. Qu
B & B – bound
Better bound, b Helps to find good solutions earlier
In practice, user can provide a bound
Satisfied even the solution is not optimal
…
v
G53CLP – Constraint Logic Programming Dr R. Qu
SEND MORE MONEY - Problem
S E N D
+ M O R E
= M O N E Y
Cryptarithmetic problem: mathematical puzzles where digits are replaced by symbols
Find unique digits the letters represent, satisfying the above constraints
G53CLP – Constraint Logic Programming Dr R. Qu
SEND MORE MONEY - Model
Variables
S, E, N, D, M, O, R, Y
Domain
{0, …, 9}
G53CLP – Constraint Logic Programming Dr R. Qu
SEND MORE MONEY - Model
Constraints
Distinct variables, S ≠ E, M ≠ S, …
S*1000 + E*100 + N*10 + D
+
M*1000 + O*100 + R*10 + E
=
M*10000 + O*1000 + N*100 + E*10 + Y
G53CLP – Constraint Logic Programming Dr R. Qu
SEND MORE MONEY – How?
How would you solve the problem using CP techniques? Search tree with backtracking
Constraint propagation
Forward & backward checking
Combination of above?
Different problems may find different techniques more appropriate
G53CLP – Constraint Logic Programming Dr R. Qu
SEND MORE MONEY - Solution
9 5 6 7
+ 1 0 8 5
= 1 0 6 5 2
Is this the only solution?
Sometimes we want to maximise an objective
S E N D
+ M O R E
= M O N E Y
G53CLP – Constraint Logic Programming Dr R. Qu
SEND MOST MONEY - Problem
S E N D
+ M O S T
= M O N E Y
Objective: we now want to maximise MONEY
G53CLP – Constraint Logic Programming Dr R. Qu
SEND MOST MONEY - Problem
Modelling
What does “best” mean
How to find best solution
Search
Assign scores for proposed solution, h
Update the bound, b
G53CLP – Constraint Logic Programming Dr R. Qu
COP – real world examples
Resource allocation Nurse rostering systems in hospitals BT services
Timetabling University course/exam scheduling systems
Transportation Flight scheduling (ECLiPSe) and Aircraft allocation (ILOG) at
BA ILOG vehicle routing
Scheduling Job shop scheduling
G53CLP – Constraint Logic Programming Dr R. Qu
Summary
Constraint optimisation problem
Branch and bound (B&B)
Heuristic h
Bound b
Examples
SEND + MORE = MONEY (CSP)
SEND + MOST = MONEY (COP)
G53CLP – Constraint Logic Programming Dr R. Qu
G53CLP – Constraint Logic Programming Dr R. Qu
Constraint Optimisation Problems – Demos in OPL Studio
SEND MORE MONEY - model
S E N D
+ M O R E
= M O N E Y
Variables:
Domain:
G53CLP – Constraint Logic Programming Dr R. Qu
SEND MORE MONEY - model
//.mod file//declaration//variablesenum Letters {S, E, N, D, M, O, R, Y};
//domainvar int l[Letters] in 0..9;
…
G53CLP – Constraint Logic Programming Dr R. Qu
SEND MORE MONEY - model
//.mod file//declaration…//problem - constraintssolve {
alldifferent(l) onDomain;l[S] <> 0; l[M] <> 0; ...
};
G53CLP – Constraint Logic Programming Dr R. Qu
SEND MORE MONEY - model
//.mod file//declaration…//problem - constraintssolve {
...1000*l[S] + 100*l[E] + 10*l[N] + l[D] + 1000*l[M] + 100*l[O] + 10*l[R] + l[E]= 10000*l[M] + 1000*l[O] + 100*l[N] + 10*l[E] + l[Y];
};
G53CLP – Constraint Logic Programming Dr R. Qu
G52AIP – AI Programming
SEND MORE MONEY - model
G52AIP – AI Programming
SEND MORE MONEY – decision tree
SEND MOST MONEY – model
S E N D
+ M O S T
= M O N E Y
Variables:
Domain:
G53CLP – Constraint Logic Programming Dr R. Qu
Smuggler’s Knapsack Problem
A smuggler has a knapsack of capacity 9
He can only make one trip
He can smuggle Bottles of whisky size 4 profit 15
Bottles of perfume size 3 profit 10
Cartons of cigarettes size 2 profit 7
He wants At least a profit of 30
Maximise the profit
G53CLP – Constraint Logic Programming Dr R. Qu
Smuggler’s Knapsack Problem
Variables W, P, C
Domain {0, …, 9}
Constraints 4*W + 3*P + 2*C <= 9;
15*W + 10*P + 7*C >=30;
Bottles of whisky size 4 profit 15Bottles of perfume size 3 profit 10Cartons of cigarettes size 2 profit 7
G53CLP – Constraint Logic Programming Dr R. Qu
Knapsack Problems
Which items should be put in the bag to maximise the profit
G53CLP – Constraint Logic Programming Dr R. Qu
Knapsack Problems
General problems
Given a number of items with associated costs and values
Determine the collection of items so that
Total cost is minimised, or within a limit
Total value is maximised
G53CLP – Constraint Logic Programming Dr R. Qu
Simple Assignment Problem
In a factory 4 workers
4 products
Profits of assigning workers to products
Each worker has one product
Each product is assigned to one worker
At least total profit >= 19
p1 p2 p3 p4
w1 7 1 3 4
w2 8 2 5 1
w3 4 3 7 2
w4 3 1 6 3
G53CLP – Constraint Logic Programming Dr R. Qu
Simple Assignment Problem
Variables
li,j: worker i assigned to product j
Domain
0, 1
Constraints
sum (li) = 1, i={..4}
sum (weighti,j * li,j) >= 19
G53CLP – Constraint Logic Programming Dr R. Qu
Lab Session Next Week
In IBM ILOG OPL IDE
Build COP models
G53CLP – Constraint Logic Programming Dr R. Qu