Mixed-integer Programming for Controlaeagr/acc05_tut_mip.pdf · 2005. 6. 15. · Mixed-integer...

69
Mixed-integer Programming for Control Arthur Richards and Jonathan How

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

    [email protected]

    [email protected]

  • 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