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 |