Loading...
Searching...
No Matches
CglProbing.hpp
Go to the documentation of this file.
// $Id$
// Copyright (C) 2002, International Business Machines
// Corporation and others. All Rights Reserved.
// This code is licensed under the terms of the Eclipse Public License (EPL).
#ifndef CglProbing_H
#define CglProbing_H
#include <string>
#include "CglCutGenerator.hpp"
typedef struct {
//unsigned int zeroOne:1; // nonzero if affected variable is 0-1
//unsigned int whenAtUB:1; // nonzero if fixing happens when this variable at 1
//unsigned int affectedToUB:1; // nonzero if affected variable fixed to UB
//unsigned int affected:29; // If 0-1 then 0-1 sequence, otherwise true
unsigned int affected;
} disaggregationAction;
class CglProbing : public CglCutGenerator {
friend void CglProbingUnitTest(const OsiSolverInterface * siP,
const std::string mpdDir );
public:
virtual void generateCuts( const OsiSolverInterface & si, OsiCuts & cs,
const CglTreeInfo info = CglTreeInfo());
int generateCutsAndModify( const OsiSolverInterface & si, OsiCuts & cs,
CglTreeInfo * info);
int snapshot ( const OsiSolverInterface & si,
char * possible=NULL,
bool withObjective=true);
void deleteSnapshot ( );
int createCliques( OsiSolverInterface & si,
int minimumSize=2, int maximumSize=100);
void deleteCliques();
OsiSolverInterface * cliqueModel(const OsiSolverInterface * model,
int type);
const double * tightLower() const;
const double * tightUpper() const;
const char * tightenBounds() const
{ return tightenBounds_;}
const double * relaxedRowLower() const;
const double * relaxedRowUpper() const;
void setMode(int mode);
int getMode() const;
void setMaxPass(int value);
int getMaxPass() const;
void setLogLevel(int value);
int getLogLevel() const;
void setMaxProbe(int value);
int getMaxProbe() const;
void setMaxLook(int value);
int getMaxLook() const;
void setMaxElements(int value);
int getMaxElements() const;
void setMaxPassRoot(int value);
int getMaxPassRoot() const;
void setMaxProbeRoot(int value);
int getMaxProbeRoot() const;
void setMaxLookRoot(int value);
int getMaxLookRoot() const;
void setMaxElementsRoot(int value);
int getMaxElementsRoot() const;
virtual bool mayGenerateRowCutsInTree() const;
inline int numberThisTime() const
{ return numberThisTime_;}
inline const int * lookedAt() const
{ return lookedAt_;}
void setRowCuts(int type);
int rowCuts() const;
typedef struct {
unsigned int equality:1; // nonzero if clique is ==
} CliqueType;
inline int numberCliques() const
{ return numberCliques_;}
inline CliqueType * cliqueType() const
{ return cliqueType_;}
inline CoinBigIndex * cliqueStart() const
{ return cliqueStart_;}
inline CliqueEntry * cliqueEntry() const
{ return cliqueEntry_;}
void setUsingObjective(int yesNo);
int getUsingObjective() const;
void tightenThese(const OsiSolverInterface & solver, int number, const int * which);
CglProbing ();
CglProbing (
const CglProbing &);
virtual CglCutGenerator * clone() const;
CglProbing &
operator=(
const CglProbing& rhs);
virtual
~CglProbing ();
virtual void refreshSolver(OsiSolverInterface * solver);
virtual std::string generateCpp( FILE * fp);
private:
// Private member methods
int probe( const OsiSolverInterface & si,
const OsiRowCutDebugger * debugger,
OsiCuts & cs,
double * colLower, double * colUpper, CoinPackedMatrix *rowCopy,
CoinPackedMatrix *columnCopy,const CoinBigIndex * rowStartPos,
const int * realRow, const double * rowLower, const double * rowUpper,
const char * intVar, double * minR, double * maxR, int * markR,
CglTreeInfo * info);
int probeCliques( const OsiSolverInterface & si,
const OsiRowCutDebugger * debugger,
OsiCuts & cs,
double * colLower, double * colUpper, CoinPackedMatrix *rowCopy,
CoinPackedMatrix *columnCopy, const int * realRow,
double * rowLower, double * rowUpper,
char * intVar, double * minR, double * maxR, int * markR,
CglTreeInfo * info);
int probeSlacks( const OsiSolverInterface & si,
const OsiRowCutDebugger * debugger,
OsiCuts & cs,
double * colLower, double * colUpper, CoinPackedMatrix *rowCopy,
CoinPackedMatrix *columnCopy,
double * rowLower, double * rowUpper,
char * intVar, double * minR, double * maxR,int * markR,
CglTreeInfo * info);
int gutsOfGenerateCuts( const OsiSolverInterface & si,
OsiCuts & cs,
double * rowLower, double * rowUpper,
double * colLower, double * colUpper,
CglTreeInfo * info);
void setupRowCliqueInformation(const OsiSolverInterface & si);
int tighten(double *colLower, double * colUpper,
const int *column, const double *rowElements,
const CoinBigIndex *rowStart,const CoinBigIndex * rowStartPos,
const int * rowLength,
double *rowLower, double *rowUpper,
int nRows,int nCols,char * intVar,int maxpass,
double tolerance);
void tighten2(double *colLower, double * colUpper,
const int *column, const double *rowElements,
const CoinBigIndex *rowStart,
const int * rowLength,
double *rowLower, double *rowUpper,
double * minR, double * maxR, int * markR,
int nRows);
// Private member data
struct disaggregation_struct_tag ;
friend struct CglProbing::disaggregation_struct_tag ;
CoinPackedMatrix * rowCopy_;
CoinPackedMatrix * columnCopy_;
double * rowLower_;
double * rowUpper_;
double * colLower_;
double * colUpper_;
int numberRows_;
int numberColumns_;
double primalTolerance_;
int mode_;
int rowCuts_;
int maxPass_;
int logLevel_;
int maxProbe_;
int maxStack_;
int maxElements_;
int maxPassRoot_;
int maxProbeRoot_;
int maxStackRoot_;
int maxElementsRoot_;
int usingObjective_;
int numberIntegers_;
int number01Integers_;
int numberThisTime_;
int totalTimesCalled_;
int * lookedAt_;
typedef struct disaggregation_struct_tag {
int sequence; // integer variable
// index will be NULL if no probing done yet
int length; // length of newValue
disaggregationAction * index; // columns whose bounds will be changed
} disaggregation;
disaggregation * cutVector_;
int numberCliques_;
CliqueType * cliqueType_;
CoinBigIndex * cliqueStart_;
CliqueEntry * cliqueEntry_;
int * oneFixStart_;
int * zeroFixStart_;
int * endFixStart_;
int * whichClique_;
CliqueEntry * cliqueRow_;
int * cliqueRowStart_;
char * tightenBounds_;
};
inline int affectedInDisaggregation(const disaggregationAction & dis)
{ return dis.affected&0x1fffffff;}
inline void setAffectedInDisaggregation(disaggregationAction & dis,
int affected)
{ dis.affected = affected|(dis.affected&0xe0000000);}
#ifdef NDEBUG
inline bool zeroOneInDisaggregation(const disaggregationAction & )
{ return true;}
#else
inline bool zeroOneInDisaggregation(const disaggregationAction & dis)
//{ return (dis.affected&0x80000000)!=0;}
{ assert ((dis.affected&0x80000000)!=0); return true;}
#endif
inline void setZeroOneInDisaggregation(disaggregationAction & dis,bool zeroOne)
{ dis.affected = (zeroOne ? 0x80000000 : 0)|(dis.affected&0x7fffffff);}
inline bool whenAtUBInDisaggregation(const disaggregationAction & dis)
{ return (dis.affected&0x40000000)!=0;}
inline void setWhenAtUBInDisaggregation(disaggregationAction & dis,bool whenAtUB)
{ dis.affected = (whenAtUB ? 0x40000000 : 0)|(dis.affected&0xbfffffff);}
inline bool affectedToUBInDisaggregation(const disaggregationAction & dis)
{ return (dis.affected&0x20000000)!=0;}
inline void setAffectedToUBInDisaggregation(disaggregationAction & dis,bool affectedToUB)
{ dis.affected = (affectedToUB ? 0x20000000 : 0)|(dis.affected&0xdfffffff);}
//#############################################################################
void CglProbingUnitTest(const OsiSolverInterface * siP,
const std::string mpdDir );
class CglImplication : public CglCutGenerator {
public:
virtual void generateCuts( const OsiSolverInterface & si, OsiCuts & cs,
const CglTreeInfo info = CglTreeInfo());
CglImplication ();
CglImplication (CglTreeProbingInfo * info);
CglImplication (
const CglImplication &);
virtual CglCutGenerator * clone() const;
CglImplication &
operator=(
const CglImplication& rhs);
virtual
~CglImplication ();
virtual std::string generateCpp( FILE * fp);
inline void setProbingInfo(CglTreeProbingInfo * info)
{ probingInfo_=info;}
private:
CglTreeProbingInfo * probingInfo_;
};
#endif
CglCutGenerator.hpp
setZeroOneInDisaggregation
void setZeroOneInDisaggregation(disaggregationAction &dis, bool zeroOne)
Definition CglProbing.hpp:470
CglProbingUnitTest
void CglProbingUnitTest(const OsiSolverInterface *siP, const std::string mpdDir)
A function that tests the methods in the CglProbing class.
setAffectedToUBInDisaggregation
void setAffectedToUBInDisaggregation(disaggregationAction &dis, bool affectedToUB)
Definition CglProbing.hpp:478
affectedToUBInDisaggregation
bool affectedToUBInDisaggregation(const disaggregationAction &dis)
Definition CglProbing.hpp:476
affectedInDisaggregation
int affectedInDisaggregation(const disaggregationAction &dis)
Definition CglProbing.hpp:457
setAffectedInDisaggregation
void setAffectedInDisaggregation(disaggregationAction &dis, int affected)
Definition CglProbing.hpp:459
setWhenAtUBInDisaggregation
void setWhenAtUBInDisaggregation(disaggregationAction &dis, bool whenAtUB)
Definition CglProbing.hpp:474
zeroOneInDisaggregation
bool zeroOneInDisaggregation(const disaggregationAction &dis)
Definition CglProbing.hpp:466
whenAtUBInDisaggregation
bool whenAtUBInDisaggregation(const disaggregationAction &dis)
Definition CglProbing.hpp:472
CglCutGenerator::CglCutGenerator
CglCutGenerator()
Default constructor.
CglImplication::CglImplication
CglImplication(const CglImplication &)
Copy constructor.
CglImplication::generateCuts
virtual void generateCuts(const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo())
Generate cuts from implication table Insert generated cuts into the cut set cs.
CglImplication::~CglImplication
virtual ~CglImplication()
Destructor.
CglImplication::operator=
CglImplication & operator=(const CglImplication &rhs)
Assignment operator.
CglImplication::probingInfo_
CglTreeProbingInfo * probingInfo_
Pointer to tree probing info.
Definition CglProbing.hpp:540
CglImplication::CglImplication
CglImplication()
Default constructor.
CglImplication::CglImplication
CglImplication(CglTreeProbingInfo *info)
Constructor with info.
CglImplication::clone
virtual CglCutGenerator * clone() const
Clone.
CglImplication::setProbingInfo
void setProbingInfo(CglTreeProbingInfo *info)
Set implication.
Definition CglProbing.hpp:532
CglImplication::generateCpp
virtual std::string generateCpp(FILE *fp)
Create C++ lines to get to current state.
CglProbing::CglProbing
CglProbing(const CglProbing &)
Copy constructor.
CglProbing::probe
int probe(const OsiSolverInterface &si, const OsiRowCutDebugger *debugger, OsiCuts &cs, double *colLower, double *colUpper, CoinPackedMatrix *rowCopy, CoinPackedMatrix *columnCopy, const CoinBigIndex *rowStartPos, const int *realRow, const double *rowLower, const double *rowUpper, const char *intVar, double *minR, double *maxR, int *markR, CglTreeInfo *info)
Does probing and adding cuts (without cliques and mode_!=0).
CglProbing::getMaxPass
int getMaxPass() const
Get maximum number of passes per node.
CglProbing::getMode
int getMode() const
Get.
CglProbing::colUpper_
double * colUpper_
Upper bounds on columns.
Definition CglProbing.hpp:373
CglProbing::cutVector_
disaggregation * cutVector_
Definition CglProbing.hpp:426
CglProbing::setMaxProbe
void setMaxProbe(int value)
Set maximum number of unsatisfied variables to look at.
CglProbing::getMaxProbe
int getMaxProbe() const
Get maximum number of unsatisfied variables to look at.
CglProbing::cliqueType_
CliqueType * cliqueType_
Clique type.
Definition CglProbing.hpp:431
CglProbing::getLogLevel
int getLogLevel() const
Get log level.
CglProbing::maxElementsRoot_
int maxElementsRoot_
Maximum number of elements in row for scan at root.
Definition CglProbing.hpp:406
CglProbing::deleteCliques
void deleteCliques()
Delete all clique information.
CglProbing::tightLower
const double * tightLower() const
Lower.
CglProbing::tightenBounds
const char * tightenBounds() const
Array which says tighten continuous.
Definition CglProbing.hpp:143
CglProbing::maxProbe_
int maxProbe_
Maximum number of unsatisfied variables to probe.
Definition CglProbing.hpp:394
CglProbing::endFixStart_
int * endFixStart_
End of fixes for a column.
Definition CglProbing.hpp:443
CglProbing::getMaxElements
int getMaxElements() const
Get maximum number of elements in row for it to be considered.
CglProbing::refreshSolver
virtual void refreshSolver(OsiSolverInterface *solver)
This can be used to refresh any inforamtion.
CglProbing::probeCliques
int probeCliques(const OsiSolverInterface &si, const OsiRowCutDebugger *debugger, OsiCuts &cs, double *colLower, double *colUpper, CoinPackedMatrix *rowCopy, CoinPackedMatrix *columnCopy, const int *realRow, double *rowLower, double *rowUpper, char *intVar, double *minR, double *maxR, int *markR, CglTreeInfo *info)
Does probing and adding cuts (with cliques).
CglProbing::getMaxPassRoot
int getMaxPassRoot() const
Get maximum number of passes per node (root node).
CglProbing::tightUpper
const double * tightUpper() const
Upper.
CglProbing::rowCuts_
int rowCuts_
Row cuts flag 0 no cuts, 1 just disaggregation type, 2 coefficient ( 3 both), 4 just column cuts -n a...
Definition CglProbing.hpp:388
CglProbing::rowLower_
double * rowLower_
Lower bounds on rows.
Definition CglProbing.hpp:367
CglProbing::setMaxProbeRoot
void setMaxProbeRoot(int value)
Set maximum number of unsatisfied variables to look at (root node).
CglProbing::disaggregation
struct CglProbing::disaggregation_struct_tag disaggregation
Disaggregation cuts and for building cliques.
CglProbing::CglProbingUnitTest
friend void CglProbingUnitTest(const OsiSolverInterface *siP, const std::string mpdDir)
A function that tests the methods in the CglProbing class.
CglProbing::getMaxElementsRoot
int getMaxElementsRoot() const
Get maximum number of elements in row for it to be considered (root node).
CglProbing::generateCpp
virtual std::string generateCpp(FILE *fp)
Create C++ lines to get to current state.
CglProbing::number01Integers_
int number01Integers_
Number of 0-1 integer variables.
Definition CglProbing.hpp:412
CglProbing::rowCopy_
CoinPackedMatrix * rowCopy_
Row copy (only if snapshot).
Definition CglProbing.hpp:363
CglProbing::maxPass_
int maxPass_
Maximum number of passes to do in probing.
Definition CglProbing.hpp:390
CglProbing::tighten
int tighten(double *colLower, double *colUpper, const int *column, const double *rowElements, const CoinBigIndex *rowStart, const CoinBigIndex *rowStartPos, const int *rowLength, double *rowLower, double *rowUpper, int nRows, int nCols, char *intVar, int maxpass, double tolerance)
This tightens column bounds (and can declare infeasibility) It may also declare rows to be redundant.
CglProbing::zeroFixStart_
int * zeroFixStart_
Start of zeroFixes cliques for a column in matrix or -1 if not in any clique.
Definition CglProbing.hpp:441
CglProbing::maxElements_
int maxElements_
Maximum number of elements in row for scan.
Definition CglProbing.hpp:398
CglProbing::setMaxLookRoot
void setMaxLookRoot(int value)
Set maximum number of variables to look at in one probe (root node).
CglProbing::probeSlacks
int probeSlacks(const OsiSolverInterface &si, const OsiRowCutDebugger *debugger, OsiCuts &cs, double *colLower, double *colUpper, CoinPackedMatrix *rowCopy, CoinPackedMatrix *columnCopy, double *rowLower, double *rowUpper, char *intVar, double *minR, double *maxR, int *markR, CglTreeInfo *info)
Does probing and adding cuts for clique slacks.
CglProbing::generateCutsAndModify
int generateCutsAndModify(const OsiSolverInterface &si, OsiCuts &cs, CglTreeInfo *info)
CglProbing::rowCuts
int rowCuts() const
Get.
CglProbing::maxStackRoot_
int maxStackRoot_
Maximum number of variables to look at in one probe at root.
Definition CglProbing.hpp:404
CglProbing::CglProbing
CglProbing()
Default constructor.
CglProbing::colLower_
double * colLower_
Lower bounds on columns.
Definition CglProbing.hpp:371
CglProbing::setLogLevel
void setLogLevel(int value)
Set log level - 0 none, 1 - a bit, 2 - more details.
CglProbing::cliqueType
CliqueType * cliqueType() const
Clique type.
Definition CglProbing.hpp:240
CglProbing::getMaxProbeRoot
int getMaxProbeRoot() const
Get maximum number of unsatisfied variables to look at (root node).
CglProbing::clone
virtual CglCutGenerator * clone() const
Clone.
CglProbing::numberRows_
int numberRows_
Number of rows in snapshot (or when cliqueRow stuff computed).
Definition CglProbing.hpp:375
CglProbing::cliqueRow_
CliqueEntry * cliqueRow_
For each column with nonzero in row copy this gives a clique "number".
Definition CglProbing.hpp:450
CglProbing::setMaxLook
void setMaxLook(int value)
Set maximum number of variables to look at in one probe.
CglProbing::numberIntegers_
int numberIntegers_
Number of integer variables.
Definition CglProbing.hpp:410
CglProbing::setRowCuts
void setRowCuts(int type)
Set 0 no cuts, 1 just disaggregation type, 2 coefficient ( 3 both).
CglProbing::setUsingObjective
void setUsingObjective(int yesNo)
Set 0 don't 1 do -1 don't even think about it.
CglProbing::tightenThese
void tightenThese(const OsiSolverInterface &solver, int number, const int *which)
Mark variables to be tightened.
CglProbing::snapshot
int snapshot(const OsiSolverInterface &si, char *possible=NULL, bool withObjective=true)
Create a copy of matrix which is to be used this is to speed up process and to give global cuts Can g...
CglProbing::setMaxElements
void setMaxElements(int value)
Set maximum number of elements in row for it to be considered.
CglProbing::mode_
int mode_
Mode - 0 lazy using snapshot, 1 just unsatisfied, 2 all.
Definition CglProbing.hpp:383
CglProbing::cliqueRowStart_
int * cliqueRowStart_
cliqueRow_ starts for each row
Definition CglProbing.hpp:452
CglProbing::gutsOfGenerateCuts
int gutsOfGenerateCuts(const OsiSolverInterface &si, OsiCuts &cs, double *rowLower, double *rowUpper, double *colLower, double *colUpper, CglTreeInfo *info)
Does most of work of generateCuts Returns number of infeasibilities.
CglProbing::operator=
CglProbing & operator=(const CglProbing &rhs)
Assignment operator.
CglProbing::columnCopy_
CoinPackedMatrix * columnCopy_
Column copy (only if snapshot).
Definition CglProbing.hpp:365
CglProbing::numberCliques_
int numberCliques_
Cliques Number of cliques.
Definition CglProbing.hpp:429
CglProbing::primalTolerance_
double primalTolerance_
Tolerance to see if infeasible.
Definition CglProbing.hpp:379
CglProbing::logLevel_
int logLevel_
Log level - 0 none, 1 - a bit, 2 - more details.
Definition CglProbing.hpp:392
CglProbing::tighten2
void tighten2(double *colLower, double *colUpper, const int *column, const double *rowElements, const CoinBigIndex *rowStart, const int *rowLength, double *rowLower, double *rowUpper, double *minR, double *maxR, int *markR, int nRows)
This just sets minima and maxima on rows.
CglProbing::tightenBounds_
char * tightenBounds_
If not null and [i] !=0 then also tighten even if continuous.
Definition CglProbing.hpp:454
CglProbing::mayGenerateRowCutsInTree
virtual bool mayGenerateRowCutsInTree() const
Returns true if may generate Row cuts in tree (rather than root node).
CglProbing::numberCliques
int numberCliques() const
Number of cliques.
Definition CglProbing.hpp:237
CglProbing::rowUpper_
double * rowUpper_
Upper bounds on rows.
Definition CglProbing.hpp:369
CglProbing::getMaxLook
int getMaxLook() const
Get maximum number of variables to look at in one probe.
CglProbing::setupRowCliqueInformation
void setupRowCliqueInformation(const OsiSolverInterface &si)
Sets up clique information for each row.
CglProbing::oneFixStart_
int * oneFixStart_
Start of oneFixes cliques for a column in matrix or -1 if not in any clique.
Definition CglProbing.hpp:438
CglProbing::setMode
void setMode(int mode)
Set.
CglProbing::totalTimesCalled_
int totalTimesCalled_
Total number of times called.
Definition CglProbing.hpp:416
CglProbing::maxProbeRoot_
int maxProbeRoot_
Maximum number of unsatisfied variables to probe at root.
Definition CglProbing.hpp:402
CglProbing::cliqueStart_
CoinBigIndex * cliqueStart_
Start of each clique.
Definition CglProbing.hpp:433
CglProbing::~CglProbing
virtual ~CglProbing()
Destructor.
CglProbing::maxStack_
int maxStack_
Maximum number of variables to look at in one probe.
Definition CglProbing.hpp:396
CglProbing::numberThisTime_
int numberThisTime_
Number looked at this time.
Definition CglProbing.hpp:414
CglProbing::setMaxPass
void setMaxPass(int value)
Set maximum number of passes per node.
CglProbing::numberColumns_
int numberColumns_
Number of columns in problem ( must == current).
Definition CglProbing.hpp:377
CglProbing::createCliques
int createCliques(OsiSolverInterface &si, int minimumSize=2, int maximumSize=100)
Creates cliques for use by probing.
CglProbing::lookedAt
const int * lookedAt() const
Which ones looked at this time.
Definition CglProbing.hpp:217
CglProbing::getUsingObjective
int getUsingObjective() const
Get.
CglProbing::setMaxPassRoot
void setMaxPassRoot(int value)
Set maximum number of passes per node (root node).
CglProbing::numberThisTime
int numberThisTime() const
Number looked at this time.
Definition CglProbing.hpp:214
CglProbing::maxPassRoot_
int maxPassRoot_
Maximum number of passes to do in probing at root.
Definition CglProbing.hpp:400
CglProbing::deleteSnapshot
void deleteSnapshot()
Deletes snapshot.
CglProbing::generateCuts
virtual void generateCuts(const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo())
Generate probing/disaggregation cuts for the model of the solver interface, si.
CglProbing::cliqueModel
OsiSolverInterface * cliqueModel(const OsiSolverInterface *model, int type)
Create a fake model by adding cliques if type&4 then delete rest of model first, if 1 then add proper...
CglProbing::whichClique_
int * whichClique_
Clique numbers for one or zero fixes.
Definition CglProbing.hpp:445
CglProbing::relaxedRowUpper
const double * relaxedRowUpper() const
Upper.
CglProbing::cliqueStart
CoinBigIndex * cliqueStart() const
Start of each clique.
Definition CglProbing.hpp:243
CglProbing::lookedAt_
int * lookedAt_
Which ones looked at this time.
Definition CglProbing.hpp:418
CglProbing::relaxedRowLower
const double * relaxedRowLower() const
Lower.
CglProbing::getMaxLookRoot
int getMaxLookRoot() const
Get maximum number of variables to look at in one probe (root node).
CglProbing::cliqueEntry
CliqueEntry * cliqueEntry() const
Entries for clique.
Definition CglProbing.hpp:246
CglProbing::cliqueEntry_
CliqueEntry * cliqueEntry_
Entries for clique.
Definition CglProbing.hpp:435
CglProbing::setMaxElementsRoot
void setMaxElementsRoot(int value)
Set maximum number of elements in row for it to be considered (root node).
CglProbing::usingObjective_
int usingObjective_
Whether to include objective as constraint.
Definition CglProbing.hpp:408
CglTreeInfo
Information about where the cut generator is invoked from.
Definition CglTreeInfo.hpp:15
CglTreeProbingInfo
Definition CglTreeInfo.hpp:92
CglProbing::CliqueType
Clique type.
Definition CglProbing.hpp:230
CglProbing::CliqueType::equality
unsigned int equality
Definition CglProbing.hpp:231
CglProbing::disaggregation_struct_tag
Disaggregation cuts and for building cliques.
Definition CglProbing.hpp:420
CglProbing::disaggregation_struct_tag::sequence
int sequence
Definition CglProbing.hpp:421
CglProbing::disaggregation_struct_tag::index
disaggregationAction * index
Definition CglProbing.hpp:424
CglProbing::disaggregation_struct_tag::length
int length
Definition CglProbing.hpp:423
CliqueEntry
Derived class to pick up probing info.
Definition CglTreeInfo.hpp:86
disaggregationAction
Only useful type of disaggregation is most normal For now just done for 0-1 variables Can be used for...
Definition CglProbing.hpp:16
disaggregationAction::affected
unsigned int affected
Definition CglProbing.hpp:21