The Network Solver (Experimental)

Functional Summary

Table 8.2 summarizes the options and suboptions available in the SOLVE WITH NETWORK statement.

Table 8.2: Functional Summary of SOLVE WITH NETWORK Options

Description

Option

     

Suboption

General Options

specifies directed or undirected graphs

GRAPH_DIRECTION=

includes self links in the graph definition

INCLUDE_SELFLINK=

specifies the iteration log frequency

LOGFREQ=

controls the amount of information that is displayed in the SAS log

LOGLEVEL=

specifies the maximum time spent calculating results

MAXTIME=

specifies whether time units are in CPU time or real time

TIMETYPE=

Input and Output Options

groups link-indexed data

LINKS=()

 

names a set of links to include in the graph definition even if no weights or bounds are available for them

 

INCLUDE=

 

specifies the flow lower bound for each link

 

LOWER=

 

specifies the flow upper bound for each link

 

UPPER=

 

specifies link weights

 

WEIGHT=

groups node-indexed data

NODES=()

 

names a set of nodes to include in the graph definition even if no weights are available for them

 

INCLUDE=

 

specifies node weights

 

WEIGHT=

specifies the input sets that enable you to solve a problem over a subgraph

SUBGRAPH=()

 

specifies the subset of links to use

 

LINKS=

 

specifies the subset of nodes to use

 

NODES=

specifies the output sets or arrays for each algorithm (see Table 8.4 for which OUT= suboptions you can specify for each algorithm)

OUT=()

 

specifies the output set for articulation points

 

ARTPOINTS=

 

specifies the output set for linear assignment

 

ASSIGNMENTS=

 

specifies the array to contain the biconnected component of each link

 

BICONCOMP=

 

specifies the output set for cliques

 

CLIQUES=

 

specifies the output array for connected components

 

CONCOMP=

 

specifies the output set for the cut-sets for minimum cuts

 

CUTSETS=

 

specifies the output set for cycles

 

CYCLES=

 

specifies the output array for the flow on each link

 

FLOW=

 

specifies the output set for the minimum spanning tree (forest)

 

FOREST=

 

specifies the output set for the links that remain after the SUBGRAPH= option is applied

 

LINKS=

 

specifies the output set for the nodes that remain after the SUBGRAPH= option is applied

 

NODES=

 

specifies the output array for the node order in the traveling salesman problem

 

ORDER=

 

specifies the output set for the partitions for minimum cuts

 

PARTITIONS=

 

specifies the set to contain the link sequence for each path

 

SPPATHS=

 

specifies the numeric array to contain the path weight for each source and sink node pair

 

SPWEIGHTS=

 

specifies the output set for the tour in the traveling salesman problem

 

TOUR=

 

specifies the set to contain the pairs $(u,v)$ of nodes where $v$ is reachable from $u$

 

TRANSCL=

Algorithm Options and Suboptions

finds biconnected components and articulation points of an undirected input graph

BICONCOMP

finds maximal cliques in the input graph

CLIQUE=

 

specifies the maximum number of cliques to return

 

MAXCLIQUES=

finds the connected components of the input graph

CONCOMP=

 

specifies the algorithm to use for calculating connected components

 

ALGORITHM=

finds the cycles (or the existence of a cycle) in the input graph

CYCLE=

 

specifies the maximum number of cycles to return

 

MAXCYCLES=

 

specifies the maximum link count for the cycles to return

 

MAXLENGTH=

 

specifies the maximum link weight for the cycles to return

 

MAXLINKWEIGHT=

 

specifies the maximum sum of node weights to allow in a cycle

 

MAXNODEWEIGHT=

 

specifies the minimum link count for the cycles to return

 

MINLENGTH=

 

specifies the minimum link weight for the cycles to return

 

MINLINKWEIGHT=

 

specifies the minimum node weight for the cycles to return

 

MINNODEWEIGHT=

 

specifies whether to stop after finding the first cycle

 

MODE=

solves the minimal-cost linear assignment problem

LINEAR_ASSIGNMENT

solves the minimum-cost network flow problem

MINCOSTFLOW

finds the minimum link-weighted cut of an input graph

MINCUT=

 

specifies the maximum number of cuts to return from the algorithm

 

MAXNUMCUTS=

 

specifies the maximum weight of each cut to return from the algorithm

 

MAXWEIGHT=

solves the minimum link-weighted spanning tree problem on an input graph

MINSPANTREE

calculates shortest paths between sets of nodes on the input graph

SHORTPATH=

 

specifies the type of output for shortest paths results

 

PATHS=

 

specifies the set of sink nodes

 

SINK=

 

specifies the set of source nodes

 

SOURCE=

 

specifies whether to use weights in calculating shortest paths

 

USEWEIGHT=

calculates the transitive closure of an input graph

TRANSITIVE_CLOSURE

solves the traveling salesman problem

TSP=

 

requests that the stopping criterion be based on the absolute objective gap

 

ABSOBJGAP=

 

specifies the level of conflict search

 

CONFLICTSEARCH=

 

specifies the cutoff value for branch-and-bound node removal

 

CUTOFF=

 

specifies the level of cutting planes to be generated by the network solver

 

CUTSTRATEGY=

 

emphasizes feasibility or optimality

 

EMPHASIS=

 

specifies the initial and primal heuristics level

 

HEURISTICS=

 

specifies the maximum number of branch-and-bound nodes to be processed

 

MAXNODES=

 

specifies the maximum number of feasible tours to be identified

 

MAXSOLS=

 

specifies whether to use a mixed integer linear programming solver

 

MILP=

 

specifies the branch-and-bound node selection strategy

 

NODESEL=

 

specifies the probing level

 

PROBE=

 

requests that the stopping criterion be based on relative objective gap

 

RELOBJGAP=

 

specifies the number of simplex iterations to be performed on each variable in the strong branching strategy

 

STRONGITER=

 

specifies the number of candidates for the strong branching strategy

 

STRONGLEN=

 

requests that the stopping criterion be based on the target objective value

 

TARGET=

 

specifies the rule for selecting branching variable

 

VARSEL=


Table 8.3 lists the valid GRAPH_DIRECTION= values for each algorithm option in the SOLVE WITH NETWORK statement.

Table 8.3: Supported Graph Directions by Algorithm

 

Direction

Algorithm

Undirected

Directed

BICONCOMP

x

 

CLIQUE

x

 

CONCOMP

x

x

CYCLE

x

x

LINEAR_ASSIGNMENT

 

x

MINCOSTFLOW

 

x

MINCUT

x

 

MINSPANTREE

x

 

SHORTPATH

x

x

TRANSITIVE_CLOSURE

x

x

TSP

x

 


Table 8.4 indicates, for each algorithm option in the SOLVE WITH NETWORK statement, which output options you can specify, and what their types can be. The types vary depending on whether nodes are of type STRING or NUMBER.

Table 8.4: Output Suboptions and Types by Algorithm

Algorithm Option

 

OUT= Suboption

OPTMODEL Type

BICONCOMP

 
 

ARTPOINTS=

SET<STRING> or SET<NUMBER>

 

BICONCOMP=

NUMBER indexed over links (<NUMBER,NUMBER> or <STRING,STRING>)

CLIQUE

 
 

CLIQUES=

SET<NUMBER,NUMBER> or SET<NUMBER,STRING>

CONCOMP

 
 

CONCOMP=

NUMBER indexed over nodes (NUMBER or STRING)

CYCLE

 
 

CYCLES=

SET<NUMBER,NUMBER,NUMBER> or SET<NUMBER,NUMBER,STRING>

LINEAR_ASSIGNMENT

 
 

ASSIGNMENTS=

SET<NUMBER,NUMBER> or SET<STRING,STRING>

MINCOSTFLOW

 
 

FLOW=

NUMBER indexed over links (<NUMBER,NUMBER> or <STRING,STRING>)

MINCUT

 
 

CUTSETS=

SET<NUMBER,NUMBER,NUMBER> or SET<NUMBER,STRING,STRING>

 

PARTITIONS=

SET<NUMBER,NUMBER> or SET<NUMBER,STRING>

MINSPANTREE

 
 

FOREST=

SET<NUMBER,NUMBER> or SET<STRING,STRING>

SHORTPATH

 
 

SPPATHS=

SET<NUMBER,NUMBER,NUMBER,NUMBER,NUMBER> or SET<STRING,STRING,NUMBER,STRING,STRING>

 

SPWEIGHTS=

NUMBER indexed over sink and source node pairs (<NUMBER,NUMBER> or <STRING,STRING>)

TRANSITIVE_CLOSURE

 
 

CLOSURE=

SET<NUMBER,NUMBER> or SET<STRING,STRING>

TSP

 
 

ORDER=

NUMBER indexed over nodes (NUMBER or STRING)

 

TOUR=

SET<NUMBER,NUMBER> or SET<STRING,STRING>