BENDERS DECOMPOSITION FOR STOCHASTIC PROGRAMMING WITH GAMS



Similar documents
DANTZIG-WOLFE DECOMPOSITION WITH GAMS

Nan Kong, Andrew J. Schaefer. Department of Industrial Engineering, Univeristy of Pittsburgh, PA 15261, USA

Abstract. 1. Introduction. Caparica, Portugal b CEG, IST-UTL, Av. Rovisco Pais, Lisboa, Portugal

Integrating Benders decomposition within Constraint Programming

ARTICLE IN PRESS. European Journal of Operational Research xxx (2004) xxx xxx. Discrete Optimization. Nan Kong, Andrew J.

A MULTI-PERIOD INVESTMENT SELECTION MODEL FOR STRATEGIC RAILWAY CAPACITY PLANNING

Two-Stage Stochastic Linear Programs

Introduction to Stochastic Optimization in Supply Chain and Logistic Optimization

Mathematical finance and linear programming (optimization)

Principles of demand management Airline yield management Determining the booking limits. » A simple problem» Stochastic gradients for general problems

4.6 Linear Programming duality

Scheduling Shop Scheduling. Tim Nieberg

A Branch and Bound Algorithm for Solving the Binary Bi-level Linear Programming Problem

ON SOLVING THE PROGRESSIVE PARTY PROBLEM AS A MIP

Branch-and-Price Approach to the Vehicle Routing Problem with Time Windows

Duality in General Programs. Ryan Tibshirani Convex Optimization /36-725

Proximal mapping via network optimization

Nonlinear Optimization: Algorithms 3: Interior-point methods

5 INTEGER LINEAR PROGRAMMING (ILP) E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Using EXCEL Solver October, 2000

Modern Optimization Methods for Big Data Problems MATH11146 The University of Edinburgh

The Multicut L-Shaped Method

What is Linear Programming?

An interval linear programming contractor

Issues in Information Systems Volume 14, Issue 2, pp , 2013

Modeling and solving linear programming with R. Jose M Sallan Oriol Lordan Vicenc Fernandez

Linear Programming Notes VII Sensitivity Analysis

Lecture 10 Scheduling 1

Summary of specified general model for CHP system

Sensitivity Analysis with Excel

Linear Programming Notes V Problem Transformations

Linear Programming for Optimization. Mark A. Schulze, Ph.D. Perceptive Scientific Instruments, Inc.

Solving Linear Programs

Spatial Decomposition/Coordination Methods for Stochastic Optimal Control Problems. Practical aspects and theoretical questions

IEOR 4404 Homework #2 Intro OR: Deterministic Models February 14, 2011 Prof. Jay Sethuraman Page 1 of 5. Homework #2

An Improved Dynamic Programming Decomposition Approach for Network Revenue Management

Discrete Optimization

Research Article Design of a Distribution Network Using Primal-Dual Decomposition

A Constraint Programming based Column Generation Approach to Nurse Rostering Problems

Unit 1. Today I am going to discuss about Transportation problem. First question that comes in our mind is what is a transportation problem?

Introduction to Linear Programming (LP) Mathematical Programming (MP) Concept

Practical Guide to the Simplex Method of Linear Programming

Lecture 3. Linear Programming. 3B1B Optimization Michaelmas 2015 A. Zisserman. Extreme solutions. Simplex method. Interior point method

Cost Models for Vehicle Routing Problems Stanford Boulevard, Suite 260 R. H. Smith School of Business

EXCEL SOLVER TUTORIAL

Tutorial: Operations Research in Constraint Programming

Revenue Management for Transportation Problems

CPLEX Tutorial Handout

Several Views of Support Vector Machines

LECTURE 5: DUALITY AND SENSITIVITY ANALYSIS. 1. Dual linear program 2. Duality theory 3. Sensitivity analysis 4. Dual simplex method

Support Vector Machines with Clustering for Training with Very Large Datasets

A numerically adaptive implementation of the simplex method

Optimization Modeling for Mining Engineers

Linear Programming: Chapter 11 Game Theory

INTEGER PROGRAMMING. Integer Programming. Prototype example. BIP model. BIP models

1 Introduction. Linear Programming. Questions. A general optimization problem is of the form: choose x to. max f(x) subject to x S. where.

Formulation of simple workforce skill constraints in assembly line balancing models

TD(0) Leads to Better Policies than Approximate Value Iteration

24. The Branch and Bound Method

Models in Transportation. Tim Nieberg

Chapter 4. Duality. 4.1 A Graphical Example

Linear Programming. Widget Factory Example. Linear Programming: Standard Form. Widget Factory Example: Continued.

Linear Programming Sensitivity Analysis

Duality in Linear Programming

Supply planning for two-level assembly systems with stochastic component delivery times: trade-off between holding cost and service level

Numerical methods for American options

Duality of linear conic problems

William E. Hart Carl Laird Jean-Paul Watson David L. Woodruff. Pyomo Optimization. Modeling in Python. ^ Springer

Advanced Lecture on Mathematical Science and Information Science I. Optimization in Finance

CASH FLOW MATCHING PROBLEM WITH CVaR CONSTRAINTS: A CASE STUDY WITH PORTFOLIO SAFEGUARD. Danjue Shang and Stan Uryasev

Recovery of primal solutions from dual subgradient methods for mixed binary linear programming; a branch-and-bound approach

Planning of Capacity, Production and Inventory Decisions in a Generic Closed Loop Supply Chain under Uncertain Demand and Returns

Airport Planning and Design. Excel Solver

Two objective functions for a real life Split Delivery Vehicle Routing Problem

56:171 Operations Research Midterm Exam Solutions Fall 2001

Joint Location-Two-Echelon-Inventory Supply chain Model with Stochastic Demand

Basic Components of an LP:

9th Max-Planck Advanced Course on the Foundations of Computer Science (ADFOCS) Primal-Dual Algorithms for Online Optimization: Lecture 1

Optimal Scheduling for Dependent Details Processing Using MS Excel Solver

SENSITIVITY ANALYSIS AS A MANAGERIAL DECISION

CHAPTER 3 SECURITY CONSTRAINED OPTIMAL SHORT-TERM HYDROTHERMAL SCHEDULING

Simulation-based Optimization Approach to Clinical Trial Supply Chain Management

Re-Solving Stochastic Programming Models for Airline Revenue Management

Linear Programming. March 14, 2014

Distributed Machine Learning and Big Data

Reinforcement Learning

Transportation Polytopes: a Twenty year Update

Efficient and Robust Allocation Algorithms in Clouds under Memory Constraints

VENDOR MANAGED INVENTORY

Transcription:

BENDERS DECOMPOSITION FOR STOCHASTIC PROGRAMMING WITH GAMS ERWIN KALVELAGEN Abstract. This document describes an implementation of Benders Decomposition for solving two-stage Stochastic Linear Programming problems using GAMS. 1. Introduction The two-stage stochastic linear programming problem can be stated as [2, 3, 4]: SLP minimize x c T x + E ω Q(x, ω) Ax = b x 0 where (1) Q(x, ω) = min d T ω y y T ω x + W ω y = h ω y 0 Here E ω is the expectation, and ω denotes a scenario or possible outcome with respect to the probability space (Ω, P ). We will consider discrete distributions P only, so we can write: (2) E ω Q(x, ω) = ω Ω p(ω)q(x, ω) Using this we can formulate a large LP that forms the deterministic equivalent problem: min c T x + ω p(ω)d T ω y ω (3) Ax = b T ω x + W ω y ω = h ω x 0, y ω 0 Date: 17 januari 2003. 1

2 ERWIN KALVELAGEN The structure of equation T ω x+w ω y ω = h ω is called L-shaped, which can be made visible by writing it out: (4) T 1 x +W 1 y 1 = h 1 T 2 x +W 2 y 2 = h 2 T 3 x +W 3 y 3 = h 3 T K x +W K y K = h K. 2. Benders Algorithm The Benders algorithm[1, 7] to solve this problem can be formulated as follows (we largely follow the notation in[6]). Step 1: Initialization ν := 1 {Iteration number} UB := {Upper bound} LB := {Lower bound} Solve initial master problem: (5) min c T x Ax = b x 0 x ν := x {Optimal values} Step 2: Sub problems for ω Ω do Solve the sub problem: (6) min d T ω y ω W ω y ω = h ω T ω x ν y ω 0 y ν ω := y ω {Optimal values} π ν ω := π ω {Optimal dual values} end for UB := min{ub, c T x ν + ω Ω p ωd T ω y ν ω} Step 3: Convergence test if (UB LB)/(1 + LB) T OL then Stop: required accuracy achieved Return x ν end if Step 4: Master problem

3 (7) Solve the Master problem: min c T x + θ Ax = b θ ω Ω p ω ( π l ω [T ω x + W ω y l ω h ω ] ), l = 1,..., ν 1 x 0 x ν := x {Optimal values} θ ν := θ LB := c T x ν + θ ν go to step 2. If the subproblems are infeasible, we need to include slightly different formulated cuts. The optimality cuts shown here assume the subproblems could be solved to an optimal feasible solution. 3. Example The standard transportation model can be stated as: TRANSPORT minimize x c i,j x i,j i,j j i x i,j = s i i x i,j = d j j x i,j 0 where c i,j are the unit transportation costs, s i is the supply at plant i and d j is the demand at location j. Now consider the case that demand d j is stochastic. We assume that products are shipped before the actual demand is observed. After the products arrive at each location j, actual demand is known. If demand is not met, the sales is lost. If the shipment is larger than the final demand, then the remaining products need to be disposed of as they have no shelf life (i.e. they spoil). Unit disposal costs are known. To model this, first assume we somehow know the demand. This means we can build a non-stochastic version of the model, also called the core model: max j p j Sales j i,j c i,j Ship i,j i c i Prod i j c j Waste j Prod i = j Ship i,j (8) Prod i cap i Ship i,j = Sales j + Waste j i Sales j demand j Sales j 0, Ship i,j 0, Prod i 0, Waste j 0

4 ERWIN KALVELAGEN In this model we try to maximize profit, i.e. revenue minus costs, where costs can be broken down in production costs, transportation costs and waste disposal costs. This model is just a little bit more complex than the transportation model. When we make demand j stochastic, the problem becomes more involved. We assume there are three scenarios: pessimistic, average and optimistic. The deterministic equivalent of the stochastic model could look like: max Profit = j,ω p j prob ω Sales j,ω i,j c i,j Ship i,j i c i Prod i j,ω c j prob ω Waste j,ω (9) Prod i = j Ship i,j Prod i cap i Ship i,j = Sales j,ω + Waste j,ω i Sales j,ω demand j Sales j,ω 0, Ship i,j 0, Prod i 0, Waste j,ω 0 The following model implements the core model and the deterministic equivalent formulation in GAMS: 3.0.1. Model stochlp.gms. 1 $ontext Transportation problem with stochastic demands. Simple three scenario problem. Erwin Kalvelagen, January 2003 $offtext sets i factories /f1f3/ j distribution centers /d1d5/ s scenarios /lo,mid,hi/ parameter capacity(i) /f1 500, f2 450, f3 650/ table demand(j,s) possible outcomes for demand lo mid hi d1 150 160 170 d2 100 120 135 d3 250 270 300 d4 300 325 350 d5 600 700 800 parameter prob(s) probabilities / lo 0.25 mid 0.5 hi 0.25 / table transcost(i,j) unit transportation cost 1 http://www.amsterdamoptimization.com/models/stochbenders/stochlp.gms

5 d1 d2 d3 d4 d5 f1 2.49 5.21 3.76 4.85 2.07 f2 1.46 2.54 1.83 1.86 4.76 f3 3.26 3.08 2.60 3.76 4.45 scalar prodcost unit production cost /14/ scalar price sales price /24/ scalar wastecost cost of removal of overstocked products /4/ ----------------------------------------------------------------------- first we formulate a non-stochastic version of the model we just use mid values for the demand. ----------------------------------------------------------------------- variables ship(i,j) shipments product(i) production sales(j) sales (actually sold) waste(j) overstocked products profit positive variables ship,product,sales,waste equations obj production(i) selling(j) obj.. profit =e= sum(j, pricesales(j)) - sum((i,j), transcost(i,j)ship(i,j)) - sum(j, wastecostwaste(j)) - sum(i,prodcostproduct(i)) production(i).. product(i) =e= sum(j, ship(i,j)) product.up(i) = capacity(i) selling(j).. sum(i, ship(i,j)) =e= sales(j)+waste(j) sales.up(j) = demand(j, mid ) model nonstoch /obj,production,selling/ solve nonstoch maximizing profit using lp display ship.l,product.l,sales.l,waste.l ----------------------------------------------------------------------- now we formulate a stochastic version of the model We form here the deterministic equivalent ----------------------------------------------------------------------- variables salesw(j,s) stochastic version of sales wastew(j,s) stochastic version of waste received(j) amount of product received in distribution center positive variable salesw,wastew equations objw sellingw(j,s) receive(j) objw.. profit =e= sum((j,s),priceprob(s)salesw(j,s)) - sum((i,j), transcost(i,j)ship(i,j)) - sum((j,s), wastecostprob(s)wastew(j,s)) - sum(i,prodcostproduct(i)) receive(j).. received(j) =e= sum(i, ship(i,j))

6 ERWIN KALVELAGEN sellingw(j,s).. received(j) =e= salesw(j,s)+wastew(j,s) salesw.up(j,s) = demand(j,s) model stoch /objw,production,receive,sellingw/ solve stoch maximizing profit using lp display ship.l,product.l,salesw.l,wastew.l,profit.l The optimal levels for the stage one variables from the deterministic model are: ---- 113 VARIABLE ship.l shipments d1 d2 d3 d4 d5 f1 500.000 f2 150.000 300.000 f3 100.000 270.000 100.000 4. Benders formulation This model is quite easily to solve using Benders Decomposition in GAMS. A complete formulation is given below. 4.0.2. Model stochbenders.gms. 2 $ontext Benders decomposition applied to a two-stage stochastic linear programming problem. Erwin Kalvelagen, januari 2003 $offtext sets i factories /f1f3/ j distribution centers /d1d5/ s scenarios /lo,mid,hi/ parameter capacity(i) /f1 500, f2 450, f3 650/ table demand(j,s) possible outcomes for demand lo mid hi d1 150 160 170 d2 100 120 135 d3 250 270 300 d4 300 325 350 d5 600 700 800 parameter prob(s) probabilities / lo 0.25 mid 0.5 hi 0.25 / table transcost(i,j) unit transportation cost d1 d2 d3 d4 d5 f1 2.49 5.21 3.76 4.85 2.07 f2 1.46 2.54 1.83 1.86 4.76 f3 3.26 3.08 2.60 3.76 4.45 2 http://www.amsterdamoptimization.com/models/stochbenders/stochbenders.gms

7 scalar prodcost unit production cost /14/ scalar price sales price /24/ scalar wastecost cost of removal of overstocked products /4/ ----------------------------------------------------------------------- Form the Benders master problem ----------------------------------------------------------------------- set iter max Benders iterations /iter1iter25/ dyniter(iter) dynamic subset positive variables ship(i,j) product(i) slackproduct(i) received(j) free variables zmaster theta equations masterobj production(i) receive(j) prodcap(i) optcut(iter) shipments production slack quantity sent to market objective variable of master problem extra term in master obj master objective function calculate production in each factory calculate quantity to be send to markets production capacity Benders optimality cuts parameter cutconst(iter) constants in optimality cuts cutcoeff(iter,j) coefficients in optimality cuts masterobj.. zmaster =e= sum((i,j), transcost(i,j)ship(i,j)) + sum(i,prodcostproduct(i)) + theta receive(j).. received(j) =e= sum(i, ship(i,j)) production(i).. product(i) =e= sum(j, ship(i,j)) prodcap(i).. product(i) + slackproduct(i) =e= capacity(i) optcut(dyniter).. theta =g= cutconst(dyniter) + sum(j, cutcoeff(dyniter,j)received(j)) model masterproblem /masterobj, receive, production, prodcap, optcut/ ----------------------------------------------------------------------- Form the Benders subproblem Notice in equation selling we use the level value received.l, i.e. this is a constant ----------------------------------------------------------------------- positive variables sales(j) waste(j) slacksales(j) free variables zsub equations subobj selling(j) selmax(j) sales (actually sold) overstocked products slack objective variable of sub problem subproblem objective function part of received is sold upperbound on sales parameter demnd(j) demand

8 ERWIN KALVELAGEN subobj.. zsub =e= -sum(j, pricesales(j)) + sum(j, wastecostwaste(j)) selling(j).. selmax(j).. sales(j) + waste(j) =e= received.l(j) sales(j) + slacksales(j) =e= demnd(j) model subproblem /subobj,selling,selmax/ ------------------------------------------------------------------- solver options ------------------------------------------------------------------- option limrow = 0 option limcol = 0 subproblem.solprint = 2 masterproblem.solprint = 2 subproblem.solvelink = 2 masterproblem.solvelink = 2 ------------------------------------------------------------------- Benders algorithm ------------------------------------------------------------------- step 1: solve master without cuts display "-----------------------------------------------------------------", "Master without cuts", "-----------------------------------------------------------------" dyniter(iter) = NO cutconst(iter) = 0 cutcoeff(iter,j) = 0 theta.fx = 0 solve masterproblem minimizing zmaster using lp display zmaster.l repair bounds theta.lo = -INF theta.up = INF scalar lowerbound /-INF/ scalar upperbound /INF/ parameter objsub(s) scalar objmaster objmaster = zmaster.l scalar iteration scalar done /0/ loop(iter$(not done), iteration = ord(iter) display "-----------------------------------------------------------------", iteration, "-----------------------------------------------------------------" solve subproblems dyniter(iter) = yes loop(s, demnd(j) = demand(j,s)

9 ) solve subproblem minimizing zsub using lp objsub(s) = zsub.l cutconst(iter) = cutconst(iter) - prob(s)sum(j,(-selmax.m(j))demand(j,s)) cutcoeff(iter,j) = cutcoeff(iter,j) - prob(s)(-selling.m(j)) upperbound = min(upperbound, objmaster + sum(s, prob(s)objsub(s))) convergence test display lowerbound,upperbound if( (upperbound-lowerbound) < 0.001(1+abs(lowerbound)), else display "Converged" done = 1 solve masterproblem solve masterproblem minimizing zmaster using lp display ship.l ) ) lowerbound = zmaster.l objmaster = zmaster.l-theta.l abort$(not done) "Too many iterations" display "-----------------------------------------------------------------", "Optimal stage one solution", "-----------------------------------------------------------------", ship.l The optimal levels for the stage one variables from this formulation are: ---- 221 VARIABLE ship.l shipments d1 d2 d3 d4 d5 f1 500.000 f2 150.000 300.000 f3 100.000 270.000 100.000 5. Dual subproblem In the model above we used a primal subproblem and its marginals (duals) in the calculation of the cuts. We can also solve a dual subproblem directly. Such a problem can be formulated as: ------------------------------------------------------------------- Dual subproblem ------------------------------------------------------------------- variables pi_selling(j) pi_selmax(j) dual of equation selling dual of equation selmax equations dualobj dualcon(j)

10 ERWIN KALVELAGEN dualobj.. zsub =e= sum(j, received.l(j)pi_selling(j)) + sum(j, demnd(j)pi_selmax(j)) dualcon(j).. pi_selling(j) + pi_selmax(j) =l= -price pi_selling.up(j) = wastecost pi_selmax.up(j) = 0 model dualsubproblem /dualobj,dualcon/ The subproblem solution step now becomes: solve subproblems dyniter(iter) = yes loop(s, demnd(j) = demand(j,s) solve dualsubproblem maximizing zsub using lp objsub(s) = zsub.l cutconst(iter) = cutconst(iter) - prob(s)sum(j,(-pi_selmax.l(j))demand(j,s)) cutcoeff(iter,j) = cutcoeff(iter,j) - prob(s)(-pi_selling.l(j)) ) This problem is rather simple and can even be solved directly without invoking an LP solver: loop(j, if (received.l(j)>demnd(j), pselling(j) = wastecost pselmax(j) = -price-pselling(j) else pselling(j) = -price pselmax(j) = 0 ) ) A slightly different variant of this problem is described in [5]: there the probabilities are considered independent leading to 243 scenarios. This paper also implements the last suggestion, to solve the subproblems directly inside GAMS instead of as using an LP problem. References 1. J. F. Benders, Partitioning procedures for solving mixed-variables programming problems, Numerische Mathematik 4 (1962), 238 252. 2. John R. Birge and François Louveaux, Introduction to Stochastic Programming, Springer Series in Operations Research, Springer, 1997. 3. Gerd Infanger, Planning Under Uncertainty Solving Large-Scale Stochastic Linear Programs, Boyd & Fraser, 1994. 4. Peter Kall and Stein W. Wallace, Stochastic Programming, Wiley, 1994. 5. Erwin Kalvelagen, Two Stage Stochastic Linear Programming with GAMS, http://www. amsterdamoptimization.com/pdf/twostage.pdf. 6. S. S. Nielsen and S.A. Zenios, Scalable Parallel Benders Decomposition for Stochastic Linear Programming, Parallel Computing 23 (1997), 1069 1088. 7. R. M. van Slyke and R. J.-B. Wets, L-Shaped Linear Programs with Applications to Optimal Control and Stochastic Programming, SIAM Journal on Applied Mathematics 17 (1969), 638 663. Amsterdam Optimization Modeling Group LLC, Washington D.C./The Hague E-mail address: erwin@amsterdamoptimization.com