Cbc
2.10.10
|
Class to deal with symmetry. More...
#include <CbcSymmetry.hpp>
Classes | |
struct | less_than_str |
struct | myclass |
struct | myclass0 |
class | Node |
Constructors and destructors | |
myclass0 | node_sort |
myclass | index_sort |
std::vector< Node > | node_info_ |
CbcNauty * | nauty_info_ |
int | numberColumns_ |
int | numberUsefulOrbits_ |
int | numberUsefulObjects_ |
int | numberPermutations_ |
cbc_permute * | permutations_ |
int * | whichOrbit_ |
int | stats_ [5] |
double | nautyTime_ |
double | nautyFixes_ |
double | nautyOtherBranches_ |
int | nautyBranchCalls_ |
int | lastNautyBranchSucceeded_ |
int | nautyBranchSucceeded_ |
int | nautyFixCalls_ |
int | lastNautyFixSucceeded_ |
int | nautyFixSucceeded_ |
CbcSymmetry () | |
Default constructor. More... | |
CbcSymmetry (const CbcSymmetry &) | |
Copy constructor. More... | |
CbcSymmetry & | operator= (const CbcSymmetry &rhs) |
Assignment operator. More... | |
~CbcSymmetry () | |
Destructor. More... | |
std::vector< int > * | Find_Orbit (int) const |
void | Compute_Symmetry () const |
int | statsOrbits (CbcModel *model, int type) const |
void | Print_Orbits (int type=0) const |
void | fillOrbits () |
int | orbitalFixing (OsiSolverInterface *solver) |
Fixes variables using orbits (returns number fixed) More... | |
int | orbitalFixing2 (OsiSolverInterface *solver) |
Fixes variables using root orbits (returns number fixed) More... | |
int * | whichOrbit () |
int * | fixedToZero () const |
int | numberUsefulOrbits () const |
int | numberUsefulObjects () const |
int | largestOrbit (const double *lower, const double *upper) const |
void | ChangeBounds (const double *lower, const double *upper, int numberColumns, bool justFixedAtOne) const |
int | changeBounds (int kColumn, double *saveLower, double *saveUpper, OsiSolverInterface *solver, int mode) const |
for simple stuff - returns number can fix if can use saved orbit (mode 1) otherwise may fix and return number can fix (mode 0) More... | |
int | changeBounds (double *saveLower, double *saveUpper, OsiSolverInterface *solver) const |
int | changeBounds2 (double *saveLower, double *saveUpper, OsiSolverInterface *solver) const |
int | fixSome (int iColumn, double *columnLower, double *columnUpper) const |
int | worthBranching (const double *saveLower, const double *saveUpper, int iColumn, int &numberCouldFix) const |
return number of orbits if worth branching More... | |
void | fixSuccess (int nFixed) |
void | adjustStats (const CbcSymmetry *other) |
Adjust statistics from threads. More... | |
int | numberColumns () const |
bool | compare (register Node &a, register Node &b) const |
CbcNauty * | getNtyInfo () |
void | setupSymmetry (CbcModel *model) |
empty if no NTY, symmetry data structure setup otherwise More... | |
void | addPermutation (cbc_permute permutation) |
takes ownership of cbc_permute (orbits part) More... | |
int | numberPermutations () const |
Number of permutation arrays. More... | |
int * | permutation (int which) const |
Permutation arrays. More... | |
int | numberInPermutation (int which) const |
void | incrementNautyBranches (int n) |
void | incrementBranchSucceeded () |
Class to deal with symmetry.
Hacked from Couenne Thanks, but it had been nice to make sure that there are no symbol collisions when building Couenne with this Cbc.
Definition at line 71 of file CbcSymmetry.hpp.
CbcSymmetry::CbcSymmetry | ( | ) |
Default constructor.
CbcSymmetry::CbcSymmetry | ( | const CbcSymmetry & | ) |
Copy constructor.
CbcSymmetry::~CbcSymmetry | ( | ) |
Destructor.
CbcSymmetry& CbcSymmetry::operator= | ( | const CbcSymmetry & | rhs | ) |
Assignment operator.
std::vector< int >* CbcSymmetry::Find_Orbit | ( | int | ) | const |
void CbcSymmetry::Compute_Symmetry | ( | ) | const |
int CbcSymmetry::statsOrbits | ( | CbcModel * | model, |
int | type | ||
) | const |
void CbcSymmetry::Print_Orbits | ( | int | type = 0 | ) | const |
void CbcSymmetry::fillOrbits | ( | ) |
int CbcSymmetry::orbitalFixing | ( | OsiSolverInterface * | solver | ) |
Fixes variables using orbits (returns number fixed)
int CbcSymmetry::orbitalFixing2 | ( | OsiSolverInterface * | solver | ) |
Fixes variables using root orbits (returns number fixed)
|
inline |
Definition at line 152 of file CbcSymmetry.hpp.
|
inline |
Definition at line 156 of file CbcSymmetry.hpp.
|
inline |
Definition at line 160 of file CbcSymmetry.hpp.
|
inline |
Definition at line 164 of file CbcSymmetry.hpp.
int CbcSymmetry::largestOrbit | ( | const double * | lower, |
const double * | upper | ||
) | const |
void CbcSymmetry::ChangeBounds | ( | const double * | lower, |
const double * | upper, | ||
int | numberColumns, | ||
bool | justFixedAtOne | ||
) | const |
int CbcSymmetry::changeBounds | ( | int | kColumn, |
double * | saveLower, | ||
double * | saveUpper, | ||
OsiSolverInterface * | solver, | ||
int | mode | ||
) | const |
for simple stuff - returns number can fix if can use saved orbit (mode 1) otherwise may fix and return number can fix (mode 0)
int CbcSymmetry::changeBounds | ( | double * | saveLower, |
double * | saveUpper, | ||
OsiSolverInterface * | solver | ||
) | const |
int CbcSymmetry::changeBounds2 | ( | double * | saveLower, |
double * | saveUpper, | ||
OsiSolverInterface * | solver | ||
) | const |
int CbcSymmetry::fixSome | ( | int | iColumn, |
double * | columnLower, | ||
double * | columnUpper | ||
) | const |
int CbcSymmetry::worthBranching | ( | const double * | saveLower, |
const double * | saveUpper, | ||
int | iColumn, | ||
int & | numberCouldFix | ||
) | const |
return number of orbits if worth branching
void CbcSymmetry::fixSuccess | ( | int | nFixed | ) |
void CbcSymmetry::adjustStats | ( | const CbcSymmetry * | other | ) |
Adjust statistics from threads.
|
inline |
Definition at line 187 of file CbcSymmetry.hpp.
|
inline |
Definition at line 190 of file CbcSymmetry.hpp.
void CbcSymmetry::setupSymmetry | ( | CbcModel * | model | ) |
empty if no NTY, symmetry data structure setup otherwise
void CbcSymmetry::addPermutation | ( | cbc_permute | permutation | ) |
takes ownership of cbc_permute (orbits part)
|
inline |
Number of permutation arrays.
Definition at line 201 of file CbcSymmetry.hpp.
|
inline |
Permutation arrays.
Definition at line 204 of file CbcSymmetry.hpp.
|
inline |
Definition at line 206 of file CbcSymmetry.hpp.
|
inline |
Definition at line 208 of file CbcSymmetry.hpp.
|
inline |
Definition at line 210 of file CbcSymmetry.hpp.
myclass0 CbcSymmetry::node_sort |
Definition at line 140 of file CbcSymmetry.hpp.
myclass CbcSymmetry::index_sort |
Definition at line 141 of file CbcSymmetry.hpp.
|
mutableprivate |
Definition at line 213 of file CbcSymmetry.hpp.
|
mutableprivate |
Definition at line 214 of file CbcSymmetry.hpp.
|
private |
Definition at line 215 of file CbcSymmetry.hpp.
|
private |
Definition at line 216 of file CbcSymmetry.hpp.
|
private |
Definition at line 217 of file CbcSymmetry.hpp.
|
private |
Definition at line 218 of file CbcSymmetry.hpp.
|
private |
Definition at line 219 of file CbcSymmetry.hpp.
|
private |
Definition at line 220 of file CbcSymmetry.hpp.
|
private |
Definition at line 221 of file CbcSymmetry.hpp.
|
private |
Definition at line 222 of file CbcSymmetry.hpp.
|
private |
Definition at line 223 of file CbcSymmetry.hpp.
|
mutableprivate |
Definition at line 224 of file CbcSymmetry.hpp.
|
mutableprivate |
Definition at line 225 of file CbcSymmetry.hpp.
|
mutableprivate |
Definition at line 226 of file CbcSymmetry.hpp.
|
private |
Definition at line 227 of file CbcSymmetry.hpp.
|
mutableprivate |
Definition at line 228 of file CbcSymmetry.hpp.
|
mutableprivate |
Definition at line 229 of file CbcSymmetry.hpp.
|
private |
Definition at line 230 of file CbcSymmetry.hpp.