Loading...
Searching...
No Matches
ClpPEDualRowDantzig.hpp
Go to the documentation of this file.
// Copyright (C) 2002, International Business Machines
// Corporation and others. All Rights Reserved.
/*
Authors
Jeremy Omer
Last update: april 10, 2015
*/
#ifndef ClpPEDualRowDantzig_H
#define ClpPEDualRowDantzig_H
#include "ClpDualRowPivot.hpp"
#include "ClpDualRowDantzig.hpp"
#include "ClpSimplex.hpp"
#include "CoinIndexedVector.hpp"
#include "ClpFactorization.hpp"
#include "ClpNonLinearCost.hpp"
#include "ClpSimplexDual.hpp"
#include "ClpPackedMatrix.hpp"
#include "ClpPESimplex.hpp"
class ClpPEDualRowDantzig : public ClpDualRowDantzig {
public:
ClpPEDualRowDantzig(double psi = 0.5);
ClpPEDualRowDantzig(const ClpPEDualRowDantzig &);
ClpPEDualRowDantzig &operator=(const ClpPEDualRowDantzig &rhs);
virtual ~ClpPEDualRowDantzig();
virtual ClpDualRowPivot *clone(bool copyData = true) const;
public:
virtual int pivotRow();
virtual double updateWeights(CoinIndexedVector *input,
CoinIndexedVector *spare,
CoinIndexedVector *spare2,
CoinIndexedVector *updatedColumn);
virtual void saveWeights(ClpSimplex *model, int mode);
//---------------------------------------------------------------------------
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 */
bool updateCompatibles_;
int coDegenCompatibles_, coConsecutiveCompatibles_;
};
#endif
/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
*/
ClpDualRowDantzig.hpp
ClpDualRowPivot.hpp
ClpFactorization.hpp
ClpNonLinearCost.hpp
ClpPESimplex.hpp
ClpPackedMatrix.hpp
ClpSimplexDual.hpp
ClpSimplex.hpp
ClpDualRowDantzig::ClpDualRowDantzig
ClpDualRowDantzig()
Default Constructor.
ClpDualRowPivot::model
ClpSimplex * model()
Returns model.
Definition ClpDualRowPivot.hpp:100
ClpDualRowPivot::ClpDualRowPivot
ClpDualRowPivot()
Default Constructor.
ClpPEDualRowDantzig::ClpPEDualRowDantzig
ClpPEDualRowDantzig(double psi=0.5)
Default Constructor.
ClpPEDualRowDantzig::clone
virtual ClpDualRowPivot * clone(bool copyData=true) const
Clone.
ClpPEDualRowDantzig::psi_
double psi_
Definition ClpPEDualRowDantzig.hpp:71
ClpPEDualRowDantzig::iInterval_
int iInterval_
Definition ClpPEDualRowDantzig.hpp:75
ClpPEDualRowDantzig::updateCompatibles_
bool updateCompatibles_
Definition ClpPEDualRowDantzig.hpp:78
ClpPEDualRowDantzig::updateWeights
virtual double updateWeights(CoinIndexedVector *input, CoinIndexedVector *spare, CoinIndexedVector *spare2, CoinIndexedVector *updatedColumn)
Update the compatible variables and call the base class method to update weights.
ClpPEDualRowDantzig::ClpPEDualRowDantzig
ClpPEDualRowDantzig(const ClpPEDualRowDantzig &)
Copy constructor.
ClpPEDualRowDantzig::~ClpPEDualRowDantzig
virtual ~ClpPEDualRowDantzig()
Destructor.
ClpPEDualRowDantzig::coConsecutiveCompatibles_
int coConsecutiveCompatibles_
Definition ClpPEDualRowDantzig.hpp:79
ClpPEDualRowDantzig::operator=
ClpPEDualRowDantzig & operator=(const ClpPEDualRowDantzig &rhs)
Assignment operator.
ClpPEDualRowDantzig::pivotRow
virtual int pivotRow()
Returns pivot row, -1 if none.
ClpPEDualRowDantzig::coDegenCompatibles_
int coDegenCompatibles_
Definition ClpPEDualRowDantzig.hpp:79
ClpPEDualRowDantzig::saveWeights
virtual void saveWeights(ClpSimplex *model, int mode)
Save weights - this may initialize weights as well This is as parent but may initialize ClpPESimplex.
ClpPEDualRowDantzig::modelPE_
ClpPESimplex * modelPE_
Definition ClpPEDualRowDantzig.hpp:67
ClpPEDualRowDantzig::iCurrent_
int iCurrent_
Definition ClpPEDualRowDantzig.hpp:74
ClpPESimplex
BASE CLASS FOR THE IMPROVED SIMPLEX.
Definition ClpPESimplex.hpp:42
ClpSimplex
This solves LPs using the simplex method.
Definition ClpSimplex.hpp:106