2. Exact Methods
2. Exact Methods
Combinatorial Optimization
(part 2 – Exact methods)
Prof M. Ghirardi
Exact methods
• LP with continuous variables only
– Simplex Algorithm - pseudo-polynomial complexity (n3 in
practice)
Line subtractions
Column subtractions
Processing 8 2 3 2 5
Time
Ad-hoc methods example:
scheduling
Jobs J1 J2 J3 J4 J5
Processing 8 2 3 2 5
Time
Processing 8 2 3 2 5
Time
Machine J4 J2 J3 J5 J1
0 2 4 7 12 20
• In both cases the total completion time is
2+4+7+12+20=45.
Ad-hoc methods example:
scheduling
Proof:
• Minimizing the average completion time is
equivalent to minimize the sum of
completion time (a function minimum is in
the same point if the function is divided by
a positive constant, the number of job in
our case)
• We build a proof based on a reductio ad
absurdum.
• Consider a sequence S in which the jobs are not in order
of nondecreasing pj. Then there is a job JK that is
immediately preceded by a job Jj with pj>pK.
Direction of the
o.f. improvement
Exact methods: Branch & Bound
Exact methods: Branch & Bound
Notes:
• Easy to model.
X*
Branching
• Partition the solution state of P into two or more
subproblems P1, P2,…Pn such that
– Every feasible solution to P appears in at least one
(often exactly one) problem P1, P2, …Pn
– x* is infeasible to each of R(P1), R(P2), … R(Pn)
P1
P2
Selection
• A set of open nodes is kept in memory. Each
selected node may be closed (due to the bound
criterions) or generate other nodes (branch).
• The branched nodes are added to the set.
• The selection of the next node to branch is
another parameter of the algorithm. Often used
ones are:
– Select the lower LB node (best first)
– Select the higher level node - explore the tree by
depth (depth first)
– Select the lower level node - explore the tree by
depth (breadth first)
37
Selection
P1
xrel
P2
P1
P2 is branched.
P2_1
Selection
P1
xrel
P2_1
P1 is branched.
P2_1
Selection
P2_1 is selected
The lower bound is integer
P1_1 (hence, an upper bound as
well)
Node is closed, and x* is
kept as the best solution
xrel found.
P2_1
Pruning nodes
x*
Final result
x*
LP Based Branch and Bound
Initialization
z*=, x*= NodesList empty? x* optimal
NodesList = {Root node}
Choose a node P
From NodesList
Branch
Branch and Bound
• Modern MILP solvers embed a Branch and Bound
algorithm coupled with many additional pruning methods,
based on
– Geometrical representation of the problems.
– Known sub-problem structures detection.
– Powerful heuristics
– etc..
• Solvers are very effective, but still time grows more than
linearly when the problems dimension grows, especially
in the case of “big-M” parameters.
• Other Exact Methods for MILP: Column Generation,
Branch and Cut, Branch and Price.
B&B – Typical behaviour