Dip
0.92.4
|
BASE CLASS FOR THE IMPROVED SIMPLEX. More...
#include <ClpPESimplex.hpp>
Public Member Functions | |
ClpPESimplex (ClpSimplex *model) | |
Constructor. More... | |
~ClpPESimplex () | |
Destructor. More... | |
int | coPrimalDegenerates () |
BASIC GET METHODS. More... | |
int | coDualDegenerates () |
int | coCompatibleCols () |
int | coCompatibleRows () |
bool | isCompatibleCol (int sequence) |
bool | isCompatibleRow (int row) |
ClpSimplex * | clpModel () |
bool | checkSize () |
void | updatePrimalDegenerates () |
PUBLIC METHODS RELATED TO COMPATIBILITY. More... | |
void | updateDualDegenerates () |
Updates the set of dual degenerate variables. More... | |
void | identifyCompatibleCols (int number, const int *which, CoinIndexedVector *spareRow2, CoinIndexedVector *wPrimal) |
Identify the primal compatible columns The input argument is a temporary array that is needed for the Clp's BTRAN. More... | |
void | identifyCompatibleRows (CoinIndexedVector *spare, CoinIndexedVector *wDual) |
Identify the dual compatible rows. More... | |
void | updateCompatibleRows (int sequence) |
Update the dual compatible rows. More... | |
bool | checkCompatibilityRow (int pivotRow) |
DEBUG AND DISPLAY METHODS. More... | |
double | lastObjectiveValue () |
Tracking the degenerate iterations after compatible pivots. More... | |
void | updateLastObjectiveValue () |
bool | isDegeneratePivot () |
bool | isLastPivotCompatible () |
void | isLastPivotCompatible (bool yesOrNo) |
void | startTimer () |
Start and stop the timer, and print the total recorded time. More... | |
void | stopTimer () |
void | printTimer (std::ostream &out) |
double | timeMultRandom () |
double | timeLinearSystem () |
double | timeCompatibility () |
void | addDegeneratePivot () |
Update and return the number of degenerate pivots and variables. More... | |
int | coDegeneratePivots () |
void | addDegeneratePivotConsecutive () |
void | resetDegeneratePivotsConsecutive () |
int | coDegeneratePivotsConsecutive () |
void | updateDualDegeneratesAvg (int coPivots) |
double | coDualDegeneratesAvg () |
void | updatePrimalDegeneratesAvg (int coPivots) |
double | coPrimalDegeneratesAvg () |
double | coCompatibleRowsAvg () |
void | updateCompatibleRowsAvg (int coPivots) |
double | coCompatibleColsAvg () |
void | updateCompatibleColsAvg (int coPivots) |
int | coCompatiblePivots () |
void | addCompatiblePivot () |
int | coDegenerateCompatiblePivots () |
void | addDegenerateCompatiblePivot () |
void | addPriorityPivot () |
int | coPriorityPivots () |
int | doStatistics () const |
void | setDoStatistics (int value) |
Protected Attributes | |
int | coPrimalDegenerates_ |
Indices of the variables that were not at one of their bounds during the last update (non primal degenerate variables) More... | |
int * | primalDegenerates_ |
bool * | isPrimalDegenerate_ |
int | coDualDegenerates_ |
Indices of the non basic variables with a zero reduced cost during the last update (ndual-degenerate variables) More... | |
int * | dualDegenerates_ |
bool * | isDualDegenerate_ |
int | coCompatibleCols_ |
Table of booleans indicating whether each variable is primal compatible (true) or not (false) More... | |
double * | compatibilityCol_ |
bool * | isCompatibleCol_ |
int | coCompatibleRows_ |
Table of booleans indicating whether each constraint is dual compatible (true) or not (false) More... | |
double * | compatibilityRow_ |
bool * | isCompatibleRow_ |
Private Attributes | |
ClpSimplex * | model_ |
pointer to the original model that shall be solved More... | |
double | epsDegeneracy_ |
tolerance used for the tests of degeneracy and compatibility (resp.) More... | |
double | epsCompatibility_ |
int | numberRows_ |
size of the original model More... | |
int | numberColumns_ |
double * | tempRandom_ |
w vectors that are used to identify the compatible columns and rows. More... | |
int | coPrimalDegeneratesAvg_ |
number of degenerate pivots and variables More... | |
int | coDualDegeneratesAvg_ |
int | coCompatibleColsAvg_ |
int | coCompatibleRowsAvg_ |
int | coUpdateDegenerates_ |
int | coIdentifyCompatibles_ |
int | coDegeneratePivots_ |
int | coCompatiblePivots_ |
int | coDegenerateCompatiblePivots_ |
int | coDegeneratePivotsConsecutive_ |
int | coPriorityPivots_ |
number of compatible pivots that were done because of the priority factor More... | |
int | doStatistics_ |
Do statistics. More... | |
double | lastObjectiveValue_ |
tracking the degenerate iterations after compatible pivots More... | |
bool | isLastPivotCompatible_ |
double | timeCompatibility_ |
Timer attribute recording the additional time spent in identifying compatible variables. More... | |
double | timeMultRandom_ |
double | timeLinearSystem_ |
double | timeTmp_ |
BASE CLASS FOR THE IMPROVED SIMPLEX.
Definition at line 42 of file ClpPESimplex.hpp.
ClpPESimplex::ClpPESimplex | ( | ClpSimplex * | model | ) |
Constructor.
ClpPESimplex::~ClpPESimplex | ( | ) |
Destructor.
|
inline |
|
inline |
Definition at line 54 of file ClpPESimplex.hpp.
References coDualDegenerates_.
|
inline |
Definition at line 55 of file ClpPESimplex.hpp.
References coCompatibleCols_.
|
inline |
Definition at line 56 of file ClpPESimplex.hpp.
References coCompatibleRows_.
|
inline |
Definition at line 58 of file ClpPESimplex.hpp.
References isCompatibleCol_.
|
inline |
Definition at line 59 of file ClpPESimplex.hpp.
References isCompatibleRow_, and numberRows_.
|
inline |
Definition at line 65 of file ClpPESimplex.hpp.
References model_.
bool ClpPESimplex::checkSize | ( | ) |
void ClpPESimplex::updatePrimalDegenerates | ( | ) |
PUBLIC METHODS RELATED TO COMPATIBILITY.
Updates the set of variables that are not at their bounds
void ClpPESimplex::updateDualDegenerates | ( | ) |
Updates the set of dual degenerate variables.
void ClpPESimplex::identifyCompatibleCols | ( | int | number, |
const int * | which, | ||
CoinIndexedVector * | spareRow2, | ||
CoinIndexedVector * | wPrimal | ||
) |
Identify the primal compatible columns The input argument is a temporary array that is needed for the Clp's BTRAN.
void ClpPESimplex::identifyCompatibleRows | ( | CoinIndexedVector * | spare, |
CoinIndexedVector * | wDual | ||
) |
Identify the dual compatible rows.
void ClpPESimplex::updateCompatibleRows | ( | int | sequence | ) |
Update the dual compatible rows.
bool ClpPESimplex::checkCompatibilityRow | ( | int | pivotRow | ) |
DEBUG AND DISPLAY METHODS.
Check that a basic row is indeed compatible
|
inline |
Tracking the degenerate iterations after compatible pivots.
Definition at line 106 of file ClpPESimplex.hpp.
References lastObjectiveValue_.
|
inline |
Definition at line 107 of file ClpPESimplex.hpp.
References lastObjectiveValue_, model_, and ClpModel::objectiveValue().
|
inline |
Definition at line 108 of file ClpPESimplex.hpp.
References ClpModel::dualTolerance(), lastObjectiveValue_, model_, and ClpModel::objectiveValue().
|
inline |
Definition at line 109 of file ClpPESimplex.hpp.
References isLastPivotCompatible_.
|
inline |
Definition at line 110 of file ClpPESimplex.hpp.
References isLastPivotCompatible_.
|
inline |
Start and stop the timer, and print the total recorded time.
Definition at line 113 of file ClpPESimplex.hpp.
References CoinCpuTime(), and timeTmp_.
|
inline |
Definition at line 114 of file ClpPESimplex.hpp.
References CoinCpuTime(), timeCompatibility_, and timeTmp_.
void ClpPESimplex::printTimer | ( | std::ostream & | out | ) |
|
inline |
Definition at line 116 of file ClpPESimplex.hpp.
References timeMultRandom_.
|
inline |
Definition at line 117 of file ClpPESimplex.hpp.
References timeLinearSystem_.
|
inline |
Definition at line 118 of file ClpPESimplex.hpp.
References timeCompatibility_.
|
inline |
Update and return the number of degenerate pivots and variables.
Definition at line 121 of file ClpPESimplex.hpp.
References coDegeneratePivots_.
|
inline |
Definition at line 122 of file ClpPESimplex.hpp.
References coDegeneratePivots_.
|
inline |
Definition at line 123 of file ClpPESimplex.hpp.
References coDegeneratePivotsConsecutive_.
|
inline |
Definition at line 124 of file ClpPESimplex.hpp.
References coDegeneratePivotsConsecutive_.
|
inline |
Definition at line 125 of file ClpPESimplex.hpp.
References coDegeneratePivotsConsecutive_.
void ClpPESimplex::updateDualDegeneratesAvg | ( | int | coPivots | ) |
|
inline |
Definition at line 127 of file ClpPESimplex.hpp.
References coDualDegeneratesAvg_.
void ClpPESimplex::updatePrimalDegeneratesAvg | ( | int | coPivots | ) |
|
inline |
Definition at line 129 of file ClpPESimplex.hpp.
References coPrimalDegeneratesAvg_.
|
inline |
Definition at line 130 of file ClpPESimplex.hpp.
References coCompatibleRowsAvg_.
void ClpPESimplex::updateCompatibleRowsAvg | ( | int | coPivots | ) |
|
inline |
Definition at line 132 of file ClpPESimplex.hpp.
References coCompatibleColsAvg_.
void ClpPESimplex::updateCompatibleColsAvg | ( | int | coPivots | ) |
|
inline |
Definition at line 134 of file ClpPESimplex.hpp.
References coCompatiblePivots_.
|
inline |
Definition at line 135 of file ClpPESimplex.hpp.
References coCompatiblePivots_.
|
inline |
Definition at line 136 of file ClpPESimplex.hpp.
References coDegenerateCompatiblePivots_.
|
inline |
Definition at line 137 of file ClpPESimplex.hpp.
References coDegenerateCompatiblePivots_.
|
inline |
Definition at line 140 of file ClpPESimplex.hpp.
References coPriorityPivots_.
|
inline |
Definition at line 141 of file ClpPESimplex.hpp.
References coPriorityPivots_.
|
inline |
Definition at line 142 of file ClpPESimplex.hpp.
References doStatistics_.
|
inline |
Definition at line 146 of file ClpPESimplex.hpp.
References doStatistics_.
|
protected |
Indices of the variables that were not at one of their bounds during the last update (non primal degenerate variables)
Definition at line 154 of file ClpPESimplex.hpp.
Referenced by coPrimalDegenerates().
|
protected |
Definition at line 155 of file ClpPESimplex.hpp.
|
protected |
Definition at line 156 of file ClpPESimplex.hpp.
|
protected |
Indices of the non basic variables with a zero reduced cost during the last update (ndual-degenerate variables)
Definition at line 160 of file ClpPESimplex.hpp.
Referenced by coDualDegenerates().
|
protected |
Definition at line 161 of file ClpPESimplex.hpp.
|
protected |
Definition at line 162 of file ClpPESimplex.hpp.
|
protected |
Table of booleans indicating whether each variable is primal compatible (true) or not (false)
Definition at line 166 of file ClpPESimplex.hpp.
Referenced by coCompatibleCols().
|
protected |
Definition at line 167 of file ClpPESimplex.hpp.
|
protected |
Definition at line 168 of file ClpPESimplex.hpp.
Referenced by isCompatibleCol().
|
protected |
Table of booleans indicating whether each constraint is dual compatible (true) or not (false)
Definition at line 172 of file ClpPESimplex.hpp.
Referenced by coCompatibleRows().
|
protected |
Definition at line 173 of file ClpPESimplex.hpp.
|
protected |
Definition at line 174 of file ClpPESimplex.hpp.
Referenced by isCompatibleRow().
|
private |
pointer to the original model that shall be solved
Definition at line 178 of file ClpPESimplex.hpp.
Referenced by clpModel(), isDegeneratePivot(), and updateLastObjectiveValue().
|
private |
tolerance used for the tests of degeneracy and compatibility (resp.)
Definition at line 181 of file ClpPESimplex.hpp.
|
private |
Definition at line 182 of file ClpPESimplex.hpp.
|
private |
size of the original model
Definition at line 185 of file ClpPESimplex.hpp.
Referenced by isCompatibleRow().
|
private |
Definition at line 186 of file ClpPESimplex.hpp.
|
private |
w vectors that are used to identify the compatible columns and rows.
The name w, refers to the notations of the articles on positive edge temporary vectors that are used to store colulns of the constraint matrix or random numbers
Definition at line 197 of file ClpPESimplex.hpp.
|
private |
number of degenerate pivots and variables
Definition at line 200 of file ClpPESimplex.hpp.
Referenced by coPrimalDegeneratesAvg().
|
private |
Definition at line 201 of file ClpPESimplex.hpp.
Referenced by coDualDegeneratesAvg().
|
private |
Definition at line 202 of file ClpPESimplex.hpp.
Referenced by coCompatibleColsAvg().
|
private |
Definition at line 203 of file ClpPESimplex.hpp.
Referenced by coCompatibleRowsAvg().
|
private |
Definition at line 204 of file ClpPESimplex.hpp.
|
private |
Definition at line 205 of file ClpPESimplex.hpp.
|
private |
Definition at line 206 of file ClpPESimplex.hpp.
Referenced by addDegeneratePivot(), and coDegeneratePivots().
|
private |
Definition at line 207 of file ClpPESimplex.hpp.
Referenced by addCompatiblePivot(), and coCompatiblePivots().
|
private |
Definition at line 208 of file ClpPESimplex.hpp.
Referenced by addDegenerateCompatiblePivot(), and coDegenerateCompatiblePivots().
|
private |
Definition at line 209 of file ClpPESimplex.hpp.
Referenced by addDegeneratePivotConsecutive(), coDegeneratePivotsConsecutive(), and resetDegeneratePivotsConsecutive().
|
private |
number of compatible pivots that were done because of the priority factor
Definition at line 212 of file ClpPESimplex.hpp.
Referenced by addPriorityPivot(), and coPriorityPivots().
|
private |
Do statistics.
Definition at line 214 of file ClpPESimplex.hpp.
Referenced by doStatistics(), and setDoStatistics().
|
private |
tracking the degenerate iterations after compatible pivots
Definition at line 217 of file ClpPESimplex.hpp.
Referenced by isDegeneratePivot(), lastObjectiveValue(), and updateLastObjectiveValue().
|
private |
Definition at line 218 of file ClpPESimplex.hpp.
Referenced by isLastPivotCompatible().
|
private |
Timer attribute recording the additional time spent in identifying compatible variables.
Definition at line 222 of file ClpPESimplex.hpp.
Referenced by stopTimer(), and timeCompatibility().
|
private |
Definition at line 223 of file ClpPESimplex.hpp.
Referenced by timeMultRandom().
|
private |
Definition at line 224 of file ClpPESimplex.hpp.
Referenced by timeLinearSystem().
|
private |
Definition at line 225 of file ClpPESimplex.hpp.
Referenced by startTimer(), and stopTimer().