The OPTNET Procedure

LINEAR_ASSIGNMENT Statement

LINEAR_ASSIGNMENT < options > ;

LAP < options > ;

The LINEAR_ASSIGNMENT statement invokes an algorithm that 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 graph. The input data (the cost matrix) is typically defined in the input data set that is specified in the DATA_MATRIX= option in the PROC OPTNET statement. The data can also be defined as a directed graph by specifying the DATA_LINKS= option in the PROC OPTNET statement, where the costs are defined as link weights. Internally, the graph is treated as a bipartite graph in which the from nodes define one part and the to nodes define the other part.

The linear assignment problem is described in the section Linear Assignment (Matching).

You can specify the following options in the LINEAR_ASSIGNMENT statement:

ID=(column1 <,column2,...>)

specifies the data set variable names that identify the matrix rows (from nodes). The information in these columns is carried to the output data set that is specified in the OUT= option. The value of each column variable can be numeric or character.

LOGLEVEL=number | string

controls the amount of information that is displayed in the SAS log. Table 2.15 describes the valid values for this option.

Table 2.15: Values for LOGLEVEL= Option

number

string

Description

0

NONE

Turns off all algorithm-related messages in the SAS log

1

BASIC

Displays a basic summary of the algorithmic processing

2

MODERATE

Displays a summary of the algorithmic processing

3

AGGRESSIVE

Displays a detailed summary of the algorithmic processing


The default is the value that is specified in the LOGLEVEL= option in the PROC OPTNET statement (or BASIC if that option is not specified).

OUT=SAS-data-set

specifies the output data set to contain the solution to the linear assignment problem.

WEIGHT=(column1 <,column2,...>)

specifies the data set variable names for the cost matrix. The value of each column variable must be numeric. If this option is not specified, the matrix is assumed to be defined by all of the numeric variables in the data set (excluding those specified in the ID= option).