0% found this document useful (0 votes)
130 views63 pages

Mixed-Integer Programming For Control: Arthur Richards

This document discusses mixed-integer programming (MIP) and its applications for control problems. MIP combines continuous and discrete decision variables and can model complex planning problems involving both types of variables. The document outlines several ways that MIP can be used to model different types of control problems, including piecewise affine systems, disjunctions, obstacle avoidance, task assignment, and system modes. It provides examples of how to formulate these types of problems as mixed-integer linear programs (MILPs) by introducing binary or integer variables. The document also discusses techniques for solving MILPs online in real-time applications.

Uploaded by

Edward Chirinos
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
130 views63 pages

Mixed-Integer Programming For Control: Arthur Richards

This document discusses mixed-integer programming (MIP) and its applications for control problems. MIP combines continuous and discrete decision variables and can model complex planning problems involving both types of variables. The document outlines several ways that MIP can be used to model different types of control problems, including piecewise affine systems, disjunctions, obstacle avoidance, task assignment, and system modes. It provides examples of how to formulate these types of problems as mixed-integer linear programs (MILPs) by introducing binary or integer variables. The document also discusses techniques for solving MILPs online in real-time applications.

Uploaded by

Edward Chirinos
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 63

Mixed-integer Programming

for Control
Arthur Richards
and
Jonathan How
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 2/63


Problem Classes
Nonlinear Non-convex Logical
Convex

T F

Mixed-integer Programming for Control 3/63


Problem Classes
Nonlinear Non-convex Logical
Convex

T F

Nonlinear opt.
No MIP
Mixed-integer Programming for Control 4/63
Problem Classes
Nonlinear Non-convex Logical
Convex

T F

Nonlinear opt. MIP


No MIP
Mixed-integer Programming for Control 5/63
Problem Classes
Nonlinear Non-convex Logical
Convex

T F

Nonlinear opt. Approximate MIP


No MIP by MIP
Mixed-integer Programming for Control 6/63
Problem Classes
Nonlinear Non-convex Logical
Convex

T F
Two main goals of MIP approach:
capture non-convexity and logic
T

Nonlinear opt. Approximate MIP


No MIP by MIP
Mixed-integer Programming for Control 7/63
Problem Classes
Nonlinear Non-convex Logical
Convex

T F
Two main goals of MIP approach:
capture non-convexity and logic
T
• Encode non-convexity
F
using
integers
• Then apply powerful integer
Nonlinear opt. Approximate MIP
optimization tools to non-convex
No MIP by MIP
problems
Mixed-integer Programming for Control 8/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 9/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 10/63
Web Resources
• Slides and sample codes available online
• Web resources
acl.mit.edu/MILP
seis.bris.ac.uk/~aeagr
• Email
[email protected]
[email protected]

Mixed-integer Programming for Control 11/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
Mixed-integer Programming for Control 12/63
Modelling using MIP
MIP Modelling 1: PWA
[Example from Bersimas and Tsitsiklis]

• Constrain a = f(b) where f(.) is PWA


a

(B5,A5)
(B2,A2)

(B3,A3) (B4,A4)
(B1,A1)

b Binary zi = 1 if b ∈ [Ai, A(i+1)]


Mixed-integer Programming for Control 14/63
MIP Modelling 1: PWA
[Example from Bersimas and Tsitsiklis]

• Constrain a = f(b) where f(.) is PWA


e.g. choose z3 = 1
all other zi = 0

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


e.g. choose z3 = 1
all other zi = 0

Binary zi = 1 if b ∈ [Ai, A(i+1)]


Mixed-integer Programming for Control 16/63
MIP Modelling 1: PWA
[Example from Bersimas and Tsitsiklis]

• Constrain a = f(b) where f(.) is PWA


e.g. choose z3 = 1
all other zi = 0

Interpolation over [A3, A4]


Binary zi = 1 if b ∈ [Ai, A(i+1)]
Mixed-integer Programming for Control 17/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 18/63
MIP Modelling 2: Disjunction
[Bersimas and Tsitsiklis, Morari, Brailsford and Williams]
• Require either a1x ≤ b1 or a2x ≤ b2
e.g. choose z1 = 1
• MILP form

requires z2 = 0

• 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
e.g. choose z1 = 1
• MILP form

requires z2 = 0

• M > 0, M >> a1x - b1, M >> a2x - b2


• Known as “big-M” method
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
e.g. choose z1 = 1
• MILP form

requires z2 = 0

• M > 0, M >> a1x - b1, M >> a2x - b2


• Known as “big-M” method
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
OR choose z2 = 1
• MILP form

requires z1 = 0

• M > 0, M >> a1x - b1, M >> a2x - b2


• Known as “big-M” method
Mixed-integer Programming for Control 22/63
MIP Modelling 3: Avoidance
[Schouwenaars et al, Richards et al]

• Similar to disjunction
• Point (x, y) must be outside obstacle
x − x max ≥ − Mc 1
and x min − x ≥ − Mc 2 c1=0 ⇒
y (xmax , ymax)
and y − y max ≥ − Mc 3 c =0 ⇒
2
and y min − y ≥ − Mc 4 (xmin , ymin)
4 c3=0 ⇒ x
and ∑c
k =1
k ≤3
c4=0 ⇒

Mixed-integer Programming for Control 23/63


MIP Modelling 4: Assignment
• Assign N tasks to N agents.
• Cost of assigning agent i to task j is cij

Binary zij = 1 if agent i


assigned to task j

• Special case – LP works


– Constrain 0 ≤ zij ≤ 1 : all vertices are integer

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

Binary zij = 1 if agent i


assigned to task j

• Add resource constraint – MILP needed

Mixed-integer Programming for Control 25/63


MIP Modelling 5: Modes
• System has two modes
Mode 1

Mode 2

Mixed-integer Programming for Control 26/63


MIP Modelling 5: Modes
• System has two modes
Mode 1

Mode 2

• MIP representation

Mixed-integer Programming for Control 27/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 28/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 29/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.

Mixed-integer Programming for Control 30/63


MIP Solution
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 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: AMPL
• AMPL easily translates models
– A Mathematical Programming Language
– Helps sort out indexing
– Interfaced to many solver codes
PWA var x{i in 1..N};
var z{i in 1..(N-1)} binary;
example
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] <= z[1];
subject to xi{i in 1..(N-1)}: x[i] <= z[i-1] + z[i];
subject to xN: x[N] <= z[N-1];
subject to zsum: sum{i in 1..(N-1)} = 1;

Mixed-integer Programming for Control 34/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 35/63


Other Software
• Decision tree for Optimization with discrete variables Online

• Modeling examples: MILP Model for Short Term Scheduling of Multistage


Batch Plants by Grossmann et al. Online
• Good comparison of non-commercial MILP software:

• MINOPT: A Modeling Language and Algorithmic Framework for Linear,


Mixed-Integer, Nonlinear, Dynamic, and Mixed-Integer Nonlinear
Optimization by Floudas et al. Online
• The Hybrid Systems Group
– Multi-Parametric Toolbox.

• Interface Software and example (Matlab ÅÆ AMPL ÅÆ CPLEX)

• AMPL: 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 36/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

Mixed-integer Programming for Control 37/63


MIP for Control
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 39/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 40/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 41/63


Properties of MPC
• Start with a recursion
– Solution is {u(k0|k0) u(k0+1|k0) … u(k0+N|k0)}
at k0 “The tail” Some control here
– 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 “The tail” Some control here
– 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
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 “The tail” Some control here
– Then {u(k0+1|k0) … u(k0+N|k0) ???} feasible
at k0+1

• Very
Use general
recursion to prove
results, cost
easily decrease
handling MIP
dynamics, at setpoint, J(k+1)
– If notconstraints ≤ J(k)
and cost – a(x(k))
[Bemporad and Morari, 1999]

• Use cost J as Lyapunov function


– Stage cost must be positive definite in x
Mixed-integer Programming for Control 44/63
MIP/MPC Example: Modes
• Recall earlier example
Mode 1

Mode 2

Mixed-integer Programming for Control 45/63


MIP/MPC Example: Modes
1. Optimize

2. Apply u(k) = u*(k|k)


3. Repeat
Mixed-integer Programming for Control 46/63
MIP/MPC Example: Modes
1. Optimize
Cost

Dynamics
Initial condition
Terminal
Control limits

Mode logic

2. Apply u(k) = u*(k|k)


3. Repeat
Mixed-integer Programming for Control 47/63
Using MIP Online
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 49/63
Prior Knowledge I : Iteration
Space Station Rendezvous with Plume
Impingement (PI) Constraints

• 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

Mixed-integer Programming for Control 50/63


Prior Knowledge II : Grouping
• Minimum fuel Space Station fly-by with PI
constraints

Mixed-integer Programming for Control 51/63


Prior Knowledge II : Grouping
• Minimum fuel Space
Station fly-by with PI
constraints Time
– 9600 binary variables (secs)
– Impractical to find
No plume
optimal solution 8
constraints

• Strategy:
All plume 1800
– Group time-steps
constraints (limit)

Groups of three 587

Mixed-integer Programming for Control 52/63


Approximate Cost-to-Go
• Replace tail of long plan with approximate
plan
– Re-plan online as goal approached

Mixed-integer Programming for Control 53/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
Online Offline Online

Solve Solve PWA


MIP mpMIP lookup

Execute Solution Execute


first step map first step

Mixed-integer Programming for Control 54/63


Task Assignment Example
Example: Task Assignment

• Different types of UAV’s


• Different types of targets
HVT

SAM

• 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

Mixed-integer Programming for Control 56/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 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
UAV Example
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 60/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 61/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 62/63


Questions?

• Web resources
acl.mit.edu/MILP
seis.bris.ac.uk/~aeagr
• Email
[email protected]
[email protected]

Mixed-integer Programming for Control 63/63

You might also like