mixed-integer programming for control
TRANSCRIPT
![Page 1: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/1.jpg)
Mixed-integer Programming for ControlArthur Richards
andJonathan How
![Page 2: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/2.jpg)
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
![Page 3: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/3.jpg)
Mixed-integer Programming for Control 3/63
Problem ClassesNonlinearConvex
Logical
T F
T
F
Non-convex
![Page 4: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/4.jpg)
Mixed-integer Programming for Control 4/63
Problem ClassesNonlinearConvex
Nonlinear opt.No MIP
Logical
T F
T
F
Non-convex
![Page 5: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/5.jpg)
Mixed-integer Programming for Control 5/63
Problem ClassesNonlinearConvex
Nonlinear opt.No MIP
Logical
MIP
T F
T
F
Non-convex
![Page 6: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/6.jpg)
Mixed-integer Programming for Control 6/63
Problem ClassesNonlinearConvex
Nonlinear opt.No MIP
Logical
MIP
T F
T
F
Non-convex
Approximate by MIP
![Page 7: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/7.jpg)
Mixed-integer Programming for Control 7/63
Problem ClassesNonlinearConvex
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
![Page 8: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/8.jpg)
Mixed-integer Programming for Control 8/63
Problem ClassesNonlinearConvex
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
![Page 9: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/9.jpg)
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
![Page 10: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/10.jpg)
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
![Page 11: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/11.jpg)
Mixed-integer Programming for Control 11/63
Web Resources• Slides and sample codes available online• Web resources
acl.mit.edu/MILPseis.bris.ac.uk/~aeagr
![Page 12: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/12.jpg)
Mixed-integer Programming for Control 12/63
Formal Definition• Mixed-integer Linear Program (MILP)
• Inherently non-convex• NP-completeBUT with good software, can find global-
optimum in many useful instances
![Page 13: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/13.jpg)
Modelling using MIP
![Page 14: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/14.jpg)
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)]
![Page 15: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/15.jpg)
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
![Page 16: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/16.jpg)
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
![Page 17: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/17.jpg)
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]
![Page 18: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/18.jpg)
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
![Page 19: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/19.jpg)
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
![Page 20: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/20.jpg)
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
![Page 21: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/21.jpg)
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
![Page 22: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/22.jpg)
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
![Page 23: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/23.jpg)
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
kkc
Mcyy
Mcyy
Mcxx
Mcxxc1=0 ⇒
c2=0 ⇒
c3=0 ⇒
c4=0 ⇒
y
x(xmin , ymin)
(xmax , ymax)
![Page 24: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/24.jpg)
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 iassigned to task j
![Page 25: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/25.jpg)
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 iassigned to task j
![Page 26: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/26.jpg)
Mixed-integer Programming for Control 26/63
MIP Modelling 5: Modes• System has two modes
Mode 1
Mode 2
![Page 27: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/27.jpg)
Mixed-integer Programming for Control 27/63
MIP Modelling 5: Modes• System has two modes
• MIP representation
Mode 1
Mode 2
![Page 28: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/28.jpg)
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
![Page 29: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/29.jpg)
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
![Page 30: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/30.jpg)
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.
![Page 31: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/31.jpg)
MIP Solution
![Page 32: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/32.jpg)
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 ≤ 12. 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
![Page 33: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/33.jpg)
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 ≤ 12. 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.
![Page 34: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/34.jpg)
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 codes
var 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] <= 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;
PWA example
![Page 35: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/35.jpg)
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
![Page 36: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/36.jpg)
Mixed-integer Programming for Control 36/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.
![Page 37: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/37.jpg)
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
![Page 38: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/38.jpg)
MIP for Control
![Page 39: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/39.jpg)
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 sequence3. Go to 1.
![Page 40: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/40.jpg)
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
![Page 41: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/41.jpg)
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
![Page 42: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/42.jpg)
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
![Page 43: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/43.jpg)
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
![Page 44: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/44.jpg)
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]
![Page 45: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/45.jpg)
Mixed-integer Programming for Control 45/63
MIP/MPC Example: Modes• Recall earlier example
Mode 1
Mode 2
![Page 46: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/46.jpg)
Mixed-integer Programming for Control 46/63
MIP/MPC Example: Modes1. Optimize
2. Apply u(k) = u*(k|k)3. Repeat
![Page 47: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/47.jpg)
Mixed-integer Programming for Control 47/63
MIP/MPC Example: Modes1. Optimize
2. Apply u(k) = u*(k|k)3. Repeat
Cost
Dynamics
Initial conditionTerminal
Control limits
Mode logic
![Page 48: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/48.jpg)
Using MIP Online
![Page 49: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/49.jpg)
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
![Page 50: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/50.jpg)
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
![Page 51: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/51.jpg)
Mixed-integer Programming for Control 51/63
Prior Knowledge II : Grouping• Minimum fuel Space Station fly-by with PI
constraints
![Page 52: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/52.jpg)
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
Time (secs)
No plume constraints 8
All plume constraints
1800(limit)
Groups of three 587
![Page 53: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/53.jpg)
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
![Page 54: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/54.jpg)
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
![Page 55: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/55.jpg)
Task Assignment Example
![Page 56: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/56.jpg)
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
![Page 57: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/57.jpg)
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
![Page 58: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/58.jpg)
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
![Page 59: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/59.jpg)
UAV Example
![Page 60: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/60.jpg)
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
![Page 61: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/61.jpg)
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
![Page 62: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/62.jpg)
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)
![Page 63: Mixed-integer Programming for Control](https://reader038.vdocuments.net/reader038/viewer/2022102918/586d06011a28abda3a8c1d42/html5/thumbnails/63.jpg)
Mixed-integer Programming for Control 63/63
Questions?
• Web resourcesacl.mit.edu/MILP
seis.bris.ac.uk/~aeagr• Email
[email protected]@mit.edu