The INTPOINT Procedure

Typical PROC INTPOINT Run

You start PROC INTPOINT by giving the PROC INTPOINT statement. You can specify many options in the PROC INTPOINT statement to control the procedure, or you can rely on default settings and specify very few options. However, there are some options you must specify:

  • You must specify the BYTES= parameter indicating the size of the working memory that the procedure is allowed to use. This option has no default.

  • In many instances (and certainly when solving NPSC problems), you need to specify the ARCDATA= data set. This option has a default (which is the SAS data set that was created last before PROC INTPOINT began running), but that may need to be overridden.

  • The CONDATA= data set must also be specified if the problem is NPSC and has side constraints, or if it is an LP problem.

  • When solving a network problem, you have to specify the NODEDATA= data set, if some model data are given in such a data set.

Some options, while optional, are frequently required. To have the optimal solution output to a SAS data set, you have to specify the CONOUT= data set. You may want to indicate reasons why optimization should stop (for example, you can indicate the maximum number of iterations that can be performed), or you might want to alter stopping criteria so that optimization does not stop prematurely. Some options enable you to control other aspects of the interior point algorithm. Specifying certain values for these options can reduce the time it takes to solve a problem.

The SAS variable lists should be given next. If you have SAS variables in the input data sets that have special names (for example, a SAS variable in the ARCDATA= data set named _TAIL_ that has tail nodes of arcs as values), it may not be necessary to have many or any variable lists. If you do not specify a TAIL variable list, PROC INTPOINT will search the ARCDATA= data set for a SAS variable named _TAIL_.

What usually follows is a RUN statement, which indicates that all information that you, the user, need to supply to PROC INTPOINT has been given, and the procedure is to start running. This also happens if you specify a statement in your SAS program that PROC INTPOINT does not recognize as one of its own, the next DATA step or procedure.

The QUIT statement indicates that PROC INTPOINT must immediately finish.

For example, a PROC INTPOINT run might look something like this:

   proc intpoint
       bytes=   /* working memory size */
       arcdata= /* data set */
       condata= /* data set */
       /* other options */
   ;
   variable list specifications;  /* if necessary */
   run;     /* start running, read data, */
            /* and do the optimization.  */