Loading...
Searching...
No Matches
ClpPEPrimalColumnSteepest.hpp
Go to the documentation of this file.
// Copyright (C) 2002, International Business Machines
// Corporation and others. All Rights Reserved.
/*
Authors
Jeremy Omer, Mehdi Towhidi
Last update: april 10, 2015
*/
#ifndef ClpPEPrimalColumnSteepest_H
#define ClpPEPrimalColumnSteepest_H
#include "ClpPrimalColumnSteepest.hpp"
#include "ClpFactorization.hpp"
#include "ClpPESimplex.hpp"
#include <bitset>
//#############################################################################
class CoinIndexedVector;
class ClpPEPrimalColumnSteepest : public ClpPrimalColumnSteepest {
public:
ClpPEPrimalColumnSteepest(double psi = 0.5, int mode = 3);
ClpPEPrimalColumnSteepest(const ClpPEPrimalColumnSteepest &rhs);
ClpPEPrimalColumnSteepest &operator=(const ClpPEPrimalColumnSteepest &rhs);
virtual ~ClpPEPrimalColumnSteepest();
virtual ClpPrimalColumnPivot *clone(bool copyData = true) const;
public:
virtual int pivotColumn(CoinIndexedVector *updates,
CoinIndexedVector *spareRow1,
CoinIndexedVector *spareRow2,
CoinIndexedVector *spareColumn1,
CoinIndexedVector *spareColumn2);
virtual void saveWeights(ClpSimplex *model, int mode);
virtual void updateWeights(CoinIndexedVector *input);
//---------------------------------------------------------------------------
// Psi
inline double psi() const
{
return psi_;
}
private:
/* this PESimplex object is used to identify the compatible variables */
ClpPESimplex *modelPE_;
/* psi is the factor used in the bi-dimensional pricing, it is < 1 and
1/psi grows with the priority given to compatible variables */
double psi_;
/* useful counters for the update of the set of compatible variables */
int iCurrent_;
int iInterval_;
/* record if previous iterations concluded that compatibles should not be checked */
int coDegenCompatibles_;
int coConsecutiveCompatibles_;
bool updateCompatibles_;
};
#endif
/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
*/
ClpFactorization.hpp
ClpPESimplex.hpp
ClpPrimalColumnSteepest.hpp
ClpPEPrimalColumnSteepest::operator=
ClpPEPrimalColumnSteepest & operator=(const ClpPEPrimalColumnSteepest &rhs)
Assignment operator.
ClpPEPrimalColumnSteepest::ClpPEPrimalColumnSteepest
ClpPEPrimalColumnSteepest(const ClpPEPrimalColumnSteepest &rhs)
Copy constructor.
ClpPEPrimalColumnSteepest::iInterval_
int iInterval_
Definition ClpPEPrimalColumnSteepest.hpp:96
ClpPEPrimalColumnSteepest::coConsecutiveCompatibles_
int coConsecutiveCompatibles_
Definition ClpPEPrimalColumnSteepest.hpp:100
ClpPEPrimalColumnSteepest::pivotColumn
virtual int pivotColumn(CoinIndexedVector *updates, CoinIndexedVector *spareRow1, CoinIndexedVector *spareRow2, CoinIndexedVector *spareColumn1, CoinIndexedVector *spareColumn2)
Returns pivot column, -1 if none.
ClpPEPrimalColumnSteepest::coDegenCompatibles_
int coDegenCompatibles_
Definition ClpPEPrimalColumnSteepest.hpp:99
ClpPEPrimalColumnSteepest::updateCompatibles_
bool updateCompatibles_
Definition ClpPEPrimalColumnSteepest.hpp:101
ClpPEPrimalColumnSteepest::~ClpPEPrimalColumnSteepest
virtual ~ClpPEPrimalColumnSteepest()
Destructor.
ClpPEPrimalColumnSteepest::saveWeights
virtual void saveWeights(ClpSimplex *model, int mode)
Save weights - this may initialize weights as well This is as parent but may initialize ClpPESimplex.
ClpPEPrimalColumnSteepest::iCurrent_
int iCurrent_
Definition ClpPEPrimalColumnSteepest.hpp:95
ClpPEPrimalColumnSteepest::psi_
double psi_
Definition ClpPEPrimalColumnSteepest.hpp:92
ClpPEPrimalColumnSteepest::updateWeights
virtual void updateWeights(CoinIndexedVector *input)
Updates weights - as ordinary but checks for zero moves.
ClpPEPrimalColumnSteepest::ClpPEPrimalColumnSteepest
ClpPEPrimalColumnSteepest(double psi=0.5, int mode=3)
Default Constructor 0 is exact devex, 1 full steepest, 2 is partial exact devex 3 switches between 0 ...
ClpPEPrimalColumnSteepest::clone
virtual ClpPrimalColumnPivot * clone(bool copyData=true) const
Clone.
ClpPEPrimalColumnSteepest::psi
double psi() const
Definition ClpPEPrimalColumnSteepest.hpp:81
ClpPEPrimalColumnSteepest::modelPE_
ClpPESimplex * modelPE_
Definition ClpPEPrimalColumnSteepest.hpp:88
ClpPESimplex
BASE CLASS FOR THE IMPROVED SIMPLEX.
Definition ClpPESimplex.hpp:42
ClpPrimalColumnPivot::model
ClpSimplex * model()
Returns model.
Definition ClpPrimalColumnPivot.hpp:117
ClpPrimalColumnPivot::ClpPrimalColumnPivot
ClpPrimalColumnPivot()
Default Constructor.
ClpPrimalColumnSteepest::ClpPrimalColumnSteepest
ClpPrimalColumnSteepest(int mode=3)
Default Constructor 0 is exact devex, 1 full steepest, 2 is partial exact devex 3 switches between 0 ...
ClpPrimalColumnSteepest::mode
int mode() const
Mode.
Definition ClpPrimalColumnSteepest.hpp:126
ClpSimplex
This solves LPs using the simplex method.
Definition ClpSimplex.hpp:106