Go to the documentation of this file.
17 const std::string mpdDir );
53 CglClique(
bool setPacking =
false,
bool justOriginalRows =
false);
130 double *all_edgecost;
133 nodenum(0), edgenum(0), density(0),
134 min_deg_node(0), min_degree(0), max_deg_node(0), max_degree(0),
135 nodes(0), all_nbr(0), all_edgecost(0) {}
220 void selectFractionalBinaries(
const OsiSolverInterface& si);
223 void selectFractionals(
const OsiSolverInterface& si);
225 void selectRowCliques(
const OsiSolverInterface& si,
int numOriginalRows);
227 void createSetPackingSubMatrix(
const OsiSolverInterface& si);
229 void createFractionalGraph();
231 int createNodeNode();
233 void deleteSetPackingSubMatrix();
235 void deleteFractionalGraph();
237 void find_scl(OsiCuts& cs);
239 void find_rcl(OsiCuts& cs);
241 int scl_choose_next_node(
const int current_nodenum,
242 const int *current_indices,
243 const int *current_degrees,
244 const double *current_values);
246 void scl_delete_node(
const int del_ind,
int& current_nodenum,
247 int *current_indices,
int *current_degrees,
248 double *current_values);
250 int enumerate_maximal_cliques(
int& pos,
bool* scl_label, OsiCuts& cs);
252 int greedy_maximal_clique(OsiCuts& cs);
254 void recordClique(
const int len,
int* indices, OsiCuts& cs);
263 const std::string mpdDir);
virtual CglCutGenerator * clone() const
Clone.
void setDoRowClique(bool yesno=true)
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)
virtual void generateCuts(const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo())
Generate cuts for the model data contained in si.
double petol
The primal tolerance in the solverinterface.
CglClique(bool setPacking=false, bool justOriginalRows=false)
Default constructor.
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.
scl_next_node_method
possible choices for selecting the next node in the star clique search
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)
CglClique & operator=(const CglClique &rhs)
Assignment operator.
CglFakeClique(OsiSolverInterface *solver=NULL, bool setPacking=false)
Default constructor.
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.
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.
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
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.
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
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 setMaxNumber(int value)
Maximum number of binaries for looking at all.
CglFakeClique(const CglFakeClique &rhs)
Copy constructor.
void setStarCliqueReport(bool yesno=true)
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 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.