Camargue
Public Types | Public Member Functions | Public Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
CMR::Sep::MetaCuts Class Reference

Separation of cut metamorphoses. More...

#include <meta_sep.hpp>

Collaboration diagram for CMR::Sep::MetaCuts:
Collaboration graph
[legend]

Public Types

enum  Type { Decker, Handling, Teething }
 Categories of implemented cut metamorphoses.
 

Public Member Functions

 MetaCuts (const ExternalCuts &EC_, const std::vector< Graph::Edge > &core_edges_, const LP::ActiveTour &active_tour_, Data::SupportGroup &s_dat)
 
bool find_cuts (Type meta_type)
 
bool tighten_cuts ()
 
LPcutListmetacuts_q ()
 

Public Attributes

bool verbose = false
 
bool filter_primal = true
 

Private Types

using HGitr = std::vector< HyperGraph >::const_iterator
 

Private Member Functions

bool price_combs (bool tighten)
 Price all comb-like cuts in LP; return true iff some are of interest.
 
bool above_threshold (int num_paths)
 Used by attempt_sep to determine if num_paths is high enough.
 
bool attempt_sep ()
 Should separation be attempted at all. More...
 
void price_cliques ()
 Price all the Cliques in the LP.
 
bool pure_comb (CCtsp_lpcut_in &c)
 Is c a pure comb.
 

Private Attributes

std::unordered_map< Clique, double > clique_vals
 
std::vector< HGitr > interest_combs
 
const ExternalCutsEC
 
const std::vector< Graph::Edge > & core_edges
 
const LP::ActiveTouractive_tour
 
Data::SupportGroupsupp_data
 
TourGraph TG
 
std::vector< int > perm_elist
 
LPcutList meta_q
 

Detailed Description

Separation of cut metamorphoses.

Member Function Documentation

bool CMR::Sep::MetaCuts::attempt_sep ( )
private

Should separation be attempted at all.

Returns
true iff we should attempt separation. This is always true for Decker cuts. For Handling and Teething it is based on properties of the x-vector.
Remarks
A rewrite of static int no_tighten from concorde/TSP/control.c

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