Академический Документы
Профессиональный Документы
Культура Документы
OA4201 Nonlinear Programming
Lecture Notes 2
Overview
• Last time:
– Min/max decomposition algorithm;
Min/max decomposition algorithm;
counterinsurgency example
• Now:
– Further details on min/max decomposition
– Benders decomposition
• Upcoming:
– Lab this Wednesday in GL‐203
1
1/14/2013
Min/Max Decomposition Algorithm
1. “Guess” an initial solution y.
2. Solve the Subproblem using this y.
– Accumulate another extreme point.
Accumulate another extreme point
– Update upper bound if possible. If the upper bound is updated,
set y*=y (i.e., save the current y as a possible optimal solution).
– If upper bound = lower bound, stop.
Return y* as the optimal solution.
3. Solve the Master Problem using all accumulated extreme points.
– Update lower bound.
Update lower bound
– If upper bound = lower bound, stop.
Return y* as the optimal solution.
4. Return to Step 2. Solve the Subproblem using the optimal y from Step 3.
Subproblem
max (1 y )u1 (1 2 y )u2
u1 ,u2
s.t. u1 u2 1
u1 , u2 0
• We put ourselves in the adversary’s shoes to evaluate a
possible plan y.
• We learn how the adversary will respond to our plan.
• Objective value is an upper bound on the objective
value of the original min/max problem.
– We restrict ourselves to a single plan while allowing
the adversary to choose any plan.
2
1/14/2013
Master Problem
min z
0 y 2; z
Graphical Interpretation
1 2 y
3
1/14/2013
Another example
min max (1 y1 )u1 (3 2 y2 )u2 (5 3 y3 )u3
yY u
where
Y { y {0,1}3 | y1 y2 y3 1}
4
1/14/2013
Can Adversary Plans Repeat?
• Each time we solve the subproblem, we obtain a plan
for the adversary.
• Each plan gives us a cut
Each plan gives us a cut in our master problem.
in our master problem
• If we keep generating new cuts, we will eventually
obtain the optimal solution to the original min/max
problem.
• Question: will we always generate new cuts, or can we
become “stuck”
become stuck generating the same cuts (plans) over
generating the same cuts (plans) over
and over?
5
1/14/2013
Extension: Benders Decomposition
• Benders decomposition is used for problems in which
variables can be separated into a vector x of “easy”
variables and a vector y of
variables and a vector y of “hard”
hard variables.
variables.
– Given values of the “hard” variables y, it is easy to
optimize with respect to the “easy” variables x.
• Consider the problem
z* min f ( y ) c ' x
x, y
s.t. Ax By b
x0
y Y
Benders Decomposition
• For a fixed y, the “easy” subproblem is:
h( y ) f ( y ) min cx
x
s.t. Ax b By
x0
• For fixed y, this is simply a linear program. Therefore, it
has a dual with the same optimal objective value:
h( y ) f ( y ) max(b By )u
u
s.t. Au c
6
1/14/2013
Benders Decomposition
• The feasible region of the dual subproblem has a set of
E {u1 , u 2 ,..., u |E| }
extreme points .
• From LP theory, we know that at least one extreme
From LP theory we know that at least one extreme
point is optimal. Therefore,
h( y ) f ( y ) max(b By )u
u
s.t. A ' u c
f ( y ) max (b By )u l
l 1,2,...,| E |
Benders Decomposition
• Based on this insight, we can transform our original
problem as follows:
i f ( y ) cx
z* min
x, y
s.t. Ax By b
x0
y Y
7
1/14/2013