Missing S Supply and Missing D Demand Values (int0c)
/****************************************************************/
/* S A S S A M P L E L I B R A R Y */
/* */
/* NAME: INT0C */
/* TITLE: Missing S Supply and Missing D Demand Values (int0c)*/
/* PRODUCT: OR */
/* SYSTEM: ALL */
/* KEYS: OR */
/* PROCS: INTPOINT */
/* DATA: */
/* */
/* SUPPORT: UPDATE: */
/* REF: */
/* MISC: 'Missing S Supply and Missing D Demand Values' */
/* example from Details section of INTPOINT chapter */
/****************************************************************/
title3 'Setting Up Arcdata = Arcd1 For PROC INTPOINT';
data arcd1;
input _from_&$11. _to_&$15. _cost_ _capac_ _lo_ _name_ $;
datalines;
middle east refinery 1 63 95 20 m_e_ref1
middle east refinery 2 81 80 10 m_e_ref2
u.s.a. refinery 1 55 . . .
u.s.a. refinery 2 49 . . .
refinery 1 r1 200 175 50 thruput1
refinery 2 r2 220 100 35 thruput2
r1 ref1 gas . 140 . r1_gas
r1 ref1 diesel . 75 . .
r2 ref2 gas . 100 . r2_gas
r2 ref2 diesel . 75 . .
ref1 gas servstn1 gas 15 70 . .
ref1 gas servstn2 gas 22 60 . .
ref1 diesel servstn1 diesel 18 . . .
ref1 diesel servstn2 diesel 17 . . .
ref2 gas servstn1 gas 17 35 5 .
ref2 gas servstn2 gas 31 . . .
ref2 diesel servstn1 diesel 36 . . .
ref2 diesel servstn2 diesel 23 . . .
;
title3 'Setting Up Condata = Cond1 For PROC INTPOINT';
data cond1;
input m_e_ref1 m_e_ref2 thruput1 r1_gas thruput2 r2_gas
_type_ $ _rhs_;
datalines;
-2 . 1 . . . >= -15
. -2 . . 1 . GE -15
. . -3 4 . . EQ 0
. . . . -3 4 = 0
;
title 'Oil Industry Example';
title3 'Crude Oil can come from anywhere';
data miss_s;
missing S;
input _node_&$15. _sd_;
datalines;
middle east S
u.s.a. S
servstn1 gas -95
servstn1 diesel -30
servstn2 gas -40
servstn2 diesel -15
;
proc intpoint
bytes=100000
nodedata=miss_s /* the supply (missing S) and */
/* demand data */
arcdata=arcd1 /* the arc descriptions */
condata=cond1 /* the side constraints */
conout=solution; /* the solution data set */
run;
proc print;
var _from_ _to_ _cost_ _capac_ _lo_ _flow_ _fcost_;
sum _fcost_;
run;
data miss_s_x;
missing S;
input _node_&$15. _sd_;
datalines;
middle east 1
u.s.a. 1
servstn1 gas -95
servstn1 diesel -30
servstn2 gas -40
servstn2 diesel -15
;
proc intpoint
bytes=100000
thrunet
nodedata=miss_s_x /* No supply (missing S) */
arcdata=arcd1 /* the arc descriptions */
condata=cond1 /* the side constraints */
conout=solution; /* the solution data set */
run;
proc print;
var _from_ _to_ _cost_ _capac_ _lo_ _flow_ _fcost_;
sum _fcost_;
run;