SPxBasis::Desc Class Reference Basis descriptor. More...
Detailed DescriptionBasis descriptor. Definition at line 104 of file spxbasis.h. Member Enumeration Documentation
Status of a variable. A basis is described by assigning a Status to all of the LP variables and covariables. This assignment is maintained by the basis Descriptor. Variables and covariables may have a primal or dual Status. The first type specifies that a variable is set on a primal bound, while the latter type indicates a dual variable to be set on a bound. If a row variable has a primal status, say P_ON_UPPER, this means that the upper bound of the inequality is set to be tight. Hence, in this case the upper bound must not be infinity. Equivalently, if the status of a variable is dual, say D_ON_UPPER, it means that the dual variable corresponding to the upper bound inequality of this variable is set to 0. For a column basis, primal Statuses correspond to nonbasic variables, while dual ones are basic. This is reversed for a row basis. We will now reveal in more detail the significance of variable Statuses. Primal Variables Consider a range inequality
Note that to determine whether a variable with #Status stat is set to its upper bound, one can compute the test (-stat | -#P_ON_UPPER). This will yield true even if the variable is fixed, i.e., sitting on both bounds at the same time. <b>Dual Variables</b> In principle for implementing the Simplex algorithm it would suffice to use only one dual #Status. However, for performance reasons it is advisable to introduce various dual status types, reflecting the structure of the bounds. Given an upper bound \form#55 and a lower bound \form#56 of a constraint or variable, the following table indicates the setting of the dual Status of this variable.
Note that unbounded primal variables are reflected by an #D_UNDEFINED dual variable, since no dual variables exist for them. To facilitate the assignment of dual #Status%es, class SPxBasis provides methods #dualStatus(), #dualColStatus() and #dualRowStatus)(). Definition at line 185 of file spxbasis.h. Constructor & Destructor Documentation
default constructor Definition at line 316 of file spxbasis.h. References SPxBasis::Desc::operator=(). Definition at line 25 of file spxdesc.cpp. References SPxBasis::Desc::colstat, SPxSolver::COLUMN, SPxBasis::Desc::costat, SPxBasis::Desc::isConsistent(), SPxLPBase< R >::nCols(), SPxLPBase< R >::nRows(), SPxSolver::rep(), SPxBasis::Desc::reSize(), SPxSolver::ROW, SPxBasis::Desc::rowstat, and SPxBasis::Desc::stat. copy constructor Definition at line 45 of file spxdesc.cpp. References SPxBasis::Desc::colstat, SPxBasis::Desc::costat, SPxBasis::Desc::isConsistent(), SPxBasis::Desc::rowstat, and SPxBasis::Desc::stat. Member Function Documentation
Definition at line 254 of file spxbasis.h. Referenced by SPxBasis::addedCols(), SPxSolver::addedRows(), SPxSolver::changeLowerStatus(), SPxSolver::changeUpperStatus(), SPxSolver::computeFrhsXtra(), SPxBasis::dump(), SPxBoundFlippingRT::flipAndUpdate(), SPxWeightST::generate(), SPxSolver::getBasis(), SPxSolver::getEnterVals(), SPxSolver::getEnterVals2(), SPxSolver::getLeaveVals(), SPxSolver::getLeaveVals2(), SPxSolver::getPrimal(), SPxBasis::isConsistent(), SPxSolver::leave(), SPxBasis::loadDesc(), SPxSolver::nonbasicValue(), SPxSolver::rejectLeave(), SPxBasis::removedCol(), SPxBasis::removedCols(), SPxBasis::restoreInitialBasis(), SPxWeightPR::selectEnter(), SPxFastRT::selectLeave(), SPxSolver::setBasis(), SPxSolver::setDualColBounds(), soplex::setDualStatus(), SPxWeightST::setPrimalStatus(), SPxSolver::ungetEnterVal(), SPxSolver::unShift(), and SPxBasis::writeBasis().
returns status of column Definition at line 259 of file spxbasis.h.
returns the array of column Statuses. Definition at line 264 of file spxbasis.h. References DataArray< T >::get_const_ptr(). Referenced by SPxBasis::Desc::dump().
Definition at line 284 of file spxbasis.h. Referenced by SPxSolver::computeCoTest(), SPxSolver::computeFrhs2(), SPxBoundFlippingRT::flipAndUpdate(), SPxSolver::rejectEnter(), and SPxSolver::updateCoTest().
returns status of covariable Definition at line 289 of file spxbasis.h.
returns the array of covariable Statuses. Definition at line 294 of file spxbasis.h. References SPxBasis::Desc::dump(), DataArray< T >::get_const_ptr(), SPxBasis::Desc::isConsistent(), and SPxBasis::Desc::reSize().
Prints out status. Definition at line 113 of file spxdesc.cpp. References SPxBasis::Desc::colStatus(), SPxBasis::Desc::nCols(), SPxBasis::Desc::nRows(), and SPxBasis::Desc::rowStatus(). Referenced by SoPlex::_performOptIRStable(), SPxBasis::Desc::coStatus(), SPxBasis::readBasis(), SPxBasis::unLoad(), and SPxBasis::writeBasis().
consistency check. Definition at line 130 of file spxdesc.cpp. References SPxBasis::Desc::colstat, DataArray< T >::isConsistent(), and SPxBasis::Desc::rowstat. Referenced by SPxBasis::Desc::coStatus(), SPxBasis::Desc::Desc(), SPxBasis::isConsistent(), SPxBasis::Desc::operator=(), and SPxBasis::unLoad().
returns number of columns. Definition at line 219 of file spxbasis.h. References DataArray< T >::size(). Referenced by SPxBasis::Desc::dump(), SPxBasis::dump(), SPxBasis::isConsistent(), SPxBasis::isDescValid(), SPxBasis::loadDesc(), and SPxBasis::removedCols().
returns number of rows. Definition at line 224 of file spxbasis.h. References DataArray< T >::size(). Referenced by SPxBasis::Desc::dump(), SPxBasis::dump(), SPxBasis::isConsistent(), SPxBasis::isDescValid(), SPxBasis::loadDesc(), and SPxBasis::removedRows().
assignment operator Definition at line 67 of file spxdesc.cpp. References SPxBasis::Desc::colstat, SPxBasis::Desc::costat, SPxBasis::Desc::isConsistent(), SPxBasis::Desc::rowstat, and SPxBasis::Desc::stat. Referenced by SPxBasis::Desc::Desc(), and SPxBasis::setOutstream().
resets dimensions. Definition at line 94 of file spxdesc.cpp. References SPxBasis::Desc::colstat, SPxBasis::Desc::D_UNDEFINED, DataArray< T >::reSize(), SPxBasis::Desc::rowstat, and DataArray< T >::size(). Referenced by SPxBasis::Desc::coStatus(), SPxBasis::Desc::Desc(), and SPxBasis::reDim().
Definition at line 239 of file spxbasis.h. Referenced by SPxBasis::addedRows(), SPxSolver::changeLhsStatus(), SPxSolver::changeRhsStatus(), SPxSolver::computeFrhs(), SPxBasis::dump(), SPxBoundFlippingRT::flipAndUpdate(), SPxSolver::getBasis(), SPxSolver::getEnterVals(), SPxSolver::getEnterVals2(), SPxSolver::getLeaveVals(), SPxSolver::getLeaveVals2(), SPxSolver::getSlacks(), SPxBasis::isConsistent(), SPxSolver::leave(), SPxBasis::loadDesc(), SPxSolver::nonbasicValue(), SPxSolver::rejectLeave(), SPxBasis::removedRow(), SPxBasis::removedRows(), SPxBasis::restoreInitialBasis(), SPxWeightPR::selectEnter(), SPxSolver::setBasis(), SPxSolver::setDualColBounds(), soplex::setDualStatus(), SPxWeightST::setPrimalStatus(), SPxSolver::ungetEnterVal(), SPxSolver::unShift(), and SPxBasis::writeBasis().
returns status of row Definition at line 244 of file spxbasis.h.
returns the array of row Statuses. Definition at line 249 of file spxbasis.h. References DataArray< T >::get_const_ptr(). Referenced by SPxBasis::Desc::dump().
Definition at line 269 of file spxbasis.h. Referenced by SPxSolver::computeFrhs1(), SPxSolver::computeTest(), SPxBoundFlippingRT::flipAndUpdate(), SPxSolver::rejectEnter(), and SPxSolver::updateTest().
returns status of variable Definition at line 274 of file spxbasis.h.
returns the array of variable Statuses. Definition at line 279 of file spxbasis.h. References DataArray< T >::get_const_ptr(). Referenced by SPxBasis::setOutstream(). Friends And Related Function Documentation
Definition at line 139 of file spxdesc.cpp. Referenced by SPxBasis::setOutstream().
Definition at line 199 of file spxbasis.h. Referenced by SPxBasis::setOutstream(). Member Data Documentationstatus of columns. Definition at line 208 of file spxbasis.h. Referenced by SPxBasis::Desc::Desc(), SPxBasis::Desc::isConsistent(), SPxBasis::isDescValid(), SPxBasis::Desc::operator=(), SPxBasis::readBasis(), SPxBasis::Desc::reSize(), and SPxBasis::setRep(). cobasis' status. Definition at line 210 of file spxbasis.h. Referenced by SPxBasis::Desc::Desc(), SPxBasis::Desc::operator=(), and SPxBasis::setRep(). status of rows. Definition at line 207 of file spxbasis.h. Referenced by SPxBasis::Desc::Desc(), SPxBasis::Desc::isConsistent(), SPxBasis::isDescValid(), SPxBasis::Desc::operator=(), SPxBasis::readBasis(), SPxBasis::Desc::reSize(), and SPxBasis::setRep(). basis' status. Definition at line 209 of file spxbasis.h. Referenced by SPxBasis::Desc::Desc(), SPxBasis::Desc::operator=(), and SPxBasis::setRep(). |