The Network Solver

Numeric Limitations

Extremely large or extremely small numerical values might cause computational difficulties for some of the algorithms in the network solver. For this reason, each algorithm restricts the magnitude of the data values to a particular threshold number. If the user data values exceed this threshold, the network solver issues an error message. The value of the threshold limit is different for each algorithm and depends on the operating environment. The threshold limits are listed in Table 9.20, where M is defined as the largest absolute value representable in your operating environment.

Table 9.20: Threshold Limits by Algorithm

 

Graph Links

Graph Nodes

Algorithm

weight

weight2

lower

upper

weight

weight2

CYCLE

$\sqrt {M}$

     

$\sqrt {M}$

 

LINEAR_ASSIGNMENT

$\sqrt {M}$

         

MINCOSTFLOW

1e15

 

1e15

1e15

1e15

1e15

MINCUT

$\sqrt {M}$

         

MINSPANTREE

$\sqrt {M}$

         

SHORTPATH

$\sqrt {M}$

$\sqrt {M}$

       

TSP

1e20

         


To obtain these limits, use the SAS CONSTANT function. For example, the following PROC OPTMODEL code assigns $\sqrt {M}$ to a variable x and prints that value to the log:

proc optmodel;
   num c = constant('SQRTBIG');
   put c=;
quit;

Missing Values

A missing value has no valid interpretation for most of the algorithms in the network solver. If the user data contain a missing value, the network solver issues an error message. There is only one exception: the minimum-cost network flow algorithm interprets a missing value in the lower or upper bound option as the default bound value. For more information about this algorithm, see the section Minimum-Cost Network Flow.

Negative Link Weights

For certain algorithms in the network solver, a negative link weight is not allowed. The following algorithms issue an error message if a negative link weight is provided: