Go to the documentation of this file.
17 const std::string mpdDir );
53 CglClique(
bool setPacking =
false,
bool justOriginalRows =
false);
242 const int *current_indices,
243 const int *current_degrees,
244 const double *current_values);
247 int *current_indices,
int *current_degrees,
248 double *current_values);
254 void recordClique(
const int len,
int* indices, OsiCuts& cs);
263 const std::string mpdDir);
278 generateCuts(
const OsiSolverInterface& si, OsiCuts & cs,
300 CglFakeClique(OsiSolverInterface * solver=NULL,
bool setPacking =
false);
void createSetPackingSubMatrix(const OsiSolverInterface &si)
void find_rcl(OsiCuts &cs)
virtual CglCutGenerator * clone() const
Clone.
A node of the fractional graph.
void setDoRowClique(bool yesno=true)
int scl_choose_next_node(const int current_nodenum, const int *current_indices, const int *current_degrees, const double *current_values)
bool do_row_clique
data for the star clique algorithm
Information about where the cut generator is invoked from.
void setRowCliqueCandidateLengthThreshold(int maxlen)
void setMinViolation(double minviol)
Probing Cut Generator Class.
void considerRows(const int numRows, const int *rowInd)
int * all_nbr
The array of all the neighbors.
virtual void generateCuts(const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo())
Generate cuts for the model data contained in si.
int enumerate_maximal_cliques(int &pos, bool *scl_label, OsiCuts &cs)
double petol
The primal tolerance in the solverinterface.
virtual ~CglFakeClique()
Destructor.
bool justOriginalRows_
True if just look at original rows.
void assignSolver(OsiSolverInterface *fakeSolver)
Assign solver (generator takes over ownership)
int sp_numrows
pieces of the set packing part of the solverinterface
CglClique(const CglClique &rhs)
Copy constructor.
void deleteSetPackingSubMatrix()
scl_next_node_method
possible choices for selecting the next node in the star clique search
void recordClique(const int len, int *indices, OsiCuts &cs)
scl_next_node_method scl_next_node_rule
How the next node to be added to the star clique should be selected.
void setStarCliqueCandidateLengthThreshold(int maxlen)
double * all_edgecost
The array of the costs of the edges going to the neighbors.
CglClique & operator=(const CglClique &rhs)
Assignment operator.
A graph corresponding to a fractional solution of an LP.
friend void CglCliqueUnitTest(const OsiSolverInterface *siP, const std::string mpdDir)
A function that tests the methods in the CglClique class.
int cl_del_length
The length of cl_del_indices.
int cl_length
The length of cl_indices.
bool scl_report_result
whether to give a detailed statistics on the star clique method
Cut Generator Base Class.
int degree
degree of the node
virtual ~CglClique()
Destructor.
int cl_perm_length
The length of cl_perm_indices.
CglFakeClique & operator=(const CglFakeClique &rhs)
Assignment operator.
bool setPacking_
An indicator showing whether the whole matrix in the solverinterface is a set packing problem or not.
bool * node_node
the node-node incidence matrix of the intersection graph.
void createFractionalGraph()
int rcl_candidate_length_threshold
In the row clique method the maximal length of the candidate list (those nodes that can extend the ro...
int * cl_indices
List of indices that should be considered for extending the ones listed in cl_perm_indices.
const int * cl_perm_indices
variables/arrays that are used across many methods
void find_scl(OsiCuts &cs)
int maxNumber_
Maximum number of binaries for looking at all.
OsiSolverInterface * fakeSolver_
fake solver to use
virtual void generateCuts(const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo())
Generate cuts for the model data contained in si.
double val
the fractional value of the variable corresponding to this node
void setDoStarClique(bool yesno=true)
int scl_candidate_length_threshold
In the star clique method the maximal length of the candidate list (those nodes that are in a star,...
bool rcl_report_result
whether to give a detailed statistics on the row clique method
double density
density= edgenum/(nodenum choose 2)
double * edgecosts
1-x_i-x_j, needed for odd holes, in the same order as the adj list, pointer into all_edgecost
void CglCliqueUnitTest(const OsiSolverInterface *siP, const std::string mpdDir)
A function that tests the methods in the CglClique class.
void setRowCliqueReport(bool yesno=true)
void scl_delete_node(const int del_ind, int ¤t_nodenum, int *current_indices, int *current_degrees, double *current_values)
void setMaxNumber(int value)
Maximum number of binaries for looking at all.
void selectFractionals(const OsiSolverInterface &si)
Scan through the variables and select those that are at a fractional level.
CglFakeClique(const CglFakeClique &rhs)
Copy constructor.
void setStarCliqueReport(bool yesno=true)
void selectFractionalBinaries(const OsiSolverInterface &si)
Scan through the variables and select those that are binary and are at a fractional level.
CglProbing * probing_
Probing object.
double getMinViolation() const
int * cl_del_indices
An array of nodes discarded from the candidate list.
virtual std::string generateCpp(FILE *fp)
Create C++ lines to get to current state.
void deleteFractionalGraph()
int * nbrs
pointer into all_nbr
fnode * nodes
The array of the nodes in the graph.
int greedy_maximal_clique(OsiCuts &cs)
void selectRowCliques(const OsiSolverInterface &si, int numOriginalRows)
void setStarCliqueNextNodeMethod(scl_next_node_method method)
frac_graph fgraph
the intersection graph corresponding to the set packing problem
virtual CglCutGenerator * clone() const
Clone.
bool do_star_clique
whether to do the star clique algorithm or not.