Previous Page | Next Page

The CLP Procedure

PROC CLP Statement

PROC CLP option(s) ;

The following options can appear in the PROC CLP statement.

ACTDATA= SAS-data-set
ACTIVITY=SAS-data-set

identifies the input data set that defines the activities and temporal constraints. The temporal constraints consist of time alignment-type constraints and precedence-type constraints. The format of the ACTDATA= data set is similar to that of the Activity data set used by the CPM procedure in SAS/OR software. The activities and time alignment constraints can also be directly specified using the ACTIVITY statement without the need for a data set. The CLP procedure enables you to define activities by using a combination of the two specifications.

CONDATA= SAS-data-set

identifies the input data set that defines the linear constraints, variable types, and variable bounds. The format of the CONDATA= data set is similar to that of the DATA= data set used by the LP procedure in SAS/OR software. The linear constraints can also be specified in-line using the LINCON statement. The CLP procedure enables you to define linear constraints by using a combination of the two specifications. When defining linear constraints, you must define the structural variables by using a VAR statement. Note that variable bounds can be defined using the VAR statement, and any such definitions override those defined in the CONDATA= data set.

DM= m
DEM=m

specifies the dead-end multiplier for the CSP. The dead-end multiplier is used to determine the number of dead ends that are permitted before triggering a complete restart of the search technique in a scheduling environment. The number of dead ends is the product of the dead-end multiplier and the number of unassigned activities. The default value is 0.15. This option is valid only with the SCHEDDATA= option.

DOMAIN= [lb, ub]
DOM=[lb, ub]

specifies the global domain of all variables to be the closed interval [lb, ub]. You can override the global domain for a variable with a VAR statement or the CONDATA= data set. The default is [0,].

DPR= n

specifies an upper bound on the number of dead ends that are permitted before PROC CLP restarts or terminates the search, depending on whether or not a randomized search strategy is used. In the case of a nonrandomized strategy, n is an upper bound on the number of allowable dead ends before terminating. In the case of a randomized strategy, n is an upper bound on the number of allowable dead ends before restarting the search. The DPR= option has priority over the DM= option. The default value of the DPR= option is .


FINDALLSOLNS
ALLSOLNS
FINDALL

attempts to find all possible solutions to the CSP. When a randomized search strategy is used, it is possible to rediscover the same solution and end up with multiple instances of the same solution. This is currently the case when you are solving scheduling-related problems. Therefore, this option is ignored when you are solving a scheduling-related problem.

MAXTIME= m

specifies an upper bound on the number of CPU seconds allocated for solving the problem. Note that the time specified by the MAXTIME= option is checked only once at the end of each iteration. Therefore, the actual running time can be longer than that specified by the MAXTIME= option. The difference depends on how long the last iteration takes. If you do not specify this option, the procedure does not stop based on the amount of time elapsed.

NOPREPROCESS

suppresses any preprocessing that would typically be performed for the problem.

OUT= SAS-data-set

identifies the output data set that contains the solution(s) to the CSP, if any exist(s). Each observation in the OUT= data set corresponds to a solution of the CSP. The number of solutions generated can be controlled using the SOLNS= option in the PROC CLP statement.

RESTARTS= n

specifies the number of restarts of the randomized search technique before terminating the procedure. The default value is 3.

SCHEDDATA= SAS-data-set
SCHEDULE=SAS-data-set

identifies the output data set that contains the scheduling-related solution to the CSP, if one exists. Each observation in the SCHEDDATA= data set corresponds to an activity. The format of the schedule data set is similar to the schedule data set generated by the CPM and PM procedures in SAS/OR software. The number of solutions generated can be controlled using the SOLNS= option in the PROC CLP statement.

SHOWPROGRESS

prints a message to the log whenever a solution has been found. When a randomized strategy is used, the number of restarts and dead ends that were required are also printed to the log.

SOLNS= n

specifies the number of solution attempts to be generated for the CSP. The default value is 1. It is important to note, especially in the context of randomized strategies, that an attempt could result in no solution, given the current controls on the search mechanism, such as the number of restarts and the number of dead ends permitted. As a result, the total number of solutions found might not match the SOLNS= parameter.

VARASSIGN= keyword

specifies the value selection strategy. Currently there is only one value selection strategy. The MIN strategy selects the minimum value from the domain of the selected variable. To assign activities, use the ACTASSIGN= option in the SCHEDULE statement.

VARSELECT= keyword

specifies the variable selection strategy. Both static and dynamic strategies are available. Possible values follow.

Static strategies are as follows:

  • FIFO, which uses the first-in-first-out ordering of the variables as encountered by the procedure

  • MAXCS, which selects the variable with the maximum number of constraints

Dynamic strategies are as follows:

  • MINR, which selects the variable with the smallest range (that is, the minimum value of upper bound minus lower bound)

  • MAXC, which selects the variable with the largest number of active constraints

  • MINRMAXC, which selects the variable with the smallest range, breaking ties by selecting one with the largest number of active constraints

The dynamic strategies embody the "Fail First Principle" (FFP) of Haralick and Elliot (1980), which suggests that "To succeed, try first where you are most likely to fail." The default strategy is MINR. To select activities, use the ACTSELECT= option in the SCHEDULE statement.


Note: This procedure is experimental.

Previous Page | Next Page | Top of Page