Camargue
Classes | Namespaces | Typedefs
cc_lpcuts.hpp File Reference

Wrappers for Concorde cut structures/separators. More...

#include "graph.hpp"
#include "datagroups.hpp"
#include <stdexcept>
#include <string>
#include <memory>
#include <vector>
#include <concorde/INCLUDE/tsp.h>
Include dependency graph for cc_lpcuts.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  CMR::Sep::TourGraph
 Wrapper to Concorde CCtsp_lpgraph for pricing cuts at tours. More...
 
class  CMR::Sep::LPcutList
 Management of Concorde lpcut_in linked list. More...
 
struct  CMR::Sep::LPcutList::hungry_delete
 Deleter to clear the linked list. More...
 
class  CMR::Sep::CCsepBase
 Abstract base class for calling Concorde separation routines. More...
 
class  CMR::Sep::LocalCuts
 Primal separation of non-template local cuts via standard heuristics. More...
 
class  CMR::Sep::ConcordeSeparator< sep_fn, check_filter_primal, fn_name >
 Class template for straightforward Concorde separation routines. More...
 

Namespaces

 CMR
 The namespace for this project.
 
 CMR::Sep
 Classes and functions related to cut separation.
 

Typedefs

using CMR::Sep::CCsepCall = decltype(&CCtsp_segment_cuts)
 Alias declaration for Concorde separator call prototype.
 

Variables

String names for ConcordeSeparator template instantiation.

These need to be defined to pass a string literal as a template parameter, see eg http://www.comeaucomputing.com/techtalk/templates/#stringliteral

constexpr char CMR::Sep::seg_fname [] = "CCtsp_segment_cuts"
 
constexpr char CMR::Sep::con_fname [] = "CCtsp_connect_cuts"
 
constexpr char CMR::Sep::ex_fname [] = "CCtsp_exact_subtours"
 
constexpr char CMR::Sep::f2m_fname [] = "CCtsp_fastblossom"
 
constexpr char CMR::Sep::gh2m_fname [] = "CCtsp_ghfastblossom"
 
constexpr char CMR::Sep::blk_fname [] = "CCtsp_block_combs"
 

ConcordeSeparator explicit instantiations.

Except for SegmentCuts, all of these are standard heuristics.

using CMR::Sep::SegmentCuts = ConcordeSeparator< CCtsp_segment_cuts, false, seg_fname >
 Exact primal SEC separation.
 
using CMR::Sep::ConnectCuts = ConcordeSeparator< CCtsp_connect_cuts, false, con_fname >
 Standard connected component SEC generation.
 
using CMR::Sep::ExactSub = ConcordeSeparator< CCtsp_exact_subtours, false, ex_fname >
 Exact standard SEC separation.
 
using CMR::Sep::FastBlossoms = ConcordeSeparator< CCtsp_fastblossom, true, f2m_fname >
 Odd component fast blossoms.
 
using CMR::Sep::GHblossoms = ConcordeSeparator< CCtsp_ghfastblossom, true, gh2m_fname >
 Gr"otschel-Holland blossom heuristic.
 
using CMR::Sep::BlockCombs = ConcordeSeparator< BlkCombCall, true, blk_fname >
 Block comb separation.
 
int CMR::Sep::BlkCombCall (CCtsp_lpcut_in **c, int *cutcount, int ncount, int ecount, int *elist, double *ecap)
 Wrapper function because CCtsp_block_combs takes a silent parameter. More...
 

Detailed Description

Wrappers for Concorde cut structures/separators.