NO FRAMES

CPXpivotin

int CPXPUBLIC CPXpivotin(CPXCENVptr env, CPXLPptr lp, const int * rlist, int rlen)
Definition file: cplex.h
Include files: cplex.h
Note

This is an advanced routine. Advanced routines typically demand a profound understanding of the algorithms used by ILOG CPLEX. Thus they incur a higher risk of incorrect behavior in your application, behavior that can be difficult to debug. Therefore, ILOG encourages you to consider carefully whether you can accomplish the same task by means of other Callable Library routines instead.

The routine CPXpivotin forcibly pivots slacks that appear on a list of inequality rows into the basis. If equality rows appear among those specified on the list, they are ignored.

Motivation

In the implementation of cutting-plane algorithms for integer programming, it is occasionally desirable to delete some of the added constraints (that is, cutting planes) when they no longer appear to be useful. If the slack on some such constraint (that is, row) is not in the resident basis, the deletion of that row may destroy the quality of the basis. Pivoting the slack in before the deletion avoids that difficulty.

Dual Steepest-Edge Norms

If one of the dual steepest-edge algorithms is in use when this routine is called, the corresponding norms are automatically updated as part of the pivot. (Primal steepest-edge norms are not automatically updated in this way because, in general, the deletion of rows invalidates those norms.)

Parameters:

env

The pointer to the ILOG CPLEX environment, as returned by CPXopenCPLEX.

lp

A pointer to a CPLEX LP problem object, as returned by CPXcreateprob.

rlist

An array of length rlen, containing distinct row indices of slack variables that are not basic in the current solution. If rlist[] contains negative entries or entries exceeding the number of rows, CPXpivotin returns an error code. Entries of nonslack rows are ignored.

rlen

An integer that indicates the number of entries in the array rlist[]. If rlen is negative or greater than the number of rows, CPXpivotin returns an error code.

Returns:

The routine returns zero on success and nonzero if an error occurs.