The OPTGRAPH Procedure

Functional Summary

Table 2 summarizes the statements and options available with PROC OPTGRAPH.

Table 2: Functional Summary

Description Option
PROC OPTGRAPH Options
Input
Specifies the link data set DATA_LINKS=
Specifies the matrix data set DATA_MATRIX=
Specifies the node data set DATA_NODES=
Specifies the node subset data set DATA_NODES_SUB=
Output
Specifies the link output data set OUT_LINKS=
Specifies the node output data set OUT_NODES=
Options
Specifies the subgraph filter level FILTER_SUBGRAPH=
Specifies the graph direction GRAPH_DIRECTION=
Specifies the internal graph format GRAPH_INTERNAL_FORMAT=
Includes self links INCLUDE_SELFLINK
Specifies the overall log level LOGLEVEL=
Specifies whether time units are in CPU time or real time TIMETYPE=
Data Input Statements
DATA_LINKS_VAR Options
Specifies the data set variable name for the from nodes FROM=
Specifies the data set variable name for the link flow lower bounds LOWER=
Specifies the data set variable name for the to nodes TO=
Specifies the data set variable name for the link flow upper bounds UPPER=
Specifies the data set variable name for the link weights WEIGHT=
DATA_MATRIX_VAR
Specifies the data set variable names for the matrix
DATA_NODES_VAR Options
Specifies the data set variable name for cluster identifiers CLUSTER=
Specifies the data set variable name for the nodes NODE=
Specifies the data set variable name for node weights WEIGHT=
Specifies the data set variable name for auxiliary node weights WEIGHT2=
Algorithm Statements
BICONCOMP Option
Specifies the log level for biconnected components LOGLEVEL=
CENTRALITY Options
Calculates authority centrality and specifies the type to process AUTH=
Calculates betweenness centrality and specifies the type to process BETWEEN=
Specifies whether to normalize the betweenness calculation BETWEEN_NORM=
Decomposes the calculations for centrality by cluster (or subgraph) BY_CLUSTER
Calculates closeness centrality and specifies the type to process CLOSE=
Specifies the accounting method for no paths in closeness CLOSE_NOPATH=
Calculates the node clustering coefficients CLUSTERING_COEF
Calculates degree centrality and specifies the type to process DEGREE=
Calculates eigenvector centrality and specifies the type to process EIGEN=
Specifies the algorithm to use for eigenvector calculation EIGEN_ALGORITHM=
Specifies the maximum number of iterations for eigenvector calculation EIGEN_MAXITER=
Calculates hub centrality and specifies the type to process HUB=
Calculates influence centrality and specifies the type to process INFLUENCE=
Specifies the iteration log frequency (nodes) LOGFREQNODE=
Specifies the iteration log frequency (seconds) LOGFREQTIME=
Specifies the log level for centrality LOGLEVEL=
Specifies the subgraph node size to run separately SUBSIZESWITCH=
Specifies the data set variable to use for weight2 in centrality WEIGHT2=
CLIQUE Options
Specifies the log level for clique calculations LOGLEVEL=
Specifies the maximum number of cliques to return during clique calculations MAXCLIQUES=
Specifies the maximum amount of time to spend calculating cliques MAXTIME=
Specifies the output data set for cliques OUT=
COMMUNITY Options
Specifies the community detection algorithm ALGORITHM=
Specifies the percentage of small-weight links to be removed LINK_REMOVAL_RATIO=
Specifies the log level for community detection LOGLEVEL=
Specifies the maximum number of iterations for community detection MAXITER=
Specifies the output data set for inter-community links OUT_COMM_LINKS=
Specifies the output data set for community summary table OUT_COMMUNITY=
Specifies the output data set for community level summary table OUT_LEVEL=
Specifies the output data set for community overlap table OUT_OVERLAP=
Specifies the random factor in the parallel label propagation algorithm RANDOM_FACTOR=
Specifies the random seed for the parallel label propagation algorithm RANDOM_SEED=
Applies the recursive option to break large communities RECURSIVE
Specifies the resolution list for community detection RESOLUTION_LIST=
Specifies the modularity tolerance value for community detection TOLERANCE=
CONCOMP Options
Specifies the algorithm to use for connected components ALGORITHM=
Specifies the log level for connected components LOGLEVEL=
CORE Options
Specifies the type of core to process LINKS=
Specifies the log level for the core algorithm LOGLEVEL=
Specifies the maximum amount of time to spend in the core algorithm MAXTIME=
CYCLE Options
Specifies the log level for the cycle algorithm LOGLEVEL=
Specifies the maximum number of cycles to return during cycle calculations MAXCYCLES=
Specifies the maximum length for the cycles found MAXLENGTH=
Specifies the maximum link weight for the cycles found MAXLINKWEIGHT=
Specifies the maximum node weight for the cycles found MAXNODEWEIGHT=
Specifies the maximum amount of time to spend calculating cycles MAXTIME=
Specifies the minimum length for the cycles found MINLENGTH=
Specifies the minimum link weight for the cycles found MINLINKWEIGHT=
Specifies the minimum node weight for the cycles found MINNODEWEIGHT=
Specifies the mode for the cycle calculations MODE=
Specifies the output data set for cycles OUT=
EIGENVECTOR Options
Specifies the algebraic type of eigenvalues to calculate EIGENVALUES=
Specifies the log level for eigenvector calculations LOGLEVEL=
Specifies the maximum number of iterations for eigenvector calculation MAXITER=
Specifies the number of eigenvectors to calculate NEIGEN=
Specifies the output data set for eigenvectors OUT=
LINEAR_ASSIGNMENT Options
Specifies the data set variable names for the linear assignment identifiers ID=( )
Specifies the log level for the linear assignment algorithm LOGLEVEL=
Specifies the output data set for linear assignment OUT=
Specifies the data set variable names for costs (or weights) WEIGHT=( )
MINCOSTFLOW Options
Specifies the iteration log frequency LOGFREQ=
Specifies the log level for the minimum-cost network flow algorithm LOGLEVEL=
Specifies the maximum amount of time to spend calculating the optimal flow MAXTIME=
MINCUT Options
Specifies the log level for the minimum-cut algorithm LOGLEVEL=
Specifies the maximum number of cuts to return MAXNUMCUTS=
Specifies the maximum weight of the cuts to return MAXWEIGHT=
Specifies the output data set for minimum cut OUT=
MINSPANTREE Options
Specifies the log level for the minimum spanning tree algorithm LOGLEVEL=
Specifies the output data set for minimum spanning tree OUT=
REACH Options
Decomposes the calculations for reach by cluster (or subgraph) BY_CLUSTER
Calculates the directed reach counts DIGRAPH
Treats each node as a source in reach calculations EACH_SOURCE
Ignores the source node in reach counts IGNORE_SELF
Specifies the maximum number of links to allow in the reach calculations MAXREACH=
Specifies the iteration log frequency (seconds) LOGFREQTIME=
Specifies the log level for reach calculations LOGLEVEL=
Specifies the output data set for reach counts OUT_COUNTS=
Specifies the output data set for reach counts (limit=1) OUT_COUNTS1=
Specifies the output data set for reach counts (limit=2) OUT_COUNTS2=
Specifies the output data set for reach links OUT_LINKS=
Specifies the output data set for reach nodes OUT_NODES=
SHORTPATH Options
Specifies the iteration log frequency (nodes) LOGFREQ=
Specifies the log level for shortest paths LOGLEVEL=
Specifies the output data set for shortest paths OUT_PATHS=
Specifies the output data set for shortest path summaries OUT_WEIGHTS=
Specifies the type of output for shortest paths results PATHS=
Specifies the sink node for shortest paths calculations SINK=
Specifies the source node for shortest paths calculations SOURCE=
Specifies whether to use weights in calculating shortest paths USEWEIGHT=
Specifies the data set variable name for the auxiliary link weights WEIGHT2=
SUMMARY Options
Calculates information about biconnected components BICONCOMP
Decomposes the calculations for summary by cluster (or subgraph) BY_CLUSTER
Calculates information about connected components CONCOMP
Calculates the approximate diameter and chooses the weight type DIAMETER_APPROX=
Specifies the iteration log frequency (nodes) LOGFREQNODE=
Specifies the iteration log frequency (seconds) LOGFREQTIME=
Specifies the log level for summary calculations LOGLEVEL=
Specifies the output data set for summary results OUT=
Calculates information about shortest paths and chooses the weight type SHORTPATH=
Specifies the subgraph node size to run separately SUBSIZESWITCH=
TRANSITIVE_CLOSURE Options
Specifies the log level for transitive closure LOGLEVEL=
Specifies the output data set for transitive closure results OUT=
TSP Options
Specifies the stopping criterion 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 overall cut strategy level CUTSTRATEGY=
Emphasizes feasibility or optimality EMPHASIS=
Specifies the initial and primal heuristics level HEURISTICS=
Specifies the frequency of printing the branch-and-bound node log LOGFREQ=
Specifies the log level for the traveling salesman algorithm LOGLEVEL=
Specifies the maximum number of branch-and-bound nodes to be processed MAXNODES=
Specifies the maximum number of solutions to be found MAXSOLS=
Specifies the maximum amount of time to spend in the algorithm MAXTIME=
Specifies whether to use a mixed integer linear programming solver MILP=
Specifies the branch-and-bound node selection strategy NODESEL=
Specifies the output data set for traveling salesman problem OUT=
Specifies the probing level PROBE=
Specifies the stopping criterion based on the 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=
Specifies the stopping criterion based on the target objective value TARGET=
Specifies the rule for selecting branching variable VARSEL=


For more information about the options available for the PERFORMANCE statement, see the section PERFORMANCE Statement.

Table 3 lists the valid input formats, GRAPH_DIRECTION= values, and GRAPH_INTERNAL_FORMAT= values for each statement in the OPTGRAPH procedure.

Table 3: Supported Input Formats and Graph Types by Statement

Input Format DIRECTION INTERNAL_FORMAT
Statement Graph Matrix UNDIRECTED DIRECTED THIN FULL
BICONCOMP X X X
CENTRALITY
AUTH=, HUB= X X X
EIGEN= X X X
BETWEEN=, CLOSE=, X X X X
CLUSTERING_COEF,
DEGREE=,
INFLUENCE=,
CENTRALITY / BY_CLUSTER
AUTH=, HUB= X X X X
EIGEN= X X X X X
BETWEEN=, CLOSE= X X X X X
CLUSTERING_COEF,
DEGREE=,
INFLUENCE=,
CLIQUE X X X
COMMUNITY
ALGORITHM=
LOUVAIN, LABEL_PROP X X X X
PARALLEL_LABEL_PROP X X X X X
CONCOMP
ALGORITHM=
DFS X X X X
UNION_FIND X X X X
CORE X X X X
CYCLE X X X X
EIGENVECTOR X X X X
LINEAR_ASSIGNMENT X X X X
MINCOSTFLOW X X X X
MINCUT X X X
MINSPANTREE X X X X
REACH X X X X
REACH / BY_CLUSTER X X X X X
SHORTPATH X X X X
SUMMARY X X X X
SUMMARY / BY_CLUSTER X X X X X
TRANSITIVE_CLOSURE X X X X
TSP X X X X


Table 4 indicates for each algorithm statement in the OPTGRAPH procedure which output data set options you can specify and whether the algorithm populates the data sets specified in the OUT_NODES= and OUT_LINKS= options in the PROC OPTGRAPH statement.

Table 4: Output Options by Statement

Statement OUT_NODES OUT_LINKS Algorithm Statement Options
BICONCOMP X X
CENTRALITY
AUTH=, CLOSE=, X
CLUSTERING_COEF,
DEGREE=, EIGEN=, HUB=,
INFLUENCE=
BETWEEN= X X
CLIQUE OUT=
COMMUNITY
ALGORITHM=
LOUVAIN, LABEL_PROP, X OUT_COMM_LINKS=,
PARALLEL_LABEL_PROP OUT_COMMUNITY=,
OUT_LEVEL=,
OUT_OVERLAP=
CONCOMP X
CORE X
CYCLE OUT=
EIGENVECTOR OUT=
LINEAR_ASSIGNMENT OUT=
MINCOSTFLOW X
MINCUT X OUT=
MINSPANTREE OUT=
REACH OUT_COUNTS=, OUT_LINKS=,
OUT_NODES=
BY_CLUSTER OUT_COUNTS=, OUT_NODES=
BY_CLUSTER and EACH_SOURCE OUT_COUNTS1=,
OUT_COUNTS2=
SHORTPATH OUT_PATHS=, OUT_WEIGHTS=
SUMMARY X OUT=
TRANSITIVE_CLOSURE OUT=
TSP X OUT=


Last updated: November 04, 2020