finds biconnected components and articulation points of an undirected input graph. For more information, see the section Biconnected Components and Articulation Points.
finds maximal cliques in the input graph. For more information, see the section Clique.
You can specify the following suboption:
finds the connected components of the input graph. For more information, see the section Connected Components.
You can specify the following suboption:
specifies the algorithm to use for calculating connected components. Table 9.8 describes the valid values for this option.
Table 9.8: Values for the ALGORITHM= Option
Option Value |
Description |
---|---|
DFS |
Uses the depth-first search algorithm for connected components. |
UNION_FIND |
Uses the union-find algorithm for connected components. You can use ALGORITHM=UNION_FIND only with undirected graphs. |
By default, ALGORITHM=UNION_FIND for undirected graphs, and ALGORITHM=DFS for directed graphs.
finds the cycles (or the existence of a cycle) in the input graph. For more information, see the section Cycle.
You can specify the following suboptions in the CYCLE= option:
specifies the maximum number of cycles to return. The default is the positive number that has the largest absolute value that can be represented in your operating environment. This option works only when you also specify MODE=ALL_CYCLES.
specifies the maximum number of links to allow in a cycle. Any cycle whose length is greater than number is removed from the results. The default is the positive number that has the largest absolute value that can be represented in your operating environment. By default, nothing is removed from the results. This option works only when you also specify MODE=ALL_CYCLES.
specifies the maximum sum of link weights to allow in a cycle. Any cycle whose sum of link weights is greater than number is removed from the results. The default is the positive number that has the largest absolute value that can be represented in your operating environment. By default, nothing is filtered. This option works only when you also specify MODE=ALL_CYCLES.
specifies the maximum sum of node weights to allow in a cycle. Any cycle whose sum of node weights is greater than number is removed from the results. The default is the positive number that has the largest absolute value that can be represented in your operating environment. By default, nothing is filtered. This option works only when you also specify MODE=ALL_CYCLES.
specifies the minimum number of links to allow in a cycle. Any cycle that has fewer links than number is removed from the results. The default is 1. By default, only self-loops are filtered. This option works only when you also specify MODE=ALL_CYCLES.
specifies the minimum sum of link weights to allow in a cycle. Any cycle whose sum of link weights is less than number is removed from the results. The default the negative number that has the largest absolute value that can be represented in your operating environment. By default, nothing is filtered. This option works only when you also specify MODE=ALL_CYCLES.
specifies the minimum sum of node weights to allow in a cycle. Any cycle whose sum of node weights is less than number is removed from the results. The default is the negative number that has the largest absolute value that can be represented in your operating environment. By default, nothing is filtered. This option works only when you also specify MODE=ALL_CYCLES.
specifies whether to stop after finding the first cycle. Table 9.9 describes the valid values for this option.
Table 9.9: Values for the MODE= Option
Option Value |
Description |
---|---|
ALL_CYCLES |
Returns all (unique, elementary) cycles found. |
FIRST_CYCLE |
Returns the first cycle found. |
By default, MODE=FIRST_CYCLE.
solves the minimal-cost linear assignment problem. In graph terms, this problem is also known as the minimum link-weighted matching problem on a bipartite directed graph. The input data (the cost matrix) is defined as a directed graph by specifying the LINKS= option in the SOLVE WITH NETWORK statement, where the costs are defined as link weights. Internally, the graph is treated as a bipartite directed graph.
For more information, see the section Linear Assignment (Matching).
solves the minimum-cost network flow problem.
For more information, see the section Minimum-Cost Network Flow.
finds the minimum link-weighted cut of an input graph. For more information, see the section Minimum Cut. You can specify the following suboptions in the MINCUT= option:
specifies the maximum number of cuts to return from the algorithm. The minimal cut and any others found during the search, up to number, are returned. By default, MAXNUMCUTS=1.
specifies the maximum weight of the cuts to return from the algorithm. Only cuts that have weight less than or equal to number are returned. The default is the positive number that has the largest absolute value that can be represented in your operating environment.
solves the minimum link-weighted spanning tree problem on an input graph. For more information, see the section Minimum Spanning Tree.
calculates shortest paths between sets of nodes on the input graph. For more information, see the section Shortest Path.
You can specify the following suboptions:
specifies the type of output for shortest paths results.
Table 9.10 lists the valid values for this suboption.
Table 9.10: Values for the PATHS= Option
Option Value |
Description |
---|---|
ALL |
Outputs shortest paths for all pairs of source-sinks. |
LONGEST |
Outputs shortest paths for the source-sink pair that has the longest (finite) length. If other source-sink pairs (up to 100) have equally long length, they are also output. |
SHORTEST |
Outputs shortest paths for the source-sink pair that has the shortest length. If other source-sink pairs (up to 100) have equally short length, they are also output. |
By default, SHORTPATH=ALL.
specifies whether to use weights in calculating shortest paths as listed in Table 9.11.
Table 9.11: Values for USEWEIGHT= Option
Option Value |
Description |
---|---|
YES |
Uses weights (if they exist) in shortest path calculations. |
NO |
Does not use weights in shortest path calculations. |
By default, USEWEIGHT=YES.
calculates the transitive closure of an input graph. For more information, see the section Transitive Closure.
solves the traveling salesman problem. For more information, see the section Traveling Salesman Problem.
The algorithm that is used to solve this problem is built around the same method as is used in PROC OPTMILP: a branch-and-cut algorithm. Many of the following suboptions are the same as those described for the OPTMILP procedure in the SAS/OR User's Guide: Mathematical Programming.
You can specify the following suboptions:
specifies a stopping criterion. When the absolute difference between the best integer objective and the objective of the best remaining branch-and-bound node becomes less than the value of number, the solver stops. The value of number can be any nonnegative number. By default, ABSOBJGAP=1E–6.
specifies the level of conflict search that the network solver performs. The solver performs a conflict search to find clauses that result from infeasible subproblems that arise in the search tree. Table 9.12 describes the valid values for this option.
Table 9.12: Values for CONFLICTSEARCH= Option
number |
string |
Description |
---|---|---|
–1 |
AUTOMATIC |
Performs a conflict search based on a strategy that is determined by the network solver |
0 |
NONE |
Disables conflict search |
1 |
MODERATE |
Performs a moderate conflict search |
2 |
AGGRESSIVE |
Performs an aggressive conflict search |
By default, CONFLICTSEARCH=AUTOMATIC.
cuts off any branch-and-bound nodes in a minimization problem that has an objective value that is greater than number. The value of number can be any number.
The default value is the positive number that has the largest absolute value that can be represented in your operating environment.
specifies the level of cutting planes to be generated by the network solver. TSP-specific cutting planes are always generated. Table 9.13 describes the valid values for this option.
Table 9.13: Values for CUTSTRATEGY= Option
number |
string |
Description |
---|---|---|
–1 |
AUTOMATIC |
Generates cutting planes based on a strategy determined by the mixed integer linear programming solver |
0 |
NONE |
Disables generation of mixed integer programming cutting planes (some TSP-specific cutting planes are still active for validity) |
1 |
MODERATE |
Uses a moderate cut strategy |
2 |
AGGRESSIVE |
Uses an aggressive cut strategy |
By default, CUTSTRATEGY=NONE.
specifies a search emphasis option. Table 9.14 describes the valid values for this option.
Table 9.14: Values for EMPHASIS= Option
number |
string |
Description |
---|---|---|
0 |
BALANCE |
Performs a balanced search |
1 |
OPTIMAL |
Emphasizes optimality over feasibility |
2 |
FEASIBLE |
Emphasizes feasibility over optimality |
By default, EMPHASIS=BALANCE.
controls the level of initial and primal heuristics that the network solver applies. This level determines how frequently the network solver applies primal heuristics during the branch-and-bound tree search. It also affects the maximum number of iterations that are allowed in iterative heuristics. Some computationally expensive heuristics might be disabled by the solver at less aggressive levels. Table 9.15 lists the valid values for this option.
Table 9.15: Values for HEURISTICS= Option
number |
string |
Description |
---|---|---|
–1 |
AUTOMATIC |
Applies the default level of heuristics |
0 |
NONE |
Disables all initial and primal heuristics |
1 |
BASIC |
Applies basic initial and primal heuristics at low frequency |
2 |
MODERATE |
Applies most initial and primal heuristics at moderate frequency |
3 |
AGGRESSIVE |
Applies all initial primal heuristics at high frequency |
By default, HEURISTICS=AUTOMATIC.
specifies the maximum number of branch-and-bound nodes to be processed. The value of number can be any nonnegative integer up to the largest four-byte signed integer, which is .
By default, MAXNODES=.
specifies the maximum number of feasible tours to be identified. If number solutions have been found, then the solver stops. The value of number can be any positive integer up to the largest four-byte signed integer, which is .
By default, MAXSOLS=.
specifies whether to use a mixed integer linear programming (MILP) solver for solving the traveling salesman problem. The MILP solver attempts to find the overall best TSP tour by using a branch-and-bound based algorithm. This algorithm can be expensive for large-scale problems. If MILP=OFF, then the network solver uses its initial heuristics to find a feasible, but not necessarily optimal, tour as quickly as possible. Table 9.16 describes the valid values for this option.
Table 9.16: Values for MILP= Option
number |
string |
Description |
---|---|---|
1 |
ON |
Uses a mixed integer linear programming solver |
0 |
OFF |
Does not use a mixed integer linear programming solver |
By default, MILP=ON
specifies the branch-and-bound node selection strategy option. For more information about node selection, see Chapter 13: The OPTMILP Procedure. Table 9.17 describes the valid values for this option.
Table 9.17: Values for NODESEL= Option
number |
string |
Description |
---|---|---|
–1 |
AUTOMATIC |
Uses automatic node selection |
0 |
BESTBOUND |
Chooses the node that has the best relaxed objective (best-bound-first strategy) |
1 |
BESTESTIMATE |
Chooses the node that has the best estimate of the integer objective value (best-estimate-first strategy) |
2 |
DEPTH |
Chooses the most recently created node (depth-first strategy) |
By default, NODESEL=AUTOMATIC.
specifies a probing option. Table 9.18 describes the valid values for this option.
Table 9.18: Values for PROBE= Option
number |
string |
Description |
---|---|---|
–1 |
AUTOMATIC |
Uses an automatic probing strategy |
0 |
NONE |
Disables probing |
1 |
MODERATE |
Uses the probing moderately |
2 |
AGGRESSIVE |
Uses the probing aggressively |
By default, PROBE=NONE.
specifies a stopping criterion that is based on the best integer objective (BestInteger) and the objective of the best remaining node (BestBound). The relative objective gap is equal to
When this value becomes less than the specified gap size number, the solver stops. The value of number can be any nonnegative number.
By default, RELOBJGAP=1E–4.
specifies the number of simplex iterations that the network solver performs for each variable in the candidate list when it uses the strong branching variable selection strategy. The value of number can be any positive integer up to the largest four-byte signed integer, which is . If you specify the keyword AUTOMATIC or the value –1, the network solver uses the default value, which it calculates automatically.
specifies the number of candidates that the network solver considers when it uses the strong branching variable selection strategy. The value of number can be any positive integer up to the largest four-byte signed integer, which is . If you specify the keyword AUTOMATIC or the value –1, the network solver uses the default value, which it calculates automatically.
specifies a stopping criterion for minimization problems. If the best integer objective is better than or equal to number, the solver stops. The value of number can be any number.
By default, TARGET is the negative number that has the largest absolute value that can be represented in your operating environment.
specifies the rule for selecting the branching variable. For more information about variable selection, see Chapter 13: The OPTMILP Procedure. Table 9.19 describes the valid values for this option.
Table 9.19: Values for VARSEL= Option
number |
string |
Description |
---|---|---|
–1 |
AUTOMATIC |
Uses automatic branching variable selection |
0 |
MAXINFEAS |
Chooses the variable that has maximum infeasibility |
1 |
MININFEAS |
Chooses the variable that has minimum infeasibility |
2 |
PSEUDO |
Chooses a branching variable based on pseudocost |
3 |
STRONG |
Uses the strong branching variable selection strategy |
By default, VARSEL=AUTOMATIC.