Cbc  2.10.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
CglFakeClique Class Reference

#include <CglClique.hpp>

+ Inheritance diagram for CglFakeClique:
+ Collaboration diagram for CglFakeClique:

Public Member Functions

 CglFakeClique (const CglFakeClique &rhs)
 Copy constructor. More...
 
virtual CglCutGeneratorclone () const
 Clone. More...
 
CglFakeCliqueoperator= (const CglFakeClique &rhs)
 Assignment operator. More...
 
virtual void generateCuts (const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo())
 Generate cuts for the model data contained in si. More...
 
- Public Member Functions inherited from CglClique
 CglClique (const CglClique &rhs)
 Copy constructor. More...
 
CglCliqueoperator= (const CglClique &rhs)
 Assignment operator. More...
 
 CglClique (bool setPacking=false, bool justOriginalRows=false)
 Default constructor. More...
 
virtual ~CglClique ()
 Destructor. More...
 
virtual std::string generateCpp (FILE *fp)
 Create C++ lines to get to current state. More...
 
void considerRows (const int numRows, const int *rowInd)
 
void setStarCliqueNextNodeMethod (scl_next_node_method method)
 
void setStarCliqueCandidateLengthThreshold (int maxlen)
 
void setRowCliqueCandidateLengthThreshold (int maxlen)
 
void setStarCliqueReport (bool yesno=true)
 
void setRowCliqueReport (bool yesno=true)
 
void setDoStarClique (bool yesno=true)
 
void setDoRowClique (bool yesno=true)
 
void setMinViolation (double minviol)
 
double getMinViolation () const
 
void setMaxNumber (int value)
 Maximum number of binaries for looking at all. More...
 
- Public Member Functions inherited from CglCutGenerator
 CglCutGenerator ()
 Default constructor. More...
 
 CglCutGenerator (const CglCutGenerator &)
 Copy constructor. More...
 
CglCutGeneratoroperator= (const CglCutGenerator &rhs)
 Assignment operator. More...
 
virtual ~CglCutGenerator ()
 Destructor. More...
 
virtual void refreshSolver (OsiSolverInterface *)
 This can be used to refresh any information. More...
 
int getAggressiveness () const
 Get Aggressiveness - 0 = neutral, 100 is normal root node. More...
 
void setAggressiveness (int value)
 Set Aggressiveness - 0 = neutral, 100 is normal root node. More...
 
void setGlobalCuts (bool trueOrFalse)
 Set whether can do global cuts. More...
 
bool canDoGlobalCuts () const
 Say whether can do global cuts. More...
 
virtual bool mayGenerateRowCutsInTree () const
 Returns true if may generate Row cuts in tree (rather than root node). More...
 
virtual bool needsOptimalBasis () const
 Return true if needs optimal basis to do cuts. More...
 
virtual int maximumLengthOfCutInTree () const
 Return maximum length of cut in tree. More...
 

Constructors and destructors

OsiSolverInterfacefakeSolver_
 fake solver to use More...
 
CglProbingprobing_
 Probing object. More...
 
 CglFakeClique (OsiSolverInterface *solver=NULL, bool setPacking=false)
 Default constructor. More...
 
virtual ~CglFakeClique ()
 Destructor. More...
 
void assignSolver (OsiSolverInterface *fakeSolver)
 Assign solver (generator takes over ownership) More...
 

Additional Inherited Members

- Public Types inherited from CglClique
enum  scl_next_node_method { SCL_MIN_DEGREE, SCL_MAX_DEGREE, SCL_MAX_XJ_MAX_DEG }
 possible choices for selecting the next node in the star clique search More...
 
- Public Attributes inherited from CglCutGenerator
int aggressive_
 Aggressiveness - 0 = neutral, 100 is normal root node. More...
 
bool canDoGlobalCuts_
 True if can do global cuts i.e. no general integers. More...
 
- Protected Attributes inherited from CglClique
const int * cl_perm_indices
 variables/arrays that are used across many methods More...
 
int cl_perm_length
 The length of cl_perm_indices. More...
 
int * cl_indices
 List of indices that should be considered for extending the ones listed in cl_perm_indices. More...
 
int cl_length
 The length of cl_indices. More...
 
int * cl_del_indices
 An array of nodes discarded from the candidate list. More...
 
int cl_del_length
 The length of cl_del_indices. More...
 
bool setPacking_
 An indicator showing whether the whole matrix in the solverinterface is a set packing problem or not. More...
 
bool justOriginalRows_
 True if just look at original rows. More...
 
int sp_numrows
 pieces of the set packing part of the solverinterface More...
 
int * sp_orig_row_ind
 
int sp_numcols
 
int * sp_orig_col_ind
 
double * sp_colsol
 
int * sp_col_start
 
int * sp_col_ind
 
int * sp_row_start
 
int * sp_row_ind
 
frac_graph fgraph
 the intersection graph corresponding to the set packing problem More...
 
bool * node_node
 the node-node incidence matrix of the intersection graph. More...
 
double petol
 The primal tolerance in the solverinterface. More...
 
int maxNumber_
 Maximum number of binaries for looking at all. More...
 
bool do_row_clique
 data for the star clique algorithm More...
 
bool do_star_clique
 whether to do the star clique algorithm or not. More...
 
scl_next_node_method scl_next_node_rule
 How the next node to be added to the star clique should be selected. More...
 
int scl_candidate_length_threshold
 In the star clique method the maximal length of the candidate list (those nodes that are in a star, i.e., connected to the center of the star) to allow complete enumeration of maximal cliques. More...
 
bool scl_report_result
 whether to give a detailed statistics on the star clique method More...
 
int rcl_candidate_length_threshold
 In the row clique method the maximal length of the candidate list (those nodes that can extend the row clique, i.e., connected to all nodes in the row clique) to allow complete enumeration of maximal cliques. More...
 
bool rcl_report_result
 whether to give a detailed statistics on the row clique method More...
 

Detailed Description

Definition at line 266 of file CglClique.hpp.

Constructor & Destructor Documentation

CglFakeClique::CglFakeClique ( const CglFakeClique rhs)

Copy constructor.

CglFakeClique::CglFakeClique ( OsiSolverInterface solver = NULL,
bool  setPacking = false 
)

Default constructor.

If the setPacking argument is set to true then CglFakeClique will assume that the problem in the solverinterface passed to the generateCuts() method describes a set packing problem, i.e.,

  • all variables are binary
  • the matrix is a 0-1 matrix
  • all constraints are '= 1' or '<= 1'

Otherwise the user can use the considerRows() method to set the list of clique rows, that is,

  • all coeffs corresponding to binary variables at fractional level is 1
  • all other coeffs are non-negative
  • the constraint is '= 1' or '<= 1'.

If the user does not set the list of clique rows then CglFakeClique will start the generateCuts() methods by scanning the matrix for them.

virtual CglFakeClique::~CglFakeClique ( )
virtual

Destructor.

Member Function Documentation

virtual CglCutGenerator* CglFakeClique::clone ( ) const
virtual

Clone.

Reimplemented from CglClique.

CglFakeClique& CglFakeClique::operator= ( const CglFakeClique rhs)

Assignment operator.

virtual void CglFakeClique::generateCuts ( const OsiSolverInterface si,
OsiCuts cs,
const CglTreeInfo  info = CglTreeInfo() 
)
virtual

Generate cuts for the model data contained in si.

The generated cuts are inserted into and returned in the collection of cuts cs.

Reimplemented from CglClique.

void CglFakeClique::assignSolver ( OsiSolverInterface fakeSolver)

Assign solver (generator takes over ownership)

Member Data Documentation

OsiSolverInterface* CglFakeClique::fakeSolver_
protected

fake solver to use

Definition at line 307 of file CglClique.hpp.

CglProbing* CglFakeClique::probing_
protected

Probing object.

Definition at line 309 of file CglClique.hpp.


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