The NETFLOW Procedure


Example 5.5 Using an Unconstrained Solution Warm Start

This example examines the effect of changing some of the arc costs. The backorder penalty costs are increased by twenty percent. The sales profit of 25-inch TVs sent to the shops in May is increased by thirty units. The backorder penalty costs of 25-inch TVs manufactured in May for April consumption is decreased by thirty units. The production cost of 19- and 25-inch TVs made in May are decreased by five units and twenty units, respectively. How does the optimal solution of the network after these arc cost alterations compare with the optimum of the original network? If you want to use the warm start facilities of PROC NETFLOW to solve this undefined problem, specify the WARM option. Notice that the FUTURE1 option was specified in the last PROC NETFLOW run.

The following SAS statements produce the new NODEOUT= and ARCOUT= data sets.


title 'Minimum Cost Flow problem- Unconstrained Warm Start';
title2 'Production Planning/Inventory/Distribution';
data arc2;
  set arc1;
  oldcost=_cost_;
  oldfc=_fcost_;
  oldflow=_flow_;
  if key_id='backorder'
     then _cost_=_cost_*1.2;
     else if _tail_='f2_may_2' then _cost_=_cost_-30;
  if key_id='production' & mth_made='May' then
     if diagonal=19 then _cost_=_cost_-5;
                    else _cost_=_cost_-20;

proc netflow
  warm future1
  nodedata=node2
  arcdata=arc2
  nodeout=node3
  arcout=arc3;
  run;
  quit;
options ls=80 ps = 50;
proc print data=arc3 heading=h width=min;
sum _fcost_;
var _tail_ _head_ _capac_ _lo_ _supply_ _demand_ _name_ _cost_ _flow_ _fcost_;
run;
options ls=80 ps = 50;
proc print data=arc3 heading=h width=min;
sum oldfc;
var oldcost oldflow oldfc diagonal factory key_id mth_made _anumb_ _tnumb_;
run;
proc print data=node3;
  run;

The following notes appear on the SAS log:

NOTE: Number of nodes= 21 .                                                     
NOTE: Number of supply nodes= 4 .                                               
NOTE: Number of demand nodes= 5 .                                               
NOTE: The greater of total supply and total demand= 4350 .                      
NOTE: Number of iterations performed (neglecting any constraints)= 8 .          
NOTE: Of these, 0 were degenerate.                                              
NOTE: Optimum (neglecting any constraints) found.                               
NOTE: Minimal total cost= -1285086.45 .                                         
NOTE: The data set WORK.ARC3 has 68 observations and 21 variables.              
NOTE: The data set WORK.NODE3 has 22 observations and 10 variables.             


The solution is displayed in Output 5.5.1. The associated NODEOUT data set is in Output 5.5.3.

Output 5.5.1: ARCOUT=ARC3

Obs _tail_ _head_ _capac_ _lo_ _SUPPLY_ _DEMAND_ _name_ _cost_ _FLOW_ _FCOST_
1 fact1_1 _EXCESS_ 99999999 0 1000 200   0.00 5 0.00
2 fact2_1 _EXCESS_ 99999999 0 850 200   0.00 45 0.00
3 fact1_2 _EXCESS_ 99999999 0 1000 200   0.00 0 0.00
4 fact2_2 _EXCESS_ 99999999 0 1500 200   0.00 150 0.00
5 fact1_1 f1_apr_1 600 50 1000 . prod f1 19 apl 78.60 540 42444.00
6 f1_mar_1 f1_apr_1 50 0 . .   15.00 0 0.00
7 f1_may_1 f1_apr_1 20 0 . . back f1 19 may 33.60 0 0.00
8 f2_apr_1 f1_apr_1 40 0 . .   11.00 0 0.00
9 fact1_2 f1_apr_2 550 50 1000 . prod f1 25 apl 174.50 250 43625.00
10 f1_mar_2 f1_apr_2 40 0 . .   20.00 0 0.00
11 f1_may_2 f1_apr_2 15 0 . . back f1 25 may 49.20 15 738.00
12 f2_apr_2 f1_apr_2 25 0 . .   21.00 0 0.00
13 fact1_1 f1_mar_1 500 50 1000 . prod f1 19 mar 127.90 340 43486.00
14 f1_apr_1 f1_mar_1 20 0 . . back f1 19 apl 33.60 20 672.00
15 f2_mar_1 f1_mar_1 40 0 . .   10.00 40 400.00
16 fact1_2 f1_mar_2 400 40 1000 . prod f1 25 mar 217.90 400 87160.00
17 f1_apr_2 f1_mar_2 30 0 . . back f1 25 apl 38.40 30 1152.00
18 f2_mar_2 f1_mar_2 25 0 . .   20.00 25 500.00
19 fact1_1 f1_may_1 400 50 1000 .   90.10 115 10361.50
20 f1_apr_1 f1_may_1 50 0 . .   12.00 0 0.00
21 f2_may_1 f1_may_1 40 0 . .   13.00 0 0.00
22 fact1_2 f1_may_2 350 40 1000 .   113.30 350 39655.00
23 f1_apr_2 f1_may_2 40 0 . .   18.00 0 0.00
24 f2_may_2 f1_may_2 25 0 . .   13.00 0 0.00
25 f1_apr_1 f2_apr_1 99999999 0 . .   11.00 20 220.00
26 fact2_1 f2_apr_1 480 35 850 . prod f2 19 apl 62.40 480 29952.00
27 f2_mar_1 f2_apr_1 30 0 . .   18.00 0 0.00
28 f2_may_1 f2_apr_1 15 0 . . back f2 19 may 30.00 0 0.00
29 f1_apr_2 f2_apr_2 99999999 0 . .   23.00 0 0.00
30 fact2_2 f2_apr_2 680 35 1500 . prod f2 25 apl 196.70 680 133756.00
31 f2_mar_2 f2_apr_2 50 0 . .   28.00 0 0.00
32 f2_may_2 f2_apr_2 15 0 . . back f2 25 may 64.80 0 0.00
33 f1_mar_1 f2_mar_1 99999999 0 . .   11.00 0 0.00
34 fact2_1 f2_mar_1 450 35 850 . prod f2 19 mar 88.00 290 25520.00
35 f2_apr_1 f2_mar_1 15 0 . . back f2 19 apl 20.40 0 0.00
36 f1_mar_2 f2_mar_2 99999999 0 . .   23.00 0 0.00
37 fact2_2 f2_mar_2 650 35 1500 . prod f2 25 mar 182.00 635 115570.00
38 f2_apr_2 f2_mar_2 15 0 . . back f2 25 apl 37.20 0 0.00
39 f1_may_1 f2_may_1 99999999 0 . .   16.00 115 1840.00
40 fact2_1 f2_may_1 250 35 850 .   128.80 35 4508.00
41 f2_apr_1 f2_may_1 30 0 . .   20.00 0 0.00
42 f1_may_2 f2_may_2 99999999 0 . .   26.00 335 8710.00
43 fact2_2 f2_may_2 550 35 1500 .   181.40 35 6349.00
44 f2_apr_2 f2_may_2 50 0 . .   38.00 0 0.00
45 f1_mar_1 shop1_1 250 0 . 900   -327.65 150 -49147.50
46 f1_apr_1 shop1_1 250 0 . 900   -300.00 250 -75000.00
47 f1_may_1 shop1_1 250 0 . 900   -285.00 0 0.00
48 f2_mar_1 shop1_1 250 0 . 900   -297.40 250 -74350.00
49 f2_apr_1 shop1_1 250 0 . 900   -290.00 250 -72500.00
50 f2_may_1 shop1_1 250 0 . 900   -292.00 0 0.00
51 f1_mar_2 shop1_2 99999999 0 . 900   -559.76 0 0.00
52 f1_apr_2 shop1_2 99999999 0 . 900   -524.28 0 0.00
53 f1_may_2 shop1_2 99999999 0 . 900   -475.02 0 0.00
54 f2_mar_2 shop1_2 500 0 . 900   -567.83 500 -283915.00
55 f2_apr_2 shop1_2 500 0 . 900   -542.19 400 -216876.00
56 f2_may_2 shop1_2 500 0 . 900   -491.56 0 0.00
57 f1_mar_1 shop2_1 250 0 . 900   -362.74 250 -90685.00
58 f1_apr_1 shop2_1 250 0 . 900   -300.00 250 -75000.00
59 f1_may_1 shop2_1 250 0 . 900   -245.00 0 0.00
60 f2_mar_1 shop2_1 250 0 . 900   -272.70 0 0.00
61 f2_apr_1 shop2_1 250 0 . 900   -312.00 250 -78000.00
62 f2_may_1 shop2_1 250 0 . 900   -299.00 150 -44850.00
63 f1_mar_2 shop2_2 99999999 0 . 1450   -623.89 455 -283869.95
64 f1_apr_2 shop2_2 99999999 0 . 1450   -549.68 235 -129174.80
65 f1_may_2 shop2_2 99999999 0 . 1450   -460.00 0 0.00
66 f2_mar_2 shop2_2 500 0 . 1450   -542.83 110 -59711.30
67 f2_apr_2 shop2_2 500 0 . 1450   -559.19 280 -156573.20
68 f2_may_2 shop2_2 500 0 . 1450   -519.06 370 -192052.20
                    -1285086.45



Output 5.5.2: ARCOUT=ARC3 (continued)

Obs oldcost oldflow oldfc diagonal factory key_id mth_made _ANUMB_ _TNUMB_
1 0.00 5 0.00 . .     65 1
2 0.00 45 0.00 . .     66 10
3 0.00 10 0.00 . .     67 11
4 0.00 140 0.00 . .     68 20
5 78.60 600 47160.00 19 1 production April 4 1
6 15.00 0 0.00 19 1 storage March 5 2
7 28.00 0 0.00 19 1 backorder May 6 4
8 11.00 0 0.00 19 . f2_to_1 April 7 6
9 174.50 550 95975.00 25 1 production April 36 11
10 20.00 0 0.00 25 1 storage March 37 12
11 41.00 15 615.00 25 1 backorder May 38 14
12 21.00 0 0.00 25 . f2_to_1 April 39 16
13 127.90 345 44125.50 19 1 production March 1 1
14 28.00 20 560.00 19 1 backorder April 2 3
15 10.00 40 400.00 19 . f2_to_1 March 3 5
16 217.90 400 87160.00 25 1 production March 33 11
17 32.00 30 960.00 25 1 backorder April 34 13
18 20.00 25 500.00 25 . f2_to_1 March 35 15
19 95.10 50 4755.00 19 1 production May 8 1
20 12.00 50 600.00 19 1 storage April 9 3
21 13.00 0 0.00 19 . f2_to_1 May 10 7
22 133.30 40 5332.00 25 1 production May 40 11
23 18.00 0 0.00 25 1 storage April 41 13
24 43.00 0 0.00 25 . f2_to_1 May 42 17
25 11.00 30 330.00 19 . f1_to_2 April 14 3
26 62.40 480 29952.00 19 2 production April 15 10
27 18.00 0 0.00 19 2 storage March 16 5
28 25.00 0 0.00 19 2 backorder May 17 7
29 23.00 0 0.00 25 . f1_to_2 April 46 13
30 196.70 680 133756.00 25 2 production April 47 20
31 28.00 0 0.00 25 2 storage March 48 15
32 54.00 15 810.00 25 2 backorder May 49 17
33 11.00 0 0.00 19 . f1_to_2 March 11 2
34 88.00 290 25520.00 19 2 production March 12 10
35 17.00 0 0.00 19 2 backorder April 13 6
36 23.00 0 0.00 25 . f1_to_2 March 43 12
37 182.00 645 117390.00 25 2 production March 44 20
38 31.00 0 0.00 25 2 backorder April 45 16
39 16.00 100 1600.00 19 . f1_to_2 May 18 4
40 133.80 35 4683.00 19 2 production May 19 10
41 20.00 15 300.00 19 2 storage April 20 6
42 26.00 0 0.00 25 . f1_to_2 May 50 14
43 201.40 35 7049.00 25 2 production May 51 20
44 38.00 0 0.00 25 2 storage April 52 16
45 -327.65 155 -50785.75 19 1 sales March 21 2
46 -300.00 250 -75000.00 19 1 sales April 22 3
47 -285.00 0 0.00 19 1 sales May 23 4
48 -297.40 250 -74350.00 19 2 sales March 24 5
49 -290.00 245 -71050.00 19 2 sales April 25 6
50 -292.00 0 0.00 19 2 sales May 26 7
51 -559.76 0 0.00 25 1 sales March 53 12
52 -524.28 0 0.00 25 1 sales April 54 13
53 -475.02 25 -11875.50 25 1 sales May 55 14
54 -567.83 500 -283915.00 25 2 sales March 56 15
55 -542.19 375 -203321.25 25 2 sales April 57 16
56 -461.56 0 0.00 25 2 sales May 58 17
57 -362.74 250 -90685.00 19 1 sales March 27 2
58 -300.00 250 -75000.00 19 1 sales April 28 3
59 -245.00 0 0.00 19 1 sales May 29 4
60 -272.70 0 0.00 19 2 sales March 30 5
61 -312.00 250 -78000.00 19 2 sales April 31 6
62 -299.00 150 -44850.00 19 2 sales May 32 7
63 -623.89 455 -283869.95 25 1 sales March 59 12
64 -549.68 535 -294078.80 25 1 sales April 60 13
65 -460.00 0 0.00 25 1 sales May 61 14
66 -542.83 120 -65139.60 25 2 sales March 62 15
67 -559.19 320 -178940.80 25 2 sales April 63 16
68 -489.06 20 -9781.20 25 2 sales May 64 17
      -1281110.35            



Output 5.5.3: NODEOUT=NODE3

Obs _node_ _supdem_ _DUAL_ _NNUMB_ _PRED_ _TRAV_ _SCESS_ _ARCID_ _FLOW_ _FBQ_
1 _ROOT_ 238 0.00 22 0 8 0 3 166 -69
2 _EXCESS_ -200 -100000198.75 21 1 20 13 65 5 65
3 f1_apr_1 . -100000277.35 3 1 6 2 4 490 4
4 f1_apr_2 . -100000387.60 13 19 11 2 -60 235 36
5 f1_mar_1 . -100000326.65 2 8 1 20 -21 150 1
6 f1_mar_2 . -100000461.81 12 19 13 1 -59 455 33
7 f1_may_1 . -100000288.85 4 1 7 3 8 65 8
8 f1_may_2 . -100000330.98 14 17 10 1 -50 335 40
9 f2_apr_1 . -100000288.35 6 3 4 1 14 20 14
10 f2_apr_2 . -100000397.11 16 19 18 2 -63 280 46
11 f2_mar_1 . -100000286.75 5 10 22 1 12 255 11
12 f2_mar_2 . -100000380.75 15 20 19 9 44 600 43
13 f2_may_1 . -100000304.85 7 4 9 2 18 115 18
14 f2_may_2 . -100000356.98 17 19 14 2 -64 370 50
15 fact1_1 1000 -100000198.75 1 2 3 19 -1 290 -1
16 fact1_2 1000 -100000213.10 11 13 17 1 -36 200 -33
17 fact2_1 850 -100000198.75 10 21 5 2 -66 45 -33
18 fact2_2 1500 -100000198.75 20 21 15 10 -68 150 -65
19 shop1_1 -900 -99999999.00 8 22 2 21 0 0 21
20 shop1_2 -900 -99999854.92 18 16 12 1 57 400 53
21 shop2_1 -900 -100000005.85 9 7 21 1 32 150 27
22 shop2_2 -1450 -99999837.92 19 15 16 8 62 110 59