Loading...
Searching...
No Matches
ClpPEDualRowSteepest.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 ClpPEDualRowSteepest_H
#define ClpPEDualRowSteepest_H
#include "ClpDualRowSteepest.hpp"
#include "ClpPESimplex.hpp"
class CoinIndexedVector;
//#############################################################################
class ClpPEDualRowSteepest : public ClpDualRowSteepest {
public:
ClpPEDualRowSteepest(double psi = 0.5, int mode = 3);
ClpPEDualRowSteepest(const ClpPEDualRowSteepest &);
ClpPEDualRowSteepest &operator=(const ClpPEDualRowSteepest &rhs);
virtual ~ClpPEDualRowSteepest();
virtual ClpDualRowPivot *clone(bool copyData = true) const;
public:
virtual int pivotRow();
virtual void saveWeights(ClpSimplex *model, int mode);
virtual void updatePrimalSolution(CoinIndexedVector *input,
double theta,
double &changeInObjective);
// 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 */
bool updateCompatibles_;
int coDegenCompatibles_, coConsecutiveCompatibles_;
};
#endif
/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
*/
ClpDualRowSteepest.hpp
ClpPESimplex.hpp
ClpDualRowPivot::model
ClpSimplex * model()
Returns model.
Definition ClpDualRowPivot.hpp:100
ClpDualRowPivot::ClpDualRowPivot
ClpDualRowPivot()
Default Constructor.
ClpDualRowSteepest::ClpDualRowSteepest
ClpDualRowSteepest(int mode=3)
Default Constructor 0 is uninitialized, 1 full, 2 is partial uninitialized, 3 starts as 2 but may swi...
ClpDualRowSteepest::mode
int mode() const
Mode.
Definition ClpDualRowSteepest.hpp:109
ClpPEDualRowSteepest::updatePrimalSolution
virtual void updatePrimalSolution(CoinIndexedVector *input, double theta, double &changeInObjective)
Updates primal solution (and maybe list of candidates) Uses input vector which it deletes Computes ch...
ClpPEDualRowSteepest::psi_
double psi_
Definition ClpPEDualRowSteepest.hpp:86
ClpPEDualRowSteepest::pivotRow
virtual int pivotRow()
Returns pivot row, -1 if none.
ClpPEDualRowSteepest::~ClpPEDualRowSteepest
virtual ~ClpPEDualRowSteepest()
Destructor.
ClpPEDualRowSteepest::updateCompatibles_
bool updateCompatibles_
Definition ClpPEDualRowSteepest.hpp:93
ClpPEDualRowSteepest::ClpPEDualRowSteepest
ClpPEDualRowSteepest(const ClpPEDualRowSteepest &)
Copy constructor.
ClpPEDualRowSteepest::operator=
ClpPEDualRowSteepest & operator=(const ClpPEDualRowSteepest &rhs)
Assignment operator.
ClpPEDualRowSteepest::modelPE_
ClpPESimplex * modelPE_
Definition ClpPEDualRowSteepest.hpp:82
ClpPEDualRowSteepest::psi
double psi() const
Definition ClpPEDualRowSteepest.hpp:73
ClpPEDualRowSteepest::clone
virtual ClpDualRowPivot * clone(bool copyData=true) const
Clone.
ClpPEDualRowSteepest::saveWeights
virtual void saveWeights(ClpSimplex *model, int mode)
Save weights - this may initialize weights as well This is as parent but may initialize ClpPESimplex.
ClpPEDualRowSteepest::iInterval_
int iInterval_
Definition ClpPEDualRowSteepest.hpp:90
ClpPEDualRowSteepest::coDegenCompatibles_
int coDegenCompatibles_
Definition ClpPEDualRowSteepest.hpp:94
ClpPEDualRowSteepest::ClpPEDualRowSteepest
ClpPEDualRowSteepest(double psi=0.5, int mode=3)
Default Constructor mode: 0 is uninitialized, 1 full, 2 is partial uninitialized, 3 starts as 2 but m...
ClpPEDualRowSteepest::coConsecutiveCompatibles_
int coConsecutiveCompatibles_
Definition ClpPEDualRowSteepest.hpp:94
ClpPEDualRowSteepest::iCurrent_
int iCurrent_
Definition ClpPEDualRowSteepest.hpp:89
ClpPESimplex
BASE CLASS FOR THE IMPROVED SIMPLEX.
Definition ClpPESimplex.hpp:42
ClpSimplex
This solves LPs using the simplex method.
Definition ClpSimplex.hpp:106