Loading...
Searching...
No Matches
ClpPESimplex Class Reference

BASE CLASS FOR THE IMPROVED SIMPLEX. More...

`#include <ClpPESimplex.hpp>`

Collaboration diagram for ClpPESimplex:
[legend]

## Public Member Functions

| ClpPESimplex (ClpSimplex *model)
| Constructor.
| ~ClpPESimplex ()
| Destructor.
int | coPrimalDegenerates ()
| BASIC GET METHODS.
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.
void | updateDualDegenerates ()
| Updates the set of dual degenerate variables.
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.
void | identifyCompatibleRows (CoinIndexedVector *spare, CoinIndexedVector *wDual)
| Identify the dual compatible rows.
void | updateCompatibleRows (int sequence)
| Update the dual compatible rows.
bool | checkCompatibilityRow (int pivotRow)
| DEBUG AND DISPLAY METHODS.
double | lastObjectiveValue ()
| Tracking the degenerate iterations after compatible pivots.
void | updateLastObjectiveValue ()
bool | isDegeneratePivot ()
bool | isLastPivotCompatible ()
void | isLastPivotCompatible (bool yesOrNo)
void | startTimer ()
| Start and stop the timer, and print the total recorded time.
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.
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).
int * | primalDegenerates_
bool * | isPrimalDegenerate_
int | coDualDegenerates_
| Indices of the non basic variables with a zero reduced cost during the last update (ndual-degenerate variables).
int * | dualDegenerates_
bool * | isDualDegenerate_
int | coCompatibleCols_
| Table of booleans indicating whether each variable is primal compatible (true) or not (false).
double * | compatibilityCol_
bool * | isCompatibleCol_
int | coCompatibleRows_
| Table of booleans indicating whether each constraint is dual compatible (true) or not (false).
double * | compatibilityRow_
bool * | isCompatibleRow_

## Private Attributes

ClpSimplex * | model_
| pointer to the original model that shall be solved
double | epsDegeneracy_
| tolerance used for the tests of degeneracy and compatibility (resp.)
double | epsCompatibility_
int | numberRows_
| size of the original model
int | numberColumns_
double * | tempRandom_
| w vectors that are used to identify the compatible columns and rows.
int | coPrimalDegeneratesAvg_
| number of degenerate pivots and variables
int | coDualDegeneratesAvg_
int | coCompatibleColsAvg_
int | coCompatibleRowsAvg_
int | coUpdateDegenerates_
int | coDegeneratePivots_
int | coCompatiblePivots_
int | coDegenerateCompatiblePivots_
int | coDegeneratePivotsConsecutive_
int | coPriorityPivots_
| number of compatible pivots that were done because of the priority factor
int | doStatistics_
| Do statistics.
double | lastObjectiveValue_
| tracking the degenerate iterations after compatible pivots
bool | isLastPivotCompatible_
double | timeCompatibility_
| Timer attribute recording the additional time spent in identifying compatible variables.
double | timeMultRandom_
double | timeLinearSystem_
double | timeTmp_

## Detailed Description

BASE CLASS FOR THE IMPROVED SIMPLEX.

Definition at line 42 of file ClpPESimplex.hpp.

## Constructor & Destructor Documentation

## ClpPESimplex()

ClpPESimplex::ClpPESimplex | ( | ClpSimplex * | model | ) |

Constructor.

## ~ClpPESimplex()

ClpPESimplex::~ClpPESimplex | ( |  | ) |

Destructor.

## Member Function Documentation

## coPrimalDegenerates()

int ClpPESimplex::coPrimalDegenerates | ( |  | ) |

inline

BASIC GET METHODS.

Definition at line 53 of file ClpPESimplex.hpp.

## coDualDegenerates()

int ClpPESimplex::coDualDegenerates | ( |  | ) |

inline

Definition at line 54 of file ClpPESimplex.hpp.

## coCompatibleCols()

int ClpPESimplex::coCompatibleCols | ( |  | ) |

inline

Definition at line 55 of file ClpPESimplex.hpp.

## coCompatibleRows()

int ClpPESimplex::coCompatibleRows | ( |  | ) |

inline

Definition at line 56 of file ClpPESimplex.hpp.

## isCompatibleCol()

bool ClpPESimplex::isCompatibleCol | ( | int | sequence | ) |

inline

Definition at line 58 of file ClpPESimplex.hpp.

## isCompatibleRow()

bool ClpPESimplex::isCompatibleRow | ( | int | row | ) |

inline

Definition at line 59 of file ClpPESimplex.hpp.

## clpModel()

ClpSimplex * ClpPESimplex::clpModel | ( |  | ) |

inline

Definition at line 65 of file ClpPESimplex.hpp.

## checkSize()

bool ClpPESimplex::checkSize | ( |  | ) |

## updatePrimalDegenerates()

void ClpPESimplex::updatePrimalDegenerates | ( |  | ) |

PUBLIC METHODS RELATED TO COMPATIBILITY.

Updates the set of variables that are not at their bounds

## updateDualDegenerates()

void ClpPESimplex::updateDualDegenerates | ( |  | ) |

Updates the set of dual degenerate variables.

## identifyCompatibleCols()

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.

## identifyCompatibleRows()

void ClpPESimplex::identifyCompatibleRows | ( | CoinIndexedVector * | spare,
|  | CoinIndexedVector * | wDual )

Identify the dual compatible rows.

## updateCompatibleRows()

void ClpPESimplex::updateCompatibleRows | ( | int | sequence | ) |

Update the dual compatible rows.

## checkCompatibilityRow()

bool ClpPESimplex::checkCompatibilityRow | ( | int | pivotRow | ) |

DEBUG AND DISPLAY METHODS.

Check that a basic row is indeed compatible

## lastObjectiveValue()

double ClpPESimplex::lastObjectiveValue | ( |  | ) |

inline

Tracking the degenerate iterations after compatible pivots.

Definition at line 106 of file ClpPESimplex.hpp.

## updateLastObjectiveValue()

void ClpPESimplex::updateLastObjectiveValue | ( |  | ) |

inline

Definition at line 107 of file ClpPESimplex.hpp.

## isDegeneratePivot()

bool ClpPESimplex::isDegeneratePivot | ( |  | ) |

inline

Definition at line 108 of file ClpPESimplex.hpp.

## isLastPivotCompatible() [1/2]

bool ClpPESimplex::isLastPivotCompatible | ( |  | ) |

inline

Definition at line 109 of file ClpPESimplex.hpp.

## isLastPivotCompatible() [2/2]

void ClpPESimplex::isLastPivotCompatible | ( | bool | yesOrNo | ) |

inline

Definition at line 110 of file ClpPESimplex.hpp.

## startTimer()

void ClpPESimplex::startTimer | ( |  | ) |

inline

Start and stop the timer, and print the total recorded time.

Definition at line 113 of file ClpPESimplex.hpp.

## stopTimer()

void ClpPESimplex::stopTimer | ( |  | ) |

inline

Definition at line 114 of file ClpPESimplex.hpp.

## printTimer()

void ClpPESimplex::printTimer | ( | std::ostream & | out | ) |

## timeMultRandom()

double ClpPESimplex::timeMultRandom | ( |  | ) |

inline

Definition at line 116 of file ClpPESimplex.hpp.

## timeLinearSystem()

double ClpPESimplex::timeLinearSystem | ( |  | ) |

inline

Definition at line 117 of file ClpPESimplex.hpp.

## timeCompatibility()

double ClpPESimplex::timeCompatibility | ( |  | ) |

inline

Definition at line 118 of file ClpPESimplex.hpp.

## addDegeneratePivot()

void ClpPESimplex::addDegeneratePivot | ( |  | ) |

inline

Update and return the number of degenerate pivots and variables.

Definition at line 121 of file ClpPESimplex.hpp.

## coDegeneratePivots()

int ClpPESimplex::coDegeneratePivots | ( |  | ) |

inline

Definition at line 122 of file ClpPESimplex.hpp.

## addDegeneratePivotConsecutive()

void ClpPESimplex::addDegeneratePivotConsecutive | ( |  | ) |

inline

Definition at line 123 of file ClpPESimplex.hpp.

## resetDegeneratePivotsConsecutive()

void ClpPESimplex::resetDegeneratePivotsConsecutive | ( |  | ) |

inline

Definition at line 124 of file ClpPESimplex.hpp.

## coDegeneratePivotsConsecutive()

int ClpPESimplex::coDegeneratePivotsConsecutive | ( |  | ) |

inline

Definition at line 125 of file ClpPESimplex.hpp.

## updateDualDegeneratesAvg()

void ClpPESimplex::updateDualDegeneratesAvg | ( | int | coPivots | ) |

## coDualDegeneratesAvg()

double ClpPESimplex::coDualDegeneratesAvg | ( |  | ) |

inline

Definition at line 127 of file ClpPESimplex.hpp.

## updatePrimalDegeneratesAvg()

void ClpPESimplex::updatePrimalDegeneratesAvg | ( | int | coPivots | ) |

## coPrimalDegeneratesAvg()

double ClpPESimplex::coPrimalDegeneratesAvg | ( |  | ) |

inline

Definition at line 129 of file ClpPESimplex.hpp.

## coCompatibleRowsAvg()

double ClpPESimplex::coCompatibleRowsAvg | ( |  | ) |

inline

Definition at line 130 of file ClpPESimplex.hpp.

## updateCompatibleRowsAvg()

void ClpPESimplex::updateCompatibleRowsAvg | ( | int | coPivots | ) |

## coCompatibleColsAvg()

double ClpPESimplex::coCompatibleColsAvg | ( |  | ) |

inline

Definition at line 132 of file ClpPESimplex.hpp.

## updateCompatibleColsAvg()

void ClpPESimplex::updateCompatibleColsAvg | ( | int | coPivots | ) |

## coCompatiblePivots()

int ClpPESimplex::coCompatiblePivots | ( |  | ) |

inline

Definition at line 134 of file ClpPESimplex.hpp.

## addCompatiblePivot()

void ClpPESimplex::addCompatiblePivot | ( |  | ) |

inline

Definition at line 135 of file ClpPESimplex.hpp.

## coDegenerateCompatiblePivots()

int ClpPESimplex::coDegenerateCompatiblePivots | ( |  | ) |

inline

Definition at line 136 of file ClpPESimplex.hpp.

## addDegenerateCompatiblePivot()

void ClpPESimplex::addDegenerateCompatiblePivot | ( |  | ) |

inline

Definition at line 137 of file ClpPESimplex.hpp.

## addPriorityPivot()

void ClpPESimplex::addPriorityPivot | ( |  | ) |

inline

Definition at line 140 of file ClpPESimplex.hpp.

## coPriorityPivots()

int ClpPESimplex::coPriorityPivots | ( |  | ) |

inline

Definition at line 141 of file ClpPESimplex.hpp.

## doStatistics()

int ClpPESimplex::doStatistics | ( |  | ) | const

inline

Definition at line 142 of file ClpPESimplex.hpp.

## setDoStatistics()

void ClpPESimplex::setDoStatistics | ( | int | value | ) |

inline

Definition at line 146 of file ClpPESimplex.hpp.

## Member Data Documentation

## coPrimalDegenerates_

int ClpPESimplex::coPrimalDegenerates_

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.

## primalDegenerates_

int* ClpPESimplex::primalDegenerates_

protected

Definition at line 155 of file ClpPESimplex.hpp.

## isPrimalDegenerate_

bool* ClpPESimplex::isPrimalDegenerate_

protected

Definition at line 156 of file ClpPESimplex.hpp.

## coDualDegenerates_

int ClpPESimplex::coDualDegenerates_

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.

## dualDegenerates_

int* ClpPESimplex::dualDegenerates_

protected

Definition at line 161 of file ClpPESimplex.hpp.

## isDualDegenerate_

bool* ClpPESimplex::isDualDegenerate_

protected

Definition at line 162 of file ClpPESimplex.hpp.

## coCompatibleCols_

int ClpPESimplex::coCompatibleCols_

protected

Table of booleans indicating whether each variable is primal compatible (true) or not (false).

Definition at line 166 of file ClpPESimplex.hpp.

## compatibilityCol_

double* ClpPESimplex::compatibilityCol_

protected

Definition at line 167 of file ClpPESimplex.hpp.

## isCompatibleCol_

bool* ClpPESimplex::isCompatibleCol_

protected

Definition at line 168 of file ClpPESimplex.hpp.

## coCompatibleRows_

int ClpPESimplex::coCompatibleRows_

protected

Table of booleans indicating whether each constraint is dual compatible (true) or not (false).

Definition at line 172 of file ClpPESimplex.hpp.

## compatibilityRow_

double* ClpPESimplex::compatibilityRow_

protected

Definition at line 173 of file ClpPESimplex.hpp.

## isCompatibleRow_

bool* ClpPESimplex::isCompatibleRow_

protected

Definition at line 174 of file ClpPESimplex.hpp.

## model_

ClpSimplex* ClpPESimplex::model_

private

pointer to the original model that shall be solved

Definition at line 178 of file ClpPESimplex.hpp.

## epsDegeneracy_

double ClpPESimplex::epsDegeneracy_

private

tolerance used for the tests of degeneracy and compatibility (resp.)

Definition at line 181 of file ClpPESimplex.hpp.

## epsCompatibility_

double ClpPESimplex::epsCompatibility_

private

Definition at line 182 of file ClpPESimplex.hpp.

## numberRows_

int ClpPESimplex::numberRows_

private

size of the original model

Definition at line 185 of file ClpPESimplex.hpp.

## numberColumns_

int ClpPESimplex::numberColumns_

private

Definition at line 186 of file ClpPESimplex.hpp.

## tempRandom_

double* ClpPESimplex::tempRandom_

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.

## coPrimalDegeneratesAvg_

int ClpPESimplex::coPrimalDegeneratesAvg_

private

number of degenerate pivots and variables

Definition at line 200 of file ClpPESimplex.hpp.

## coDualDegeneratesAvg_

int ClpPESimplex::coDualDegeneratesAvg_

private

Definition at line 201 of file ClpPESimplex.hpp.

## coCompatibleColsAvg_

int ClpPESimplex::coCompatibleColsAvg_

private

Definition at line 202 of file ClpPESimplex.hpp.

## coCompatibleRowsAvg_

int ClpPESimplex::coCompatibleRowsAvg_

private

Definition at line 203 of file ClpPESimplex.hpp.

## coUpdateDegenerates_

int ClpPESimplex::coUpdateDegenerates_

private

Definition at line 204 of file ClpPESimplex.hpp.

## coDegeneratePivots_

int ClpPESimplex::coDegeneratePivots_

private

Definition at line 206 of file ClpPESimplex.hpp.

## coCompatiblePivots_

int ClpPESimplex::coCompatiblePivots_

private

Definition at line 207 of file ClpPESimplex.hpp.

## coDegenerateCompatiblePivots_

int ClpPESimplex::coDegenerateCompatiblePivots_

private

Definition at line 208 of file ClpPESimplex.hpp.

## coDegeneratePivotsConsecutive_

int ClpPESimplex::coDegeneratePivotsConsecutive_

private

Definition at line 209 of file ClpPESimplex.hpp.

## coPriorityPivots_

int ClpPESimplex::coPriorityPivots_

private

number of compatible pivots that were done because of the priority factor

Definition at line 212 of file ClpPESimplex.hpp.

## doStatistics_

int ClpPESimplex::doStatistics_

private

Do statistics.

Definition at line 214 of file ClpPESimplex.hpp.

## lastObjectiveValue_

double ClpPESimplex::lastObjectiveValue_

private

tracking the degenerate iterations after compatible pivots

Definition at line 217 of file ClpPESimplex.hpp.

## isLastPivotCompatible_

bool ClpPESimplex::isLastPivotCompatible_

private

Definition at line 218 of file ClpPESimplex.hpp.

## timeCompatibility_

double ClpPESimplex::timeCompatibility_

private

Timer attribute recording the additional time spent in identifying compatible variables.

Definition at line 222 of file ClpPESimplex.hpp.

## timeMultRandom_

double ClpPESimplex::timeMultRandom_

private

Definition at line 223 of file ClpPESimplex.hpp.

## timeLinearSystem_

double ClpPESimplex::timeLinearSystem_

private

Definition at line 224 of file ClpPESimplex.hpp.

## timeTmp_

double ClpPESimplex::timeTmp_

private

Definition at line 225 of file ClpPESimplex.hpp.

The documentation for this class was generated from the following file:

- Clp/src/ClpPESimplex.hpp