Linear Programming, (Mixed) Integer Linear Programming, and Branch & Bound
Mixed-integer Programming for Controlaeagr/acc05_tut_mip.pdf · 2005. 6. 15. · Mixed-integer...
Transcript of Mixed-integer Programming for Controlaeagr/acc05_tut_mip.pdf · 2005. 6. 15. · Mixed-integer...
-
Mixed-integer Programming
for Control
Arthur Richards
and
Jonathan How
-
Mixed-integer Programming for Control 2/63
Motivation
• What is Mixed-integer Programming?
– MIP is an optimization method that combines
continuous and discrete variables
• Why is it useful?
– MIP can model complex planning and control
problems involving both continuous and discrete
decisions
• Why now? Is MIP new?
– MIP is not a new concept, BUT online use has only
arrived with fast computers and software
-
Mixed-integer Programming for Control 3/63
Problem Classes
Nonlinear
Convex
Logical
T F
T
F
Non-convex
-
Mixed-integer Programming for Control 4/63
Problem Classes
Nonlinear
Convex
Nonlinear opt.
No MIP
Logical
T F
T
F
Non-convex
-
Mixed-integer Programming for Control 5/63
Problem Classes
Nonlinear
Convex
Nonlinear opt.
No MIP
Logical
MIP
T F
T
F
Non-convex
-
Mixed-integer Programming for Control 6/63
Problem Classes
Nonlinear
Convex
Nonlinear opt.
No MIP
Logical
MIP
T F
T
F
Non-convex
Approximate
by MIP
-
Mixed-integer Programming for Control 7/63
Problem Classes
Nonlinear
Convex
Nonlinear opt.
No MIP
Logical
MIP
T F
T
F
Non-convex
Approximate
by MIP
Two main goals of MIP approach:
capture non-convexity and logic
-
Mixed-integer Programming for Control 8/63
Problem Classes
Nonlinear
Convex
Nonlinear opt.
No MIP
Logical
MIP
T F
T
F
Non-convex
Approximate
by MIP
Two main goals of MIP approach:
capture non-convexity and logic
• Encode non-convexity using
integers
• Then apply powerful integer
optimization tools to non-convex
problems
-
Mixed-integer Programming for Control 9/63
Session Outline (1/2)
1. Introduction to MIP
– MIP definition
– Modeling
• Assignment
• Non-convex constraints
• Piecewise affine systems
– Solving MIP
– Using optimization for feedback control
– Techniques for online solution of MIP
– Examples
-
Mixed-integer Programming for Control 10/63
Session Outline (2/2)
2. Projected Variable Metric Algorithm
3. MILP Assignment for Multi-Vehicle Systems
4. Real-time Path-Planning for Tactical UAV
5. Receding Horizon Implementation of MILP for Vehicle Guidance
-
Mixed-integer Programming for Control 11/63
Web Resources
• Slides and sample codes available online:
acl.mit.edu/MILPor
seis.bris.ac.uk/~aeagr
-
Mixed-integer Programming for Control 12/63
Formal Definition
• Mixed-integer Linear Program (MILP)
• Inherently non-convex
• NP-complete
BUT with good software, can find global-
optimum in many useful instances
-
Modelling using MIP
-
Mixed-integer Programming for Control 14/63
MIP Modelling 1: PWA[Example from Bersimas and Tsitsiklis]
• Constrain a = f(b) where f(.) is PWA
b
a
(B1,A1)
(B2,A2)
(B3,A3)(B4,A4)
(B5,A5)
Binary zi = 1 if b ∈ [Ai, A(i+1)]
-
Mixed-integer Programming for Control 15/63
MIP Modelling 1: PWA[Example from Bersimas and Tsitsiklis]
• Constrain a = f(b) where f(.) is PWA
Binary zi = 1 if b ∈ [Ai, A(i+1)]
e.g. choose z3 = 1
all other zi = 0
-
Mixed-integer Programming for Control 16/63
MIP Modelling 1: PWA[Example from Bersimas and Tsitsiklis]
• Constrain a = f(b) where f(.) is PWA
Binary zi = 1 if b ∈ [Ai, A(i+1)]
e.g. choose z3 = 1
all other zi = 0
-
Mixed-integer Programming for Control 17/63
MIP Modelling 1: PWA[Example from Bersimas and Tsitsiklis]
• Constrain a = f(b) where f(.) is PWA
Binary zi = 1 if b ∈ [Ai, A(i+1)]
e.g. choose z3 = 1
all other zi = 0
Interpolation over [A3, A4]
-
Mixed-integer Programming for Control 18/63
MIP Modelling 2: Disjunction[Bersimas and Tsitsiklis, Morari, Brailsford and Williams]
• Require either a1x ≤ b1 or a2x ≤ b2
• MILP form
• M > 0, M >> a1x - b1, M >> a2x - b2• Known as “big-M” method
-
Mixed-integer Programming for Control 19/63
MIP Modelling 2: Disjunction[Bersimas and Tsitsiklis, Morari, Brailsford and Williams]
• Require either a1x ≤ b1 or a2x ≤ b2
• MILP form
• M > 0, M >> a1x - b1, M >> a2x - b2• Known as “big-M” method
e.g. choose z1 = 1
requires z2 = 0
-
Mixed-integer Programming for Control 20/63
MIP Modelling 2: Disjunction[Bersimas and Tsitsiklis, Morari, Brailsford and Williams]
• Require either a1x ≤ b1 or a2x ≤ b2
• MILP form
• M > 0, M >> a1x - b1, M >> a2x - b2• Known as “big-M” method
e.g. choose z1 = 1
requires z2 = 0
-
Mixed-integer Programming for Control 21/63
MIP Modelling 2: Disjunction[Bersimas and Tsitsiklis, Morari, Brailsford and Williams]
• Require either a1x ≤ b1 or a2x ≤ b2
• MILP form
• M > 0, M >> a1x - b1, M >> a2x - b2• Known as “big-M” method
e.g. choose z1 = 1
requires z2 = 0
-
Mixed-integer Programming for Control 22/63
MIP Modelling 2: Disjunction[Bersimas and Tsitsiklis, Morari, Brailsford and Williams]
• Require either a1x ≤ b1 or a2x ≤ b2
• MILP form
• M > 0, M >> a1x - b1, M >> a2x - b2• Known as “big-M” method
OR choose z2 = 1
requires z1 = 0
-
Mixed-integer Programming for Control 23/63
MIP Modelling 3: Avoidance[Schouwenaars et al, Richards et al]
• Similar to disjunction
• Point (x, y) must be outside obstacle
∑=
≤
−≥−
−≥−
−≥−
−≥−
4
1
4min
3max
2min
1max
3 and
and
and
and
k
kc
Mcyy
Mcyy
Mcxx
Mcxx
c1=0 ⇒⇒⇒⇒
c2=0 ⇒⇒⇒⇒
c3=0 ⇒⇒⇒⇒
c4=0 ⇒⇒⇒⇒
y
x
(xmin , ymin)
(xmax , ymax)
-
Mixed-integer Programming for Control 24/63
MIP Modelling 4: Assignment
• Assign N tasks to N agents.
• Cost of assigning agent i to task j is cij
• Special case – LP works
– Constrain 0 ≤ zij ≤ 1 : all vertices are integer
Binary zij= 1 if agent i
assigned to task j
-
Mixed-integer Programming for Control 25/63
MIP Modelling 4: Assignment
• Assign N tasks to N agents.
• Cost of assigning agent i to task j is cij
• Add resource constraint – MILP needed
Binary zij= 1 if agent i
assigned to task j
-
Mixed-integer Programming for Control 26/63
MIP Modelling 5: Modes
• System has two modes
Mode 1
Mode 2
-
Mixed-integer Programming for Control 27/63
MIP Modelling 5: Modes
• System has two modes
• MIP representation
Mode 1
Mode 2
-
Mixed-integer Programming for Control 28/63
MIP Modelling 6 : Speed Limits• 2-norm approximation
||v|| ≤ vmax : convex, easily handled
||v|| ≥ vmax : non-convex, needs binaries
-
Mixed-integer Programming for Control 29/63
MIP Modelling: Remarks
• Examples span many problem classes– Combinations and extensions possible
• Joint assignment/path planning with avoidance
• PWA systems with disjunction constraints
• Logical constraints – “if A and B then C”
• There are often multiple ways of expressing a problem using MIP– Rule of thumb: big-M is nearly always an option, but look for something better
– “Most existing MILP formulations that employ big-M constraints do suffer from the poor relaxation (relaxed MILP), which is a notorious feature of big-M.”• Improving Mixed Integer Linear Programming Formulations A. Khurana, A. Sundaramoorthy and I. Karimi, AIChE, 2005
-
Mixed-integer Programming for Control 30/63
Modelling References
• C. Floudas Nonlinear and Mixed-Integer Programming -Fundamentals and Applications Oxford University Press, 1995.
• A. Bemporad and M. Morari “Control of systems integrating logic, dynamics, and constraints,” Automatica, 35:407-427, 1999
• H. Williams and S. Brailsford, ``Computational Logic and Integer Programming," in Advances in Linear and Integer Programming, Editor J. E. Beasley, Clarendon Press, 1996, pp.249-281.
• D. Bertsimas and J. N. Tsitsiklis, Introduction to Linear Optimization, Athena Scientific, 1997.
-
MIP Solution
-
Mixed-integer Programming for Control 32/63
MIP Solution: Branch & Bound
• Finds global optimum by tree search
1. Relax binary constraints zi∈ {0,1}→0 ≤ zi≤ 1
2. Solve relaxed problem (bounding)
3. Choose an i and (branching)
a) Fix zi = 0; go to 2;
b) Fix zi = 1; go to 2;
• Recursive tree search of binary options
• Can stop “early” by fathoming, if relaxation
– is infeasible, or
– gives binary result, or
– has worse cost than best binary so far
-
Mixed-integer Programming for Control 33/63
MIP Solution: Branch & Bound
• Finds global optimum by tree search
1. Relax binary constraints zi∈ {0,1}→0 ≤ zi≤ 1
2. Solve relaxed problem (bounding)
3. Choose an i and (branching)
a) Fix zi = 0; go to 2;
b) Fix zi = 1; go to 2;
• Recursive tree search of binary options
• Can stop “early” by fathoming, if relaxation
– is infeasible, or
– gives binary result, or
– has worse cost than best binary so far.
-
Mixed-integer Programming for Control 34/63
MIP Solution: AMPL
• AMPL easily translates models
– A Mathematical Programming Language
– Helps sort out indexing
– Interfaced to many solver codesvar x{i in 1..N};
var z{i in 1..(N-1)} binary;
subject to acon: a = sum{i in 1..N} A[i]*x[i];
subject to bcon: b = sum{i in 1..N} B[i]*x[i];
subject to xsum: sum{i in 1..N} x[i] = 1;
subject to xpos{i in 1..N}: x[i] >= 0;
subject to x1: x[1]
-
Mixed-integer Programming for Control 35/63
MIP Solution: CPLEX
• Commercial solver code from ILOG
• Implements branch-and-bound in conjunction with tried and tested branching heuristics
• Interfaces
– AMPL
– Matlab MEX
– C API
-
Mixed-integer Programming for Control 36/63
Other Software
• Decision tree for Optimization with discrete variableshttp://plato.la.asu.edu/topics/problems/discrete.html
• Modeling examples: MILP Model for Short Term Scheduling of Multistage Batch Plants by Grossmann et al. http://egon.cheme.cmu.edu/stbs.html
• Good comparison of non-commercial MILP software:http://www.lehigh.edu/~tkr2/research/papers/MILP04.pdf
• MINOPT: A Modeling Language and Algorithmic Framework for Linear, Mixed-Integer, Nonlinear, Dynamic, and Mixed-Integer Nonlinear Optimization by Floudaset al. http://titan.princeton.edu/MINOPT/
• The Hybrid Systems Group http://control.ee.ethz.ch/~hybrid/– Multi-Parametric Toolbox. http://control.ee.ethz.ch/~mpt/downloads/20tr/
• Interface Software and example (Matlab �� AMPL �� CPLEX) http://acl.mit.edu/milp/
• AMPL: http://www.ampl.com/ R. Fourer, D. M. Gay, and B. W. Kernighar, AMPL, A modeling language for mathematical programming, The Scientific Press, 1993.
-
Mixed-integer Programming for Control 37/63
MIP Solution: Remarks
• AMPL is good for prototyping, but more
direct interfaces are faster
• Other discrete optimization tools are
available
– Heuristic methods for general MIP
• Genetic algorithms
• Simulated annealing
– Special cases
• Dynamic programming for knapsack problem
-
MIP for Control
-
Mixed-integer Programming for Control 39/63
Control using Optimization
• Have seen that MIP can find optimal solutions
for complex planning problems
• “Control” also considers uncertainty
– Introduce feedback to compensate
– Update plans to include new information
• Concept is the same as Model Predictive
Control (MPC)
1. Use numerical optimization to design an open-loop
control sequence for the future
2. Execute some initial portion of that sequence
3. Go to 1.
-
Mixed-integer Programming for Control 40/63
MIP and MPC
• MPC optimization has three key features
– Dynamics model
– Constraints
– Cost
• MIP can enter all three
– PWA dynamics, logic states (e.g. ‘task done’)
– Non-convex constraints (e.g. avoidance)
– PWA cost
-
Mixed-integer Programming for Control 41/63
Properties of MPC
• Start with a recursion
– Solution is {u(k0|k0) u(k0+1|k0) … u(k0+N|k0)}
at k0
– Then {u(k0+1|k0) … u(k0+N|k0) ???} feasible
at k0+1
-
Mixed-integer Programming for Control 42/63
Properties of MPC
• Start with a recursion
– Solution is {u(k0|k0) u(k0+1|k0) … u(k0+N|k0)}
at k0
– Then {u(k0+1|k0) … u(k0+N|k0) ???} feasible
at k0+1
“The tail” Some control here
-
Mixed-integer Programming for Control 43/63
Properties of MPC
• Start with a recursion
– Solution is {u(k0|k0) u(k0+1|k0) … u(k0+N|k0)}
at k0
– Then {u(k0+1|k0) … u(k0+N|k0) ???} feasible
at k0+1
• Use recursion to prove cost decrease
– J(k+1) ≤ J(k) – a(x(k))
• Use cost J as Lyapunov function
– Stage cost must be positive definite in x
“The tail” Some control here
-
Mixed-integer Programming for Control 44/63
Properties of MPC
• Start with a recursion
– Solution is {u(k0|k0) u(k0+1|k0) … u(k0+N|k0)}
at k0
– Then {u(k0+1|k0) … u(k0+N|k0) ???} feasible
at k0+1
• Use recursion to prove cost decrease
– If not at setpoint, J(k+1) ≤ J(k) – a(x(k))
• Use cost J as Lyapunov function
– Stage cost must be positive definite in x
“The tail” Some control here
Very general results, easily handling MIP
dynamics, constraints and cost [Bemporad and Morari, 1999]
-
Mixed-integer Programming for Control 45/63
MIP/MPC Example: Modes
• Recall earlier example
Mode 1
Mode 2
-
Mixed-integer Programming for Control 46/63
MIP/MPC Example: Modes
1. Optimize
2. Apply u(k) = u*(k|k)
3. Repeat
-
Mixed-integer Programming for Control 47/63
MIP/MPC Example: Modes
1. Optimize
2. Apply u(k) = u*(k|k)
3. Repeat
Cost
Dynamics
Initial conditionTerminal
Control limits
Mode logic
-
Using MIP Online
-
Mixed-integer Programming for Control 49/63
Computation Time
• Need to solve MIP online– Good computer and solver handle most cases
– Still NP-hard problem – some instances of large problems can be slow
• Tricks to accelerate solution time are often problem-specific– More to follow in example talk
• Three general approaches– Use prior knowledge
– Approximate cost-to-go
– Multi-parametric integer programming
-
Mixed-integer Programming for Control 50/63
Prior Knowledge I : Iteration
• Firing expected only
at start and end:
“bang-off-bang”
• Remove constraints
on PI around center
of maneuver
• Check results for PI
• Iterate, adding
constraints back in,
until no PI
Space Station Rendezvous with Plume
Impingement (PI) Constraints
-
Mixed-integer Programming for Control 51/63
Prior Knowledge II : Grouping
• Minimum fuel Space Station fly-by with PI
constraints
-
Mixed-integer Programming for Control 52/63
Prior Knowledge II : Grouping
• Minimum fuel Space
Station fly-by with PI
constraints
– 9600 binary variables
– Impractical to find
optimal solution
• Strategy:
– Group time-steps
587Groups of three
1800
(limit)
All plume
constraints
8No plume
constraints
Time
(secs)
-
Mixed-integer Programming for Control 53/63
Approximate Cost-to-Go
• Replace tail of long plan with approximate
plan
– Re-plan online as goal approached
-
Mixed-integer Programming for Control 54/63
Multi-Parametric MIP
• Calculate solution offline as a piecewise
affine function of the initial condition
– [Bemporad et al 2004]
• Replace online MIP with PWA look-up
Solve
MIP
Execute
first step
Online Offline
PWA
lookup
Execute
first step
Online
Solution
map
Solve
mpMIP
-
Task Assignment Example
-
Mixed-integer Programming for Control 56/63
Example: Task Assignment
• Different types of UAV’s
• Different types of targets
• Example timing constraints– BDA after Strike after Recon.
– SAM site visited before HVT
– Synchronized strike of HVT
� All can be expressed in a canonical form
• Select assignments & trajectories to optimize desired mission objectives and satisfy dynamic/timing constraints– Costs for demonstration based on time, but extends to scores / risks
– Hard because problems are tightly coupled
SAM
HVT
-
Mixed-integer Programming for Control 57/63
Experimental Scenario
• 4 vehicles
• 16 tasks
• Full horizon assignment approach not scalable for real-time assignment
• Environment with dynamic changes–Original assignment
– Vehicle death
– Pop-up target
– Vehicle death
– Target location update
-
Mixed-integer Programming for Control 58/63
Experimental Scenario
• 4 vehicles
• 16 tasks
• Full horizon assignment approach not scalable for real-time assignment
• Environment with dynamic changes–Original assignment
– Vehicle death
– Pop-up target
– Vehicle death
– Target location update
-
UAV Example
-
Mixed-integer Programming for Control 60/63
UAV Example
• Very simple trial example– One UAV avoiding one obstacle
– Uses MPC and MIP
• Problem– Matlab sim script
– AMPL data file
– AMPL state file
– AMPL script
– AMPL model file
• Download: http://seis.bris.ac.uk/~aeagr
-
Mixed-integer Programming for Control 61/63
UAV Example
• Very simple trial example– One UAV avoiding one obstacle
– Uses MPC and MIP
• Implementation– Matlab sim script
– AMPL data file
– AMPL state file
– AMPL script
– AMPL model file
• Download: http://seis.bris.ac.uk/~aeagr
-
Mixed-integer Programming for Control 62/63
Session Outline• Projected Variable Metric Algorithm for Mixed Integer Optimization
Problem – Ali Ahmadzadeh (Univ. of Pennsylvania),
– Bijan Sayyarrodsari (Pavilion Tech. Inc),
– Abdollah Homaifar (North Carolina A\&T State Univ.)
• MILP Assignment Problems for Multi-Vehicle Systems – Matthew Earl (BAE)
– Raffaello D'Andrea (Cornell Univ.)
• Real-Time MILP Path-Planning for Tactical UAV Applications – Cedric Ma (Northrop Grumman Corp.)
– Robert Miller (Northrop Grumman Corp.)
• Receding Horizon Implementation of MILP for Vehicle Guidance– Yoshiaki Kuwata (MIT)
– Jonathan P. How (MIT)
-
Mixed-integer Programming for Control 63/63
Questions?
• Web resources
acl.mit.edu/MILP
seis.bris.ac.uk/~aeagr
• Email
-
Backup
-
Mixed-integer Programming for Control 65/63
Task Assignment
•Decomposition method (Petal algorithm)– Communicates key information that couples trajectory design & task assignment (costs and time-of-flight)
– Costs estimated using visibility graph (kinematically feasible)
– Optimize UAV task assignment based on the approximate costs •Extension of basic MILP assignment problem (MMKP)
– Prune infeasible and “unlikely” permutations•Crucial element in solution process.
Trajectory
Design
MILP
Task Assignment
MILP
Compute cost for
all permutations
& prune
-
Mixed-integer Programming for Control 66/63
Decomposition Method
i. Find the shortest path for each waypoint combination• Straight line approximation
• Dijkstra’s algorithm
ii.Obtain feasible combinations of waypoints• Capability of the UAVs
iii.Obtain permutations, compute costs, and prune• Relative timing constraints
iv.Optimal task allocation• Minimize fleet completion time
• Add small weighting on average finishing time � results in a unique solution
v.Design detailed UAV trajectories
-
Mixed-integer Programming for Control 67/63
Problem Formulation
• Choose a mission (set of waypoints) for each vehicle such that every point is visited– OR problem – multi-dimensional multi-objective knapsack
• All cost data is compiled into matrices c, V, P
– ci is the cost of mission i
– Viw = 1 if mission i visits point w
– Pik is the k’th point of mission i
• MILP formulation
– Binary xi = 1 if mission i chosen– Every point visited & vehicle assigned
– Weighting α on individual flight times
• Retains flexibility of MILP optimization
∑+=missions
min* iiV
xcN
tJα
1missions
=∀ ∑ iiwxVw
1 vehicle
=∀ ∑p
ixp
=missionsmax ii xct
-
Mixed-integer Programming for Control 68/63
• Enforce relative timing constraints– Time of Execution of A at least tD before Execution of B :
– Canonical form
• Allow loitering at each waypoint
– Tij: Time at which waypoint i is visited in permutation j
– LBi: Sum of loiter times before executing the task at waypoint i
– Ljk: Loiter time of UAVk at waypoint j. It is zero if UAVk doesnot visit j
– Wi: List of waypoints visited on the way to i, including i
Timing Constraints
TOEi≥TOEj TOEi≤TOEj
TOEi=TOEj
-
Mixed-integer Programming for Control 69/63
Timing Constraints (cont.)
– Wi: List of waypoints visited on the way to i, including i
– depends on the mission choice that we are trying to make
• Express logical statement “on the way toon the way to” in MILP using– Oijp: 1 if waypoint j visited before waypoint i in permutation p,
and 0 otherwise
• Cost function to be minimized:
∑+=missions
min* iiV
xcN
tJα
and