Solver and modelling support for stochastic programming
Download
1 / 27

Solver and modelling support for stochastic programming - PowerPoint PPT Presentation


  • 122 Views
  • Uploaded on

Solver and modelling support for stochastic programming. H.I. Gassmann, Dalhousie University. Happy Birthday Andr á s, November 2009. Agenda. Stochastic programs An Example Algebraic modelling languages GAMS MPL AMPL Frontline Systems SMI (Stochastic modelling interface)

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Solver and modelling support for stochastic programming' - scot


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Solver and modelling support for stochastic programming

Solver and modelling support for stochastic programming

H.I. Gassmann, Dalhousie University

Happy Birthday András, November 2009


Agenda
Agenda

  • Stochastic programs

  • An Example

  • Algebraic modelling languages

    • GAMS

    • MPL

    • AMPL

  • Frontline Systems

  • SMI (Stochastic modelling interface)

  • Optimization Services

  • Other software


Stochastic programs
Stochastic programs

  • Two-stage recourse problems

  • Multistage recourse problems

  • Chance-constrained problems

  • Continuous distributions


An example ferguson dantzig
An Example (Ferguson & Dantzig)

xij = # aircraft of type i assigned to route j

yj = # empty seats on route j

zj = # lost sales on route j

In the original formulation, d is defined by marginals


Words to ponder
Words to ponder…

  • “Simple recourse is so previous millennium”

  • “Always build your scenario tree prior to calling the solver”

  • “No need to bother with special algorithms ― Cplex on the deterministic equivalent is best”

  • “Robust optimization is irrelevant”


GAMS

SET

equip := (E1, E2, E3, E4);

route := (R1, R2, R3, R4, R5);

scen := (S1*S720);

DATA

avail[equip] := (E1,10, E2,19, E3,25, E4,15);

price[route] := (R1,13, R2,13, R3, 7, R4, 7, R5, 1);

capac[equip,route] := (...);

cost [equip,route] := (...);

demand[route,scen] := (...);

prob[scen] := (...);

DECISION VARIABLES

Assign[equip,route];

Empty[route,scen];

LostSales[route,scen];

MODEL

MIN totalcost = SUM(equip,route: cost*Assign)

+ SUM(route,scen: prob*price*LostSales);

SUBJECT TO

availability[equip]: SUM(route: Assign) <= avail;

passengers[route,scen]:

SUM(equip: capac*Assign) – Empty + LostSales = demand;


GAMS

  • Solve deterministic equivalent

  • Two-stage problems can use DECIS

  • Discrete scenarios only


MPL

INDEX

aircraft : = (A,B,C,D);

STOCHASTIC

INDEP

route := (NL1, NL2, ND0, ND1, NB0) -> (r1,r2,r3,r4,r45);

OUTCOME

out5 := 1..5;

EVENT

RouteOut[route,out5] :=

(NL1, 1..5,

NL2, 1..2,

ND0, 1..5,

ND1, 1..5,

NB0, 1..3);

PROBABILITIES

p[route, out5 in RouteOut] :=

[NL1, 1, 0.2,

NL1, 2, 0.05,

... ];


Mpl continued
MPL (continued)

RANDOM DATA

Demand[route, out5 in RouteOut] := ...

DATA

AircraftAvail[aircraft] := ...;

TicketPrice[route] := ...;

PotentialPass[aircraft,route] := ...;

MonthlyCost [aircraft,route] := ...;

DECISION VARIABLES

Assign[aircraft,route] -> x WHERE (PotentialPass > 0);

STAGE2 VARIABLES

EmptySeats[route] -> y1;

TurnedAway[route] -> y2;

MODEL

MIN TotalCost = SUM(aircraft,route: MonthlyCost * Assign)

+ SUM(route: TicketPrice * TurnedAway);

SUBJECT TO

AircraftCap[aircraft]: SUM(route: Assign) <= AircraftAvail;

PassengerBal[route]: SUM(aircraft: PotentialPass * Assign)

+ TurnedAway[route] – EmptySeats[route] = Demand[route];


Mpl capabilities
MPL capabilities

  • Solve deterministic equivalent (any MPL solver)

  • Built-in decomposition solver (two-stage - Cplex)

  • Communication with SMI

  • Planned extensions: nested decomposition


AMPL

set aircraft := {A1, A2, A3, A4};

set routes := {r1, r2, r3, r4, r5};

param avail{aircraft} >= 0;

param ticketPrice{routes} > 0;

param potentialPassenger{aircraft, routes} default 0;

param MonthlyCost {a in aircraft, r in routes: potentialPassenger[a,r] > 0};

var demand{route} random;

var Assign{a in aircraft, r in routes: potentialPassenger[a,r] > 0} >= 0;

var EmptySeats{route} suffix stage 2;

var TurnedAway{route} suffix stage 2;

minimize totalCost:

sum{a in aircraft, r in routes: potentialPassenger[a,r] > 0} MonthlyCost[a,r]*Assign[a,r]

+ sum{r in routes} TicketPrice[r]*TurnedAway[r];

subject to AircraftCap{a in aircraft}: sum{r in routes: potentialPassenger[a,r] > 0} Assign[a,r] <= avail[a];

subject to PassengerBalance{r in routes}: sum{a in aircraft: potentialPassenger[a,r] > 0} potentialPassenger[a,r] * Assign[a,r]

+ TurnedAway[r] - EmptySeats[r] = demand[r];


Frontline systems
Frontline systems

  • Robust optimization

  • Chance constraints

  • Recourse models

  • Expected value, VaR, CVar objectives

  • One or two stages

  • Continuous distributions (automatic sampling)

  • Deterministic equivalent or simulation

  • Example


Smi stochastic modeling interface
SMI (Stochastic Modeling Interface)

  • Coin-OR project

  • API for interaction with stochastic models

  • Scenario-based

  • Discrete distributions


Optimization services
Optimization Services

  • The Optimization Services project aims to provide

    A set of standards to facilitate communication between modeling languages, solvers, problem analyzers, simulation engines, and registry and discovery services in a distributed computing environment.


Data inter-change

AML

User interface

Corporate databases

Solvers


What is optimization services os
What Is Optimization Services (OS)?

A set of XML-based standards for representing, among others,

  • optimization instances (OSiL, also OSgL, OSnL and OSsL)

  • optimization results (OSrL and OSaL)

  • optimization solver options (OSoL)

  • communication between clients and solvers (OSpL)

  • Open source libraries to work with these standards

  • A robust API for solver algorithms and modeling systems

  • Support for linear, integer, nonlinear and stochastic programs

  • A command line executable OSSolverService

  • Executables OSAmplClient and GAMSLinks for AMPL and GAMS

  • Utilities to convert MPS files and AMPL nl files into OSiL

  • Server software that works with Apache Tomcat and Apache Axis


  • Why a standard interface

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    Solvers

    Solvers

    Modelling systems

    Modelling systems

    Why a standard interface?

    n*m hook-ups

    n+m hook-ups


    Why xml
    Why XML?

    • Existing parsers to check syntax

    • Easy to generate automatically

    • Tree structure naturally mirrors expression trees for nonlinear functions

    • Arbitrary precision and name space

    • Automatic attribute checking (e.g., nonnegativity)

    • Querying capabilities via XQuery

    • Encryption standards being developed

    • Easy integration into broader IT infrastructure


    Osil schema deterministic data

    OSiL Schema – Deterministic data


    Representation of uncertainty
    Representation of uncertainty

    • Explicit event trees

      • Scenario formulation

      • Only record data items that differ from parent scenario

    • Implicit trees (distribution-based formulation)

      • Assume independence between stages

      • Distributions within stage discrete or continuous

    • Probabilistic constraints

      • Simple chance constraints

      • Joint chance constraints


    Osinstance in memory representation
    OSInstance: In-memory representation

    • XML elements correspond to C++ classes

    • Child elements mapped as member classes

    • set(), get() and calculate() methods

    class OSInstance{

    public:

    OSInstance();

    InstanceHeader *instanceHeader;

    InstanceData *instanceData;

    }; // class OSInstance


    Osol os option language
    OSoL – OS option language

    • Solver options

    • Initializations of variables

    • System requirements

    • Job parameters

    • In-memory representation: OSOption

    • API: get(), set(), add() methods


    Osrl and osresult
    OSrL and OSResult

    • Result of the optimization

      • Solution status

      • Statistics

      • Value of primal and dual variables

    • Can be displayed in a browser


    Solver support
    Solver support

    • All versions of OS download with COIN-OR solvers

      • Clp

      • Cbc

      • Ipopt

      • Bonmin

      • Couenne

      • Symphony

    • Additiona solver support

      • Cplex

      • GLPK

      • Lindo


    Future developments
    Future developments

    • Stochastic programming

    • Cone programming

    • Instance modification

    • Solution analysis


    Other software
    Other software

    • SLP-IOR

    • SPInE/SAMPL/SMPL

    • Fort-SP

    • DECIS

    • MSLiP


    Conclusions
    Conclusions

    • Slow but steady progress

    • Stochastic programming is more than scenario trees and deterministic equivalents

    • SP-aware modeling systems


    ad