The LP Procedure 
Often managers want to evaluate the cost of making a choice among alternatives. In particular, they want to make the most profitable choice. Suppose that only one oil crude can be used in the production process. This identifies a set of variables of which only one can be above its lower bound. This additional restriction could be included in the model by adding a binary integer variable for each of the three crudes. Constraints would be needed that would drive the appropriate binary variable to 1 whenever the corresponding crude is used in the production process. Then a constraint limiting the total of these variables to only one would be added. A similar formulation for a fixed charge problem is shown in Example 5.8.
The SOSLE type implicitly does this. The following DATA step adds a row to the model that identifies which variables are in the set. The SOSLE type tells the LP procedure that only one of the variables in this set can be above its lower bound. If you use the SOSEQ type, it tells PROC LP that exactly one of the variables in the set must be above its lower bound. Only integer variables can be in an SOSEQ set.
data special; format _type_ $6. _col_ $14. _row_ $8. ; input _type_ $ _col_ $ _row_ $ _coef_; datalines; SOSLE . special . . arabian_light special 1 . arabian_heavy special 1 . brega special 1 ; data; set oil special; run;
proc lp sparsedata; run;
Output 5.6.1 includes an Integer Iteration Log. This log shows the progress that PROC LP is making in solving the problem. This is discussed in some detail in Example 5.8.
Problem Summary  

Objective Function  Max profit 
Rhs Variable  _rhs_ 
Type Variable  _type_ 
Problem Density (%)  45.00 
Variables  Number 
Nonnegative  5 
Upper Bounded  3 
Total  8 
Constraints  Number 
EQ  5 
Objective  1 
Total  6 
Integer Iteration Log  

Iter  Problem  Condition  Objective  Branched  Value  Sinfeas  Active  Proximity 
1  0  ACTIVE  1544  arabian_light  110  0  2  . 
2  1  SUBOPTIMAL  1276  .  .  .  1  268 
3  1  FATHOMED  268  .  .  .  0  . 
Solution Summary  

Integer Optimal Solution 

Objective Value  1276 
Phase 1 Iterations  0 
Phase 2 Iterations  5 
Phase 3 Iterations  0 
Integer Iterations  3 
Integer Solutions  1 
Initial Basic Feasible Variables  5 
Time Used (seconds)  0 
Number of Inversions  5 
Epsilon  1E8 
Infinity  1.797693E308 
Maximum Phase 1 Iterations  100 
Maximum Phase 2 Iterations  100 
Maximum Phase 3 Iterations  99999999 
Maximum Integer Iterations  100 
Time Limit (seconds)  120 
Variable Summary  

Col  Variable Name  Status  Type  Price  Activity  Reduced Cost 
1  arabian_heavy  UPPERBD  165  0  21.45  
2  arabian_light  UPPBD  UPPERBD  175  110  11.6 
3  brega  UPPERBD  205  0  3.35  
4  heating_oil  BASIC  NONNEG  0  42.9  0 
5  jet_1  BASIC  NONNEG  300  33.33  0 
6  jet_2  BASIC  NONNEG  300  35.09  0 
7  naphtha_inter  BASIC  NONNEG  0  11  0 
8  naphtha_light  BASIC  NONNEG  0  3.85  0 
The solution shows that only the ARABIAN_LIGHT crude is purchased. The requirement that only one crude be used in the production is met, and the profit is 1276. This tells you that the value of purchasing crude from an additional source, namely BREGA, is worth 1544 1276 = 268.
Copyright © SAS Institute, Inc. All Rights Reserved.