Overview | Group | Tree | Graph | Index | Concepts |
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 CPXmdleave
assumes that there is a resident
optimal simplex basis, and a resident LU-factorization associated with this
basis. It takes as input a list of basic variables as specified by
goodlist[]
and goodlen
, and returns values
commonly known as Driebeek penalties in the two arrays
downratio[]
and upratio[]
.
For a given j = goodlist[i], downratio[i] has the following meaning. Let
xj be the name of the basic variable with index j, and
suppose that xj is fixed to some value t' < t. In a
subsequent call to CPXdualopt
, the leaving variable in the
first iteration of this call is uniquely determined: It must be xj.
There are then two possibilities. Either an entering variable is
determined, or it is concluded (in the first iteration) that the changed
model is dual unbounded (primal infeasible). In the latter case,
downratio[i]
is set equal to a large positive value (this
number is system dependent, but is usually 1.0E+75). In the former
case, where r is the value of the objective function after this one
iteration, downratio[i]
is determined by |r| = (t - t') *
downratio[i]
.
env | A pointer to the CPLEX environment, as returned by |
lp | A pointer to a CPLEX LP problem object, as returned by |
goodlist | An array of integers that must be of length at least |
goodlen | An integer indicating the number of entries in |
downratio | An array of type |
upratio | An array of type double that must be of length at least |