All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 #Desc%riptor. 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 #Status%es 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 #Status%es. <b>Primal Variables</b> Consider a range inequality \form#52 or bounds on a variable \form#53. The following table reveals what is implied if the corresponding variable or covariable is assigned to a primal #Status:
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. 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
returns codimension. Definition at line 234 of file spxbasis.h. References SPxBasis::Desc::costat, and DataArray< T >::size().
Definition at line 254 of file spxbasis.h. References SPxBasis::Desc::colstat. Referenced by SPxBasis::addedCols(), 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. References SPxBasis::Desc::colstat.
returns the array of column Statuses. Definition at line 264 of file spxbasis.h. References SPxBasis::Desc::colstat, and DataArray< T >::get_const_ptr().
Definition at line 284 of file spxbasis.h. References SPxBasis::Desc::costat. 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. References SPxBasis::Desc::costat.
returns the array of covariable Statuses. Definition at line 294 of file spxbasis.h. References SPxBasis::Desc::costat, and DataArray< T >::get_const_ptr().
returns dimension. Definition at line 229 of file spxbasis.h. References DataArray< T >::size(), and SPxBasis::Desc::stat.
Prints out status. Definition at line 113 of file spxdesc.cpp. Referenced by SoPlex::_performOptIRStable(), SPxBasis::readBasis(), and SPxBasis::writeBasis().
consistency check. Definition at line 130 of file spxdesc.cpp. Referenced by SPxBasis::Desc::Desc(), SPxBasis::isConsistent(), and SPxBasis::Desc::operator=().
returns number of columns. Definition at line 219 of file spxbasis.h. References SPxBasis::Desc::colstat, and DataArray< T >::size(). Referenced by SPxBasis::dump(), SPxBasis::isConsistent(), SPxBasis::isDescValid(), SPxBasis::loadDesc(), and SPxBasis::removedCols().
returns number of rows. Definition at line 224 of file spxbasis.h. References SPxBasis::Desc::rowstat, and DataArray< T >::size(). Referenced by 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.
resets dimensions. Definition at line 94 of file spxdesc.cpp. Referenced by SPxBasis::Desc::Desc(), and SPxBasis::reDim().
Definition at line 239 of file spxbasis.h. References SPxBasis::Desc::rowstat. 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. References SPxBasis::Desc::rowstat.
returns the array of row Statuses. Definition at line 249 of file spxbasis.h. References DataArray< T >::get_const_ptr(), and SPxBasis::Desc::rowstat.
Definition at line 269 of file spxbasis.h. References SPxBasis::Desc::stat. 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. References SPxBasis::Desc::stat.
returns the array of variable Statuses. Definition at line 279 of file spxbasis.h. References DataArray< T >::get_const_ptr(), and SPxBasis::Desc::stat. Friends And Related Function Documentation
Definition at line 139 of file spxdesc.cpp.
Definition at line 199 of file spxbasis.h. Member Data Documentationstatus of columns. Definition at line 208 of file spxbasis.h. Referenced by SPxBasis::Desc::colStatus(), SPxBasis::Desc::Desc(), SPxBasis::isDescValid(), SPxBasis::Desc::nCols(), SPxBasis::Desc::operator=(), SPxBasis::readBasis(), and SPxBasis::setRep(). cobasis' status. Definition at line 210 of file spxbasis.h. Referenced by SPxBasis::Desc::coDim(), SPxBasis::Desc::coStatus(), 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::isDescValid(), SPxBasis::Desc::nRows(), SPxBasis::Desc::operator=(), SPxBasis::readBasis(), SPxBasis::Desc::rowStatus(), and SPxBasis::setRep(). basis' status. Definition at line 209 of file spxbasis.h. Referenced by SPxBasis::Desc::Desc(), SPxBasis::Desc::dim(), SPxBasis::Desc::operator=(), SPxBasis::setRep(), and SPxBasis::Desc::status(). |