enter.cpp
Go to the documentation of this file.
412 ( 710 ( 1169 assert(leaveIdx < 0 || !baseId(leaveIdx).isSPxColId() || desc().colStatus(number(SPxColId(baseId(leaveIdx)))) != SPxBasis::Desc::P_FIXED); 1170 assert(leaveIdx < 0 || !baseId(leaveIdx).isSPxRowId() || desc().rowStatus(number(SPxRowId(baseId(leaveIdx)))) != SPxBasis::Desc::P_FIXED); 1208 SPxBasis::coSolve(theCoPvec->delta(), *coSolveVector3, unitVecs[leaveIdx], *coSolveVector3rhs); 1212 SPxBasis::coSolve(theCoPvec->delta(), *coSolveVector2, unitVecs[leaveIdx], *coSolveVector2rhs); 1249 assert(!baseId(leaveIdx).isSPxRowId() || desc().rowStatus(number(SPxRowId(baseId(leaveIdx)))) != SPxBasis::Desc::P_FIXED); 1250 assert(!baseId(leaveIdx).isSPxColId() || desc().colStatus(number(SPxColId(baseId(leaveIdx)))) != SPxBasis::Desc::P_FIXED); 1314 MSG_DEBUG( std::cout << "DENTER09 rejecting enter pivot and looking for others" << std::endl; ) 1324 MSG_DEBUG( std::cout << "DENTER10 rejecting enter pivot in instable state, resetting values" << std::endl; ) 1351 MSG_DEBUG( std::cout << "DENTER11 moving entering variable from one bound to the other" << std::endl; ) 1373 /* after a factorization, the entering column/row might not be infeasible or suboptimal anymore, hence we do 1374 * not try to call leave(leaveIdx), but rather return to the main solving loop and call the pricer again 1380 * ROW: recompute the primal variables and activities for another, more precise, round of pricing 1384 MSG_INFO3( (*spxout), (*spxout) << "IENTER11 clean up step to reduce numerical errors" << std::endl; )
Desc::Status dualRowStatus(int i) const dual Status for the i'th row variable of the loaded LP. Definition: spxbasis.cpp:46 Exception class for things that should NEVER happen.This class is derived from the SoPlex exception b... Definition: exceptions.h:109 void coSolve(Vector &x, const Vector &rhs) Cosolves linear system with basis matrix. Definition: spxbasis.h:678 const VectorBase< Real > & maxObj() const Returns objective vector for maximization problem. Definition: spxlpbase.h:384 DIdxSet updateViols store indices that were changed in the previous iteration and must be checked in hyper pricing ... Definition: spxsolver.h:363 virtual void rejectEnter(SPxId enterId, Real enterTest, SPxBasis::Desc::Status enterStat) Definition: enter.cpp:1033 bool isValid() const returns TRUE iff the id is a valid column or row identifier. Definition: spxid.h:150 Abstract pricer base class. Exception classes for SoPlex. bool sparsePricingEnterCo true if sparsePricing is turned on in the entering Simplex Definition: spxsolver.h:376 int number(const SPxRowId &id) const Returns the row number of the row with identifier id. Definition: spxlpbase.h:450 Abstract ratio test base class. void computePrimalray4Col(Real direction, SPxId enterId) Definition: enter.cpp:1053 DataArray< int > isInfeasible 0: index not violated, 1: index violated, 2: index violated and among candidate list ... Definition: spxsolver.h:370 bool NE(Real a, Real b, Real eps=Param::epsilon()) returns true iff |a-b| > eps Definition: spxdefines.h:377 Real sparsePricingFactor enable sparse pricing when viols < factor * dim() Definition: spxsolver.h:277 Ids for LP columns.Class SPxColId provides DataKeys for the column indices of an SPxLP. Definition: spxid.h:36 int sign(const Rational &r) Sign function; returns 1 if r > 0, 0 if r = 0, and -1 if r < 0. Definition: rational.cpp:3938 Real delta() const guaranteed primal and dual bound violation for optimal solution, returning the maximum of feastol() a... Definition: spxsolver.h:705 Wrapper for different output streams and verbosity levels. primal variable is set to its upper bound Definition: spxbasis.h:188 Generic Ids for LP rows or columns.Both SPxColIds and SPxRowIds may be treated uniformly as SPxIds: ... Definition: spxid.h:85 bool m_pricingViolCoUpToDate true, if the stored violation in coDim is up to date Definition: spxsolver.h:238 #define MSG_INFO2(spxout, x) Prints out message x if the verbosity level is at least SPxOut::INFO2. Definition: spxdefines.h:115 SSVector * coSolveVector3 when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic so... Definition: spxsolver.h:254 virtual const SVector * enterVector(const SPxId &p_id) Get pointer to the id 'th vector. Definition: spxsolver.h:1751 Desc::Status dualColStatus(int i) const dual Status for the i'th column variable of the loaded LP. Definition: spxbasis.cpp:69 dual variable is set to its upper bound Definition: spxbasis.h:192 int max() const returns the maximal number of indices which can be stored in IdxSet. Definition: idxset.h:129 #define MSG_ERROR(x) Prints out message x if the verbosity level is at least SPxOut::ERROR. Definition: spxdefines.h:109 SSVector * coSolveVector3rhs when 3 systems are to be solved at a time; typically reserved for bound flipping ratio test (basic so... Definition: spxsolver.h:255 bool updateNonbasicValue(Real objChange) Definition: spxsolver.cpp:886 virtual void ungetEnterVal(SPxId enterId, SPxBasis::Desc::Status enterStat, Real leaveVal, const SVector &vec, Real &objChange) Definition: enter.cpp:978 bool sparsePricingEnter true if sparsePricing is turned on in the entering Simplex for slack variables Definition: spxsolver.h:375 Real entertol() const feasibility tolerance maintained by ratio test during ENTER algorithm. Definition: spxsolver.h:675 virtual void change(int i, SPxId &id, const SVector *enterVec, const SSVector *eta=0) performs basis update. Definition: spxbasis.cpp:715 Real m_pricingViolCo maximal feasibility violation of current solution in coDim Definition: spxsolver.h:237 Real length() const Floating point approximation of euclidian norm (without any approximation guarantee). Definition: vectorbase.h:356 Debugging, floating point type and parameter definitions. bool EQ(Real a, Real b, Real eps=Param::epsilon()) returns true iff |a-b| <= eps Definition: spxdefines.h:371 VectorBase< R > & multAdd(const S &x, const VectorBase< T > &vec) Addition of scaled vector. Definition: vectorbase.h:369 Exception base class.This class implements a base class for our SoPlex exceptions We provide a what()... Definition: exceptions.h:32 Everything should be within this namespace. int lastUpdate() const returns number of basis changes since last refactorization. Definition: spxbasis.h:533 void solve4update(SSVector &x, const SVector &rhs) solves linear system with basis matrix. Definition: spxbasis.h:628 SSVector * coSolveVector2rhs when 2 systems are to be solved at a time; typically for speepest edge weights Definition: spxsolver.h:253 Definition: spxpricer.h:100 primal variable is set to its lower bound Definition: spxbasis.h:187 void setup() Initializes nonzero indices for elements with absolute values above epsilon and sets all other elemen... Definition: ssvectorbase.h:132 dual variable is set to its lower bound Definition: spxbasis.h:193 DataArray< int > isInfeasibleCo 0: index not violated, 1: index violated, 2: index violated and among candidate list ... Definition: spxsolver.h:371 virtual void getEnterVals(SPxId id, Real &enterTest, Real &enterUB, Real &enterLB, Real &enterVal, Real &enterMax, Real &enterPric, SPxBasis::Desc::Status &enterStat, Real &enterRO, Real &objChange) Definition: enter.cpp:412 bool hyperPricingEnter true if hyper sparse pricing is turned on in the entering Simplex Definition: spxsolver.h:378 bool isBasic(SPxBasis::Desc::Status stat) const does stat describe a basic index ? Definition: spxsolver.h:1124 Ids for LP rows.Class SPxRowId provides DataKeys for the row indices of an SPxLP. ... Definition: spxid.h:55 Definition: spxpricer.h:101 #define MSG_INFO3(spxout, x) Prints out message x if the verbosity level is at least SPxOut::INFO3. Definition: spxdefines.h:117 void computeDualfarkas4Row(Real direction, SPxId enterId) Definition: enter.cpp:1072 SSVector * coSolveVector2 when 2 systems are to be solved at a time; typically for speepest edge weights Definition: spxsolver.h:252 Real leavetol() const feasibility tolerance maintained by ratio test during LEAVE algorithm. Definition: spxsolver.h:682 Set of indices.Class IdxSet provides a set of indices. At construction it must be given an array of i... Definition: idxset.h:56 virtual int selectLeave(Real &val, Real enterTest)=0 selects index to leave the basis. const VectorBase< Real > & maxRowObj() const Definition: spxlpbase.h:286 void setBasisStatus(SPxBasis::SPxStatus stat) set the lp solver's basis status. Definition: spxsolver.h:1905 virtual void getEnterVals2(int leaveIdx, Real enterMax, Real &leaveBound, Real &objChange) Definition: enter.cpp:710 |