coin-Bcp
Classes | Enumerations | Functions
MC_cut.hpp File Reference
#include <algorithm>
#include "CoinHelperFunctions.hpp"
#include "BCP_math.hpp"
#include "BCP_mempool.hpp"
#include "BCP_cut.hpp"
Include dependency graph for MC_cut.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  MC_cycle_cut
 
class  MC_explicit_dense_cut
 

Enumerations

enum  MC_cut_t { MC_cut_t__cycle, MC_cut_t__explicit_dense, MC_cut_t__cycle, MC_cut_t__explicit_dense }
 
enum  MC_EdgeOrdering {
  MC_MstEdgeOrderingPreferZero, MC_MstEdgeOrderingPreferOne, MC_MstEdgeOrderingPreferExtreme, MC_MstEdgeOrderingPreferZero,
  MC_MstEdgeOrderingPreferOne, MC_MstEdgeOrderingPreferExtreme
}
 

Functions

bool MC_cycle_cut_less (const BCP_cut *bc0, const BCP_cut *bc1)
 
bool MC_cycle_cut_equal (const BCP_cut *bc0, const BCP_cut *bc1)
 
MC_solutionMC_mst_heur (const MC_problem &mc, const double *x, const double *w, const double alpha, const double beta, const MC_EdgeOrdering edge_ordering, const int heurswitchround, const bool do_edge_switch_heur, const int struct_switch_heur)
 
MC_solutionMC_mst_cutgen (const MC_problem &mc, const double *x, const double *w, const double alpha, const double beta, const MC_EdgeOrdering edge_ordering, const int heurswitchround, const bool do_edge_switch_heur, const int struct_switch_heur, const double minviol, const int maxnewcuts, BCP_vec< BCP_cut * > &new_cuts, BCP_vec< BCP_row * > &new_rows)
 
void MC_kruskal (const MC_problem &mc, const int *edgeorder, const double *x, int *nodesign, int *edges_in_tree)
 
void MC_kruskal (const MC_problem &mc, const int *edgeorder, const double *x, int *nodesign, int *parentnode, int *parentedge)
 
void MC_generate_shortest_path_cycles (const MC_problem &mc, const double *x, const bool generate_all_cuts, const double minviol, BCP_vec< BCP_cut * > &new_cuts, BCP_vec< BCP_row * > &new_rows)
 
void MC_test_ising_four_cycles (const int n, const int *cycles, const double *x, const double minviol, BCP_vec< BCP_cut * > &cuts, BCP_vec< BCP_row * > &rows)
 
void MC_test_ising_triangles (const int n, const int *triangles, const double *x, const double minviol, BCP_vec< BCP_cut * > &cuts, BCP_vec< BCP_row * > &rows)
 

Enumeration Type Documentation

enum MC_cut_t
Enumerator
MC_cut_t__cycle 
MC_cut_t__explicit_dense 
MC_cut_t__cycle 
MC_cut_t__explicit_dense 

Definition at line 21 of file MC_cut.hpp.

Enumerator
MC_MstEdgeOrderingPreferZero 
MC_MstEdgeOrderingPreferOne 
MC_MstEdgeOrderingPreferExtreme 
MC_MstEdgeOrderingPreferZero 
MC_MstEdgeOrderingPreferOne 
MC_MstEdgeOrderingPreferExtreme 

Definition at line 26 of file MC_cut.hpp.

Function Documentation

bool MC_cycle_cut_less ( const BCP_cut bc0,
const BCP_cut bc1 
)
inline

Definition at line 107 of file MC_cut.hpp.

References MC_cycle_cut::cycle_len, MC_cycle_cut::edges, and MC_cycle_cut::pos_edges.

bool MC_cycle_cut_equal ( const BCP_cut bc0,
const BCP_cut bc1 
)
inline

Definition at line 122 of file MC_cut.hpp.

References MC_cycle_cut::cycle_len, MC_cycle_cut::edges, and MC_cycle_cut::pos_edges.

MC_solution* MC_mst_heur ( const MC_problem mc,
const double *  x,
const double *  w,
const double  alpha,
const double  beta,
const MC_EdgeOrdering  edge_ordering,
const int  heurswitchround,
const bool  do_edge_switch_heur,
const int  struct_switch_heur 
)
MC_solution* MC_mst_cutgen ( const MC_problem mc,
const double *  x,
const double *  w,
const double  alpha,
const double  beta,
const MC_EdgeOrdering  edge_ordering,
const int  heurswitchround,
const bool  do_edge_switch_heur,
const int  struct_switch_heur,
const double  minviol,
const int  maxnewcuts,
BCP_vec< BCP_cut * > &  new_cuts,
BCP_vec< BCP_row * > &  new_rows 
)
void MC_kruskal ( const MC_problem mc,
const int *  edgeorder,
const double *  x,
int *  nodesign,
int *  edges_in_tree 
)
void MC_kruskal ( const MC_problem mc,
const int *  edgeorder,
const double *  x,
int *  nodesign,
int *  parentnode,
int *  parentedge 
)
void MC_generate_shortest_path_cycles ( const MC_problem mc,
const double *  x,
const bool  generate_all_cuts,
const double  minviol,
BCP_vec< BCP_cut * > &  new_cuts,
BCP_vec< BCP_row * > &  new_rows 
)
void MC_test_ising_four_cycles ( const int  n,
const int *  cycles,
const double *  x,
const double  minviol,
BCP_vec< BCP_cut * > &  cuts,
BCP_vec< BCP_row * > &  rows 
)
void MC_test_ising_triangles ( const int  n,
const int *  triangles,
const double *  x,
const double  minviol,
BCP_vec< BCP_cut * > &  cuts,
BCP_vec< BCP_row * > &  rows 
)