Example 4.4 Using Constraints and More Alteration to Arc Data

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?

title2 'Using Constraints and Altering arc data';
data new_arc4;
   set arc4;
   oldcost=_cost_;
   oldflow=_flow_;
   oldfc=_fcost_;
   if _tail_='f1_may_2' & (_head_='shop1_2' | _head_='shop2_2')
      then _cost_=_cost_-40;
   run;
proc intpoint
bytes=1000000 
printlevel2=2
arcdata=new_arc4 nodedata=node0
condata=con3 sparsecondata rhsobs='CHIP/BO LIMIT'
conout=arc5;
run;
title2 'Using Constraints and Altering arc data';
proc print data=arc5;
   var _tail_ _head_ _cost_ _capac_ _lo_ 
       _supply_ _demand_ _name_ _flow_ _fcost_ oldflow oldfc;
          /* to get this variable order */
   sum oldfc _fcost_;
run;

The following messages appear on the SAS log:

Production Planning/Inventory/Distribution
Using Constraints and Altering arc data

NOTE: Number of nodes= 20 .                                                        
NOTE: Number of supply nodes= 4 .                                                  
NOTE: Number of demand nodes= 4 .                                                  
NOTE: Total supply= 4350 , total demand= 4150 .                                    
NOTE: Number of arcs= 64 .                                                         
NOTE: Number of <= side constraints= 5 .                                           
NOTE: Number of == side constraints= 0 .                                           
NOTE: Number of >= side constraints= 0 .                                           
NOTE: Number of side constraint coefficients= 16 .                                 
NOTE: The following messages relate to the equivalent Linear Programming problem   
      solved by the Interior Point algorithm.                                      
NOTE: Number of <= constraints= 5 .                                                
NOTE: Number of == constraints= 21 .                                               
NOTE: Number of >= constraints= 0 .                                                
NOTE: Number of constraint coefficients= 152 .                                     
NOTE: Number of variables= 68 .                                                    
NOTE: After preprocessing, number of <= constraints= 5.                            
NOTE: After preprocessing, number of == constraints= 20.                           
NOTE: After preprocessing, number of >= constraints= 0.                            
NOTE: The preprocessor eliminated 1 constraints from the problem.                  
NOTE: The preprocessor eliminated 9 constraint coefficients from the problem.      
NOTE: 5 columns, 0 rows and 5 coefficients were added to the problem to handle     
      unrestricted variables, variables that are split, and constraint slack or    
      surplus variables.                                                           
NOTE: There are 74 sub-diagonal nonzeroes in the unfactored A Atranspose matrix.   
NOTE: The 25 factor nodes make up 17 supernodes                                    
NOTE: There are 88 nonzero sub-rows or sub-columns outside the supernodal          
      triangular regions along the factors leading diagonal.                       
 Iter  Complem_aff  Complem-ity  Duality_gap  Tot_infeasb  Tot_infeasc  Tot_infeasd
    0    -1.000000    201073760     0.894528        65408        35351        10995
    1     39022799     25967436     0.919693  4741.966761  2562.885742   256.192394
    2      5186078      1844990     0.589523            0            0     6.174556
    3       371920       320310     0.197224            0            0     1.074616
    4       151369        87643     0.060906            0            0     0.267952
    5        35115        25158     0.018017            0            0     0.072961
    6        14667  6194.354873     0.004475            0            0     0.005048
    7  2723.955063  2472.352937     0.001789            0            0     0.001714
    8  1028.390365   280.346187     0.000203            0            0     0.000235
    9    39.957867     5.611483  0.000004063            0            0            0
   10     0.014117     0.000291 9.492379E-11            0            0            0
NOTE: The Primal-Dual Predictor-Corrector Interior Point algorithm performed 10    
      iterations.                                                                  
NOTE: Optimum reached.                                                             
NOTE: Objective= -1295661.8.                                                       
NOTE: The data set WORK.ARC5 has 64 observations and 17 variables.                 
NOTE: There were 64 observations read from the data set WORK.NEW_ARC4.             
NOTE: There were 8 observations read from the data set WORK.NODE0.                 
NOTE: There were 21 observations read from the data set WORK.CON3.                 

Output 4.4.1 CONOUT=ARC5
Production Planning/Inventory/Distribution
Using Constraints and Altering arc data

Obs _tail_ _head_ _cost_ _capac_ _lo_ _SUPPLY_ _DEMAND_
1 fact1_1 f1_apr_1 78.60 600 50 1000 .
2 f1_mar_1 f1_apr_1 15.00 50 0 . .
3 f1_may_1 f1_apr_1 33.60 20 0 . .
4 f2_apr_1 f1_apr_1 11.00 40 0 . .
5 fact1_2 f1_apr_2 174.50 550 50 1000 .
6 f1_mar_2 f1_apr_2 20.00 40 0 . .
7 f1_may_2 f1_apr_2 49.20 15 0 . .
8 f2_apr_2 f1_apr_2 21.00 25 0 . .
9 fact1_1 f1_mar_1 127.90 500 50 1000 .
10 f1_apr_1 f1_mar_1 33.60 20 0 . .
11 f2_mar_1 f1_mar_1 10.00 40 0 . .
12 fact1_2 f1_mar_2 217.90 400 40 1000 .
13 f1_apr_2 f1_mar_2 38.40 30 0 . .
14 f2_mar_2 f1_mar_2 20.00 25 0 . .
15 fact1_1 f1_may_1 90.10 400 50 1000 .
16 f1_apr_1 f1_may_1 12.00 50 0 . .
17 f2_may_1 f1_may_1 13.00 40 0 . .
18 fact1_2 f1_may_2 113.30 350 40 1000 .
19 f1_apr_2 f1_may_2 18.00 40 0 . .
20 f2_may_2 f1_may_2 13.00 25 0 . .
21 f1_apr_1 f2_apr_1 11.00 99999999 0 . .
22 fact2_1 f2_apr_1 62.40 480 35 850 .
23 f2_mar_1 f2_apr_1 18.00 30 0 . .
24 f2_may_1 f2_apr_1 30.00 15 0 . .
25 f1_apr_2 f2_apr_2 23.00 99999999 0 . .
26 fact2_2 f2_apr_2 196.70 680 35 1500 .
27 f2_mar_2 f2_apr_2 28.00 50 0 . .
28 f2_may_2 f2_apr_2 64.80 15 0 . .
29 f1_mar_1 f2_mar_1 11.00 99999999 0 . .
30 fact2_1 f2_mar_1 88.00 450 35 850 .
31 f2_apr_1 f2_mar_1 20.40 15 0 . .
32 f1_mar_2 f2_mar_2 23.00 99999999 0 . .
33 fact2_2 f2_mar_2 182.00 650 35 1500 .
34 f2_apr_2 f2_mar_2 37.20 15 0 . .
35 f1_may_1 f2_may_1 16.00 99999999 0 . .
36 fact2_1 f2_may_1 128.80 250 35 850 .
37 f2_apr_1 f2_may_1 20.00 30 0 . .
38 f1_may_2 f2_may_2 26.00 99999999 0 . .
39 fact2_2 f2_may_2 181.40 550 35 1500 .
40 f2_apr_2 f2_may_2 38.00 50 0 . .
41 f1_mar_1 shop1_1 -327.65 250 0 . 900
42 f1_apr_1 shop1_1 -300.00 250 0 . 900
43 f1_may_1 shop1_1 -285.00 250 0 . 900
44 f2_mar_1 shop1_1 -297.40 250 0 . 900
45 f2_apr_1 shop1_1 -290.00 250 0 . 900
46 f2_may_1 shop1_1 -292.00 250 0 . 900
47 f1_mar_2 shop1_2 -559.76 99999999 0 . 900
48 f1_apr_2 shop1_2 -524.28 99999999 0 . 900
49 f1_may_2 shop1_2 -515.02 99999999 0 . 900
50 f2_mar_2 shop1_2 -567.83 500 0 . 900
51 f2_apr_2 shop1_2 -542.19 500 0 . 900
52 f2_may_2 shop1_2 -491.56 500 0 . 900
53 f1_mar_1 shop2_1 -362.74 250 0 . 900
54 f1_apr_1 shop2_1 -300.00 250 0 . 900
55 f1_may_1 shop2_1 -245.00 250 0 . 900
56 f2_mar_1 shop2_1 -272.70 250 0 . 900
57 f2_apr_1 shop2_1 -312.00 250 0 . 900
58 f2_may_1 shop2_1 -299.00 250 0 . 900
59 f1_mar_2 shop2_2 -623.89 99999999 0 . 1450
60 f1_apr_2 shop2_2 -549.68 99999999 0 . 1450
61 f1_may_2 shop2_2 -500.00 99999999 0 . 1450
62 f2_mar_2 shop2_2 -542.83 500 0 . 1450
63 f2_apr_2 shop2_2 -559.19 500 0 . 1450
64 f2_may_2 shop2_2 -519.06 500 0 . 1450

Production Planning/Inventory/Distribution
Using Constraints and Altering arc data

Obs _name_ _FLOW_ _FCOST_ oldflow oldfc
1 prod f1 19 apl 533.333 41920.00 533.333 41920.00
2   0.000 0.00 0.000 0.00
3 back f1 19 may 0.000 0.00 0.000 0.00
4   0.000 0.00 0.000 0.00
5 prod f1 25 apl 250.000 43625.00 250.000 43625.00
6   0.000 0.00 0.000 0.00
7 back f1 25 may 0.000 0.00 0.000 0.00
8   0.000 0.00 0.000 0.00
9 prod f1 19 mar 333.333 42633.33 333.333 42633.33
10 back f1 19 apl 20.000 672.00 20.000 672.00
11   40.000 400.00 40.000 400.00
12 prod f1 25 mar 400.000 87160.00 400.000 87160.00
13 back f1 25 apl 30.000 1152.00 30.000 1152.00
14   25.000 500.00 25.000 500.00
15   128.333 11562.83 128.333 11562.83
16   0.000 0.00 0.000 0.00
17   0.000 0.00 0.000 0.00
18   350.000 39655.00 350.000 39655.00
19   0.000 0.00 0.000 0.00
20   0.000 0.00 0.000 0.00
21   13.333 146.67 13.333 146.67
22 prod f2 19 apl 480.000 29952.00 480.000 29952.00
23   0.000 0.00 0.000 0.00
24 back f2 19 may 0.000 0.00 0.000 0.00
25   0.000 0.00 0.000 0.00
26 prod f2 25 apl 550.000 108185.00 577.500 113594.25
27   0.000 0.00 0.000 0.00
28 back f2 25 may 0.000 0.00 0.000 0.00
29   0.000 0.00 0.000 0.00
30 prod f2 19 mar 290.000 25520.00 290.000 25520.00
31 back f2 19 apl 0.000 0.00 0.000 0.00
32   0.000 0.00 0.000 0.00
33 prod f2 25 mar 650.000 118300.00 650.000 118300.00
34 back f2 25 apl 0.000 0.00 0.000 0.00
35   115.000 1840.00 115.000 1840.00
36   35.000 4508.00 35.000 4508.00
37   0.000 0.00 0.000 0.00
38   0.000 0.00 350.000 9100.00
39   150.000 27210.00 122.500 22221.50
40   0.000 0.00 0.000 0.00
41   143.333 -46963.17 143.333 -46963.16
42   250.000 -75000.00 250.000 -75000.00
43   13.333 -3800.00 13.333 -3800.00
44   250.000 -74350.00 250.000 -74350.00
45   243.333 -70566.67 243.333 -70566.67
46   0.000 0.00 0.000 0.00
47   0.000 0.00 0.000 0.00
48   0.000 0.00 0.000 0.00
49   350.000 -180257.00 0.000 0.00
50   500.000 -283915.00 500.000 -283915.00
51   50.000 -27109.50 400.000 -216876.00
52   0.000 0.00 0.000 0.00
53   250.000 -90685.00 250.000 -90685.00
54   250.000 -75000.00 250.000 -75000.00
55   0.000 0.00 0.000 0.00
56   0.000 0.00 0.000 0.00
57   250.000 -78000.00 250.000 -78000.00
58   150.000 -44850.00 150.000 -44850.00
59   455.000 -283869.95 455.000 -283869.95
60   220.000 -120929.60 220.000 -120929.60
61   0.000 0.00 0.000 0.00
62   125.000 -67853.75 125.000 -67853.75
63   500.000 -279595.00 177.500 -99256.23
64   150.000 -77859.00 472.500 -245255.85
      -1295661.80   -1282708.62