Suppose the 25-inch screen TVs produced at factory 1 in May can be sold at either shop with an increased profit of 40 dollars each. What is the new optimal solution? Because only arc costs have been changed, information about the present solution in DUALOUT=dual4 and CONOUT=con4 can be used as a warm start in the following PROC NETFLOW run. It is still necessary to specify CONDATA=con3 SPARSECONDATA RHSOBS='CHIP/BO LIMIT', since the CONDATA= data set is always read.
title 'Using a Constrained Solution Warm Start'; title2 'Production Planning/Inventory/Distribution'; data new_con4; set con4; oldcost=_cost_; oldflow=_flow_; oldfc=_fcost_; if _tail_='f1_may_2' & (_head_='shop1_2' | _head_='shop2_2') then _cost_=_cost_-40; run;
proc netflow warm arcdata=new_con4 dualin=dual4 condata=con3 sparsecondata rhsobs='CHIP/BO LIMIT' dualout=dual5 conout=con5; run; quit;
proc print data=con5 heading=h width=min; sum _fcost_; var _tail_ _head_ _capac_ _lo_ _supply_ _demand_ _name_ _cost_ _flow_ _fcost_; run;
proc print data=con5 heading=h width=min; sum oldfc; var oldcost oldflow oldfc diagonal factory key_id mth_made _anumb_ _tnumb_; run;
proc print data=dual5; run;
The following messages appear on the SAS log:
Using a Constrained Solution Warm Start |
Production Planning/Inventory/Distribution |
NOTE: The following 1 variables in NODEDATA do not belong to any SAS variable |
list. These will be ignored. |
_VALUE_ |
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 <= side constraints= 5 . |
NOTE: Number of == side constraints= 0 . |
NOTE: Number of >= side constraints= 0 . |
NOTE: Number of arc and nonarc variable side constraint coefficients= 16 . |
NOTE: Number of iterations, optimizing with constraints= 6 . |
NOTE: Of these, 0 were degenerate. |
NOTE: Optimum reached. |
NOTE: Minimal total cost= -1295661.8 . |
NOTE: The data set WORK.CON5 has 68 observations and 21 variables. |
NOTE: The data set WORK.DUAL5 has 25 observations and 14 variables. |
Output 7.7.1: CONOUT=CON5
Using a Constrained Solution Warm Start |
Production Planning/Inventory/Distribution |
Obs | _tail_ | _head_ | _capac_ | _lo_ | _SUPPLY_ | _DEMAND_ | _name_ | _cost_ | _FLOW_ | _FCOST_ |
---|---|---|---|---|---|---|---|---|---|---|
1 | fact1_1 | _EXCESS_ | 99999999 | 0 | 1000 | 200 | 0.00 | 5.000 | 0.00 | |
2 | fact2_1 | _EXCESS_ | 99999999 | 0 | 850 | 200 | 0.00 | 45.000 | 0.00 | |
3 | fact1_2 | _EXCESS_ | 99999999 | 0 | 1000 | 200 | 0.00 | 0.000 | 0.00 | |
4 | fact2_2 | _EXCESS_ | 99999999 | 0 | 1500 | 200 | 0.00 | 150.000 | 0.00 | |
5 | fact1_1 | f1_apr_1 | 600 | 50 | 1000 | . | prod f1 19 apl | 78.60 | 533.333 | 41920.00 |
6 | f1_mar_1 | f1_apr_1 | 50 | 0 | . | . | 15.00 | 0.000 | 0.00 | |
7 | f1_may_1 | f1_apr_1 | 20 | 0 | . | . | back f1 19 may | 33.60 | 0.000 | 0.00 |
8 | f2_apr_1 | f1_apr_1 | 40 | 0 | . | . | 11.00 | 0.000 | 0.00 | |
9 | fact1_2 | f1_apr_2 | 550 | 50 | 1000 | . | prod f1 25 apl | 174.50 | 250.000 | 43625.00 |
10 | f1_mar_2 | f1_apr_2 | 40 | 0 | . | . | 20.00 | 0.000 | 0.00 | |
11 | f1_may_2 | f1_apr_2 | 15 | 0 | . | . | back f1 25 may | 49.20 | 0.000 | 0.00 |
12 | f2_apr_2 | f1_apr_2 | 25 | 0 | . | . | 21.00 | 0.000 | 0.00 | |
13 | fact1_1 | f1_mar_1 | 500 | 50 | 1000 | . | prod f1 19 mar | 127.90 | 333.333 | 42633.33 |
14 | f1_apr_1 | f1_mar_1 | 20 | 0 | . | . | back f1 19 apl | 33.60 | 20.000 | 672.00 |
15 | f2_mar_1 | f1_mar_1 | 40 | 0 | . | . | 10.00 | 40.000 | 400.00 | |
16 | fact1_2 | f1_mar_2 | 400 | 40 | 1000 | . | prod f1 25 mar | 217.90 | 400.000 | 87160.00 |
17 | f1_apr_2 | f1_mar_2 | 30 | 0 | . | . | back f1 25 apl | 38.40 | 30.000 | 1152.00 |
18 | f2_mar_2 | f1_mar_2 | 25 | 0 | . | . | 20.00 | 25.000 | 500.00 | |
19 | fact1_1 | f1_may_1 | 400 | 50 | 1000 | . | 90.10 | 128.333 | 11562.83 | |
20 | f1_apr_1 | f1_may_1 | 50 | 0 | . | . | 12.00 | 0.000 | 0.00 | |
21 | f2_may_1 | f1_may_1 | 40 | 0 | . | . | 13.00 | 0.000 | 0.00 | |
22 | fact1_2 | f1_may_2 | 350 | 40 | 1000 | . | 113.30 | 350.000 | 39655.00 | |
23 | f1_apr_2 | f1_may_2 | 40 | 0 | . | . | 18.00 | 0.000 | 0.00 | |
24 | f2_may_2 | f1_may_2 | 25 | 0 | . | . | 13.00 | 0.000 | 0.00 | |
25 | f1_apr_1 | f2_apr_1 | 99999999 | 0 | . | . | 11.00 | 13.333 | 146.67 | |
26 | fact2_1 | f2_apr_1 | 480 | 35 | 850 | . | prod f2 19 apl | 62.40 | 480.000 | 29952.00 |
27 | f2_mar_1 | f2_apr_1 | 30 | 0 | . | . | 18.00 | 0.000 | 0.00 | |
28 | f2_may_1 | f2_apr_1 | 15 | 0 | . | . | back f2 19 may | 30.00 | 0.000 | 0.00 |
29 | f1_apr_2 | f2_apr_2 | 99999999 | 0 | . | . | 23.00 | 0.000 | 0.00 | |
30 | fact2_2 | f2_apr_2 | 680 | 35 | 1500 | . | prod f2 25 apl | 196.70 | 550.000 | 108185.00 |
31 | f2_mar_2 | f2_apr_2 | 50 | 0 | . | . | 28.00 | 0.000 | 0.00 | |
32 | f2_may_2 | f2_apr_2 | 15 | 0 | . | . | back f2 25 may | 64.80 | 0.000 | 0.00 |
33 | f1_mar_1 | f2_mar_1 | 99999999 | 0 | . | . | 11.00 | 0.000 | 0.00 | |
34 | fact2_1 | f2_mar_1 | 450 | 35 | 850 | . | prod f2 19 mar | 88.00 | 290.000 | 25520.00 |
35 | f2_apr_1 | f2_mar_1 | 15 | 0 | . | . | back f2 19 apl | 20.40 | 0.000 | 0.00 |
36 | f1_mar_2 | f2_mar_2 | 99999999 | 0 | . | . | 23.00 | 0.000 | 0.00 | |
37 | fact2_2 | f2_mar_2 | 650 | 35 | 1500 | . | prod f2 25 mar | 182.00 | 650.000 | 118300.00 |
38 | f2_apr_2 | f2_mar_2 | 15 | 0 | . | . | back f2 25 apl | 37.20 | 0.000 | 0.00 |
39 | f1_may_1 | f2_may_1 | 99999999 | 0 | . | . | 16.00 | 115.000 | 1840.00 | |
40 | fact2_1 | f2_may_1 | 250 | 35 | 850 | . | 128.80 | 35.000 | 4508.00 | |
41 | f2_apr_1 | f2_may_1 | 30 | 0 | . | . | 20.00 | 0.000 | 0.00 | |
42 | f1_may_2 | f2_may_2 | 99999999 | 0 | . | . | 26.00 | 0.000 | 0.00 | |
43 | fact2_2 | f2_may_2 | 550 | 35 | 1500 | . | 181.40 | 150.000 | 27210.00 | |
44 | f2_apr_2 | f2_may_2 | 50 | 0 | . | . | 38.00 | 0.000 | 0.00 | |
45 | f1_mar_1 | shop1_1 | 250 | 0 | . | 900 | -327.65 | 143.333 | -46963.17 | |
46 | f1_apr_1 | shop1_1 | 250 | 0 | . | 900 | -300.00 | 250.000 | -75000.00 | |
47 | f1_may_1 | shop1_1 | 250 | 0 | . | 900 | -285.00 | 13.333 | -3800.00 | |
48 | f2_mar_1 | shop1_1 | 250 | 0 | . | 900 | -297.40 | 250.000 | -74350.00 | |
49 | f2_apr_1 | shop1_1 | 250 | 0 | . | 900 | -290.00 | 243.333 | -70566.67 | |
50 | f2_may_1 | shop1_1 | 250 | 0 | . | 900 | -292.00 | 0.000 | 0.00 | |
51 | f1_mar_2 | shop1_2 | 99999999 | 0 | . | 900 | -559.76 | 0.000 | 0.00 | |
52 | f1_apr_2 | shop1_2 | 99999999 | 0 | . | 900 | -524.28 | 0.000 | 0.00 | |
53 | f1_may_2 | shop1_2 | 99999999 | 0 | . | 900 | -515.02 | 350.000 | -180257.00 | |
54 | f2_mar_2 | shop1_2 | 500 | 0 | . | 900 | -567.83 | 500.000 | -283915.00 | |
55 | f2_apr_2 | shop1_2 | 500 | 0 | . | 900 | -542.19 | 50.000 | -27109.50 | |
56 | f2_may_2 | shop1_2 | 500 | 0 | . | 900 | -491.56 | 0.000 | 0.00 | |
57 | f1_mar_1 | shop2_1 | 250 | 0 | . | 900 | -362.74 | 250.000 | -90685.00 | |
58 | f1_apr_1 | shop2_1 | 250 | 0 | . | 900 | -300.00 | 250.000 | -75000.00 | |
59 | f1_may_1 | shop2_1 | 250 | 0 | . | 900 | -245.00 | 0.000 | 0.00 | |
60 | f2_mar_1 | shop2_1 | 250 | 0 | . | 900 | -272.70 | 0.000 | 0.00 | |
61 | f2_apr_1 | shop2_1 | 250 | 0 | . | 900 | -312.00 | 250.000 | -78000.00 | |
62 | f2_may_1 | shop2_1 | 250 | 0 | . | 900 | -299.00 | 150.000 | -44850.00 | |
63 | f1_mar_2 | shop2_2 | 99999999 | 0 | . | 1450 | -623.89 | 455.000 | -283869.95 | |
64 | f1_apr_2 | shop2_2 | 99999999 | 0 | . | 1450 | -549.68 | 220.000 | -120929.60 | |
65 | f1_may_2 | shop2_2 | 99999999 | 0 | . | 1450 | -500.00 | 0.000 | 0.00 | |
66 | f2_mar_2 | shop2_2 | 500 | 0 | . | 1450 | -542.83 | 125.000 | -67853.75 | |
67 | f2_apr_2 | shop2_2 | 500 | 0 | . | 1450 | -559.19 | 500.000 | -279595.00 | |
68 | f2_may_2 | shop2_2 | 500 | 0 | . | 1450 | -519.06 | 150.000 | -77859.00 | |
-1295661.80 |
Output 7.7.2: CONOUT=CON5 (continued)
Using a Constrained Solution Warm Start |
Production Planning/Inventory/Distribution |
Obs | oldcost | oldflow | oldfc | diagonal | factory | key_id | mth_made | _ANUMB_ | _TNUMB_ |
---|---|---|---|---|---|---|---|---|---|
1 | 0.00 | 5.000 | 0.00 | . | . | 65 | 1 | ||
2 | 0.00 | 45.000 | 0.00 | . | . | 66 | 10 | ||
3 | 0.00 | 0.000 | 0.00 | . | . | 67 | 11 | ||
4 | 0.00 | 150.000 | 0.00 | . | . | 68 | 20 | ||
5 | 78.60 | 533.333 | 41920.00 | 19 | 1 | production | April | 4 | 1 |
6 | 15.00 | 0.000 | 0.00 | 19 | 1 | storage | March | 5 | 2 |
7 | 33.60 | 0.000 | 0.00 | 19 | 1 | backorder | May | 6 | 4 |
8 | 11.00 | 0.000 | 0.00 | 19 | . | f2_to_1 | April | 7 | 6 |
9 | 174.50 | 250.000 | 43625.00 | 25 | 1 | production | April | 36 | 11 |
10 | 20.00 | 0.000 | 0.00 | 25 | 1 | storage | March | 37 | 12 |
11 | 49.20 | 0.000 | 0.00 | 25 | 1 | backorder | May | 38 | 14 |
12 | 21.00 | 0.000 | 0.00 | 25 | . | f2_to_1 | April | 39 | 16 |
13 | 127.90 | 333.333 | 42633.33 | 19 | 1 | production | March | 1 | 1 |
14 | 33.60 | 20.000 | 672.00 | 19 | 1 | backorder | April | 2 | 3 |
15 | 10.00 | 40.000 | 400.00 | 19 | . | f2_to_1 | March | 3 | 5 |
16 | 217.90 | 400.000 | 87160.00 | 25 | 1 | production | March | 33 | 11 |
17 | 38.40 | 30.000 | 1152.00 | 25 | 1 | backorder | April | 34 | 13 |
18 | 20.00 | 25.000 | 500.00 | 25 | . | f2_to_1 | March | 35 | 15 |
19 | 90.10 | 128.333 | 11562.83 | 19 | 1 | production | May | 8 | 1 |
20 | 12.00 | 0.000 | 0.00 | 19 | 1 | storage | April | 9 | 3 |
21 | 13.00 | 0.000 | 0.00 | 19 | . | f2_to_1 | May | 10 | 7 |
22 | 113.30 | 350.000 | 39655.00 | 25 | 1 | production | May | 40 | 11 |
23 | 18.00 | 0.000 | 0.00 | 25 | 1 | storage | April | 41 | 13 |
24 | 13.00 | 0.000 | 0.00 | 25 | . | f2_to_1 | May | 42 | 17 |
25 | 11.00 | 13.333 | 146.67 | 19 | . | f1_to_2 | April | 14 | 3 |
26 | 62.40 | 480.000 | 29952.00 | 19 | 2 | production | April | 15 | 10 |
27 | 18.00 | 0.000 | 0.00 | 19 | 2 | storage | March | 16 | 5 |
28 | 30.00 | 0.000 | 0.00 | 19 | 2 | backorder | May | 17 | 7 |
29 | 23.00 | 0.000 | 0.00 | 25 | . | f1_to_2 | April | 46 | 13 |
30 | 196.70 | 577.500 | 113594.25 | 25 | 2 | production | April | 47 | 20 |
31 | 28.00 | 0.000 | 0.00 | 25 | 2 | storage | March | 48 | 15 |
32 | 64.80 | 0.000 | 0.00 | 25 | 2 | backorder | May | 49 | 17 |
33 | 11.00 | 0.000 | 0.00 | 19 | . | f1_to_2 | March | 11 | 2 |
34 | 88.00 | 290.000 | 25520.00 | 19 | 2 | production | March | 12 | 10 |
35 | 20.40 | 0.000 | 0.00 | 19 | 2 | backorder | April | 13 | 6 |
36 | 23.00 | 0.000 | 0.00 | 25 | . | f1_to_2 | March | 43 | 12 |
37 | 182.00 | 650.000 | 118300.00 | 25 | 2 | production | March | 44 | 20 |
38 | 37.20 | 0.000 | 0.00 | 25 | 2 | backorder | April | 45 | 16 |
39 | 16.00 | 115.000 | 1840.00 | 19 | . | f1_to_2 | May | 18 | 4 |
40 | 128.80 | 35.000 | 4508.00 | 19 | 2 | production | May | 19 | 10 |
41 | 20.00 | 0.000 | 0.00 | 19 | 2 | storage | April | 20 | 6 |
42 | 26.00 | 350.000 | 9100.00 | 25 | . | f1_to_2 | May | 50 | 14 |
43 | 181.40 | 122.500 | 22221.50 | 25 | 2 | production | May | 51 | 20 |
44 | 38.00 | 0.000 | 0.00 | 25 | 2 | storage | April | 52 | 16 |
45 | -327.65 | 143.333 | -46963.17 | 19 | 1 | sales | March | 21 | 2 |
46 | -300.00 | 250.000 | -75000.00 | 19 | 1 | sales | April | 22 | 3 |
47 | -285.00 | 13.333 | -3800.00 | 19 | 1 | sales | May | 23 | 4 |
48 | -297.40 | 250.000 | -74350.00 | 19 | 2 | sales | March | 24 | 5 |
49 | -290.00 | 243.333 | -70566.67 | 19 | 2 | sales | April | 25 | 6 |
50 | -292.00 | 0.000 | 0.00 | 19 | 2 | sales | May | 26 | 7 |
51 | -559.76 | 0.000 | 0.00 | 25 | 1 | sales | March | 53 | 12 |
52 | -524.28 | 0.000 | 0.00 | 25 | 1 | sales | April | 54 | 13 |
53 | -475.02 | 0.000 | 0.00 | 25 | 1 | sales | May | 55 | 14 |
54 | -567.83 | 500.000 | -283915.00 | 25 | 2 | sales | March | 56 | 15 |
55 | -542.19 | 400.000 | -216876.00 | 25 | 2 | sales | April | 57 | 16 |
56 | -491.56 | 0.000 | 0.00 | 25 | 2 | sales | May | 58 | 17 |
57 | -362.74 | 250.000 | -90685.00 | 19 | 1 | sales | March | 27 | 2 |
58 | -300.00 | 250.000 | -75000.00 | 19 | 1 | sales | April | 28 | 3 |
59 | -245.00 | 0.000 | 0.00 | 19 | 1 | sales | May | 29 | 4 |
60 | -272.70 | 0.000 | 0.00 | 19 | 2 | sales | March | 30 | 5 |
61 | -312.00 | 250.000 | -78000.00 | 19 | 2 | sales | April | 31 | 6 |
62 | -299.00 | 150.000 | -44850.00 | 19 | 2 | sales | May | 32 | 7 |
63 | -623.89 | 455.000 | -283869.95 | 25 | 1 | sales | March | 59 | 12 |
64 | -549.68 | 220.000 | -120929.60 | 25 | 1 | sales | April | 60 | 13 |
65 | -460.00 | 0.000 | 0.00 | 25 | 1 | sales | May | 61 | 14 |
66 | -542.83 | 125.000 | -67853.75 | 25 | 2 | sales | March | 62 | 15 |
67 | -559.19 | 177.500 | -99256.23 | 25 | 2 | sales | April | 63 | 16 |
68 | -519.06 | 472.500 | -245255.85 | 25 | 2 | sales | May | 64 | 17 |
-1282708.63 |
Output 7.7.3: DUALOUT=DUAL5
Using a Constrained Solution Warm Start |
Production Planning/Inventory/Distribution |
Obs | _node_ | _supdem_ | _DUAL_ | _NNUMB_ | _PRED_ | _TRAV_ | _SCESS_ | _ARCID_ | _FLOW_ | _FBQ_ | _VALUE_ | _RHS_ | _TYPE_ | _row_ |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | f1_apr_1 | . | -100000278.00 | 3 | 1 | 6 | 2 | 4 | 483.333 | 4 | . | . | ||
2 | f1_apr_2 | . | -100000405.92 | 13 | 19 | 11 | 2 | -60 | 220.000 | 36 | . | . | ||
3 | f1_mar_1 | . | -100000326.65 | 2 | 8 | 1 | 20 | -21 | 143.333 | 1 | . | . | ||
4 | f1_mar_2 | . | -100000480.13 | 12 | 19 | 13 | 1 | -59 | 455.000 | 33 | . | . | ||
5 | f1_may_1 | . | -100000284.00 | 4 | 1 | 7 | 3 | 8 | 78.333 | 8 | . | . | ||
6 | f1_may_2 | . | -100000363.43 | 14 | 18 | 10 | 1 | -55 | 350.000 | 40 | . | . | ||
7 | f2_apr_1 | . | -100000289.00 | 6 | 3 | 4 | 1 | 14 | 13.333 | 14 | . | . | ||
8 | f2_apr_2 | . | -100000390.60 | 16 | 20 | 18 | 3 | 47 | 515.000 | 46 | . | . | ||
9 | f2_mar_1 | . | -100000281.90 | 5 | 10 | 3 | 1 | 12 | 255.000 | 11 | . | . | ||
10 | f2_mar_2 | . | -100000399.07 | 15 | 19 | 16 | 1 | -62 | 125.000 | 43 | . | . | ||
11 | f2_may_1 | . | -100000300.00 | 7 | 4 | 9 | 2 | 18 | 115.000 | 18 | . | . | ||
12 | f2_may_2 | . | -100000375.30 | 17 | 20 | 19 | 6 | 51 | 115.000 | 50 | . | . | ||
13 | fact1_1 | 1000 | -100000193.90 | 1 | 2 | 21 | 19 | -1 | 283.333 | -1 | . | . | ||
14 | fact1_2 | 1000 | -100000224.09 | 11 | 13 | 15 | 1 | -36 | 200.000 | -33 | . | . | ||
15 | fact2_1 | 850 | -100000193.90 | 10 | 21 | 5 | 2 | -66 | 45.000 | -33 | . | . | ||
16 | fact2_2 | 1500 | -100000193.90 | 20 | 21 | 17 | 10 | -68 | 150.000 | -65 | . | . | ||
17 | shop1_1 | -900 | -99999999.00 | 8 | 22 | 2 | 21 | 0 | 0.000 | 21 | . | . | ||
18 | shop1_2 | -900 | -99999848.41 | 18 | 16 | 14 | 2 | 57 | 50.000 | 53 | . | . | ||
19 | shop2_1 | -900 | -100000001.00 | 9 | 7 | 22 | 1 | 32 | 150.000 | 27 | . | . | ||
20 | shop2_2 | -1450 | -99999856.24 | 19 | 17 | 12 | 5 | 64 | 150.000 | 59 | . | . | ||
21 | . | -1.83 | 2 | 8 | . | . | 25 | 243.333 | . | 2600 | 2600 | LE | FACT1 APL GIZMO | |
22 | . | -1.62 | 0 | 8 | . | . | 23 | 13.333 | . | 2600 | 2600 | LE | FACT1 MAR GIZMO | |
23 | . | 0.00 | 3 | 3 | . | 3 | . | 110.000 | . | 3640 | 3750 | LE | FACT2 APL GIZMO | |
24 | . | 0.00 | 1 | 1 | . | 1 | . | 280.000 | . | 3470 | 3750 | LE | FACT2 MAR GIZMO | |
25 | . | -15.05 | 4 | 2 | . | . | 2 | 20.000 | . | 50 | 50 | LE | TOTAL BACKORDER |