# GAMS Support Wiki

### Site Tools

gams:schrage_s_snow_removal_problem_stochastic_programming

# Schrage's Snow Removal Problem

```\$TITLE STOCHASTIC PROGRAMMING: SCHRAGE’S SNOW REMOVAL PROBLEM
\$offupper offsymxref offsymlist onlisting inlinecom { }
\$ontext
Two-Stage Stochastic Programming Problem with Recourse
Source: Linus Schrage, LINDO, 3rd ed., p.140-145
By: Richard E. Rosenthal (Oct 91)
\$offtext
SETS
R consumable resources / FUEL, SALT /
A activities           / PLOWING, SALTING /
S states of nature     / WARM, COLD /
E durable resources    / TRUCK-DAYS /
;
PARAMETER C1(R) cost of buying resources in Stage 1
/
FUEL 70
SALT 20
/ ;
TABLE C2(S,R) cost of buying resources in Stage 2
FUEL SALT
WARM 73     30
COLD 73     32
;
PARAMETER SALV(R) salvage value of resources after Stage 2
/
FUEL 65
SALT 15
/ ;
TABLE OPCOST(S,A) operating cost in Stage 2
PLOWING   SALTING
WARM     110       110
COLD     120       120
;
TABLE EFF(S,A) efficiency factor for snow removal activity
PLOWING   SALTING
WARM     1.0       1.2
COLD     1.0       1.1
;
TABLE CON(R,A) consumption rates for snow removal activity
PLOWING SALTING
FUEL     1.0     1.0
SALT     0.0     1.0
;
PARAMETER DEM(S) demand for snow removal
/
WARM 3500
COLD 5100
/ ;
PARAMETER PROB(S) probability of Stage 2 states of nature
/
WARM 0.4
COLD 0.6
/ ;
PARAMETER SUP(E) equipment supply
/
TRUCK-DAYS 5000
/ ;
POSITIVE VARIABLES
X1(R)   Stage 1 resource purchases
X2(S,R) Stage 2 resource purchases under SON s
Y2(S,A) Stage 2 activities under SON s
W2(S,R) Stage 2 salvages under SON s
;
FREE VARIABLE
Z total expected cost ;
EQUATIONS
BAL(S,R) Stage 2 resource balance under SON s
EQUIP(S,E) Stage 2 equipment supply under SON s
DEMAND(S) Stage 2 snow removal demand under SON s
OBJDEF;

BAL(S,R)..   X1(R) + X2(S,R) =E= W2(S,R) + SUM(A, CON(R,A) * Y2(S,A)) ;
* Purchases = Salvage + Consumption

EQUIP(S,E).. SUM(A, Y2(S,A) ) =L= SUP(E) ;
DEMAND(S)..  SUM(A, EFF(S,A) * Y2(S,A) ) =G= DEM(S) ;
OBJDEF..     SUM( R, C1(R) * X1(R) )
+ SUM( (S,R), PROB(S) * C2(S,R) * X2(S,R) )
+ SUM( (S,A), PROB(S) * OPCOST(S,A) * Y2(S,A) )
- SUM( (S,R), PROB(S) * SALV(R) * W2(S,R) )
=E= Z ;
OPTION LIMROW=10, LIMCOL=0, SOLPRINT=ON
MODEL SNOW / ALL / ;
SOLVE SNOW USING LP MINIMIZING Z;``` 