Camargue
pool_sep.hpp
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
5 
6 #ifndef CMR_POOL_SEP_H
7 #define CMR_POOL_SEP_H
8 
9 #include "cc_lpcuts.hpp"
10 #include "hypergraph.hpp"
11 
12 #include <unordered_map>
13 #include <utility>
14 #include <vector>
15 
16 namespace CMR {
17 namespace Sep {
18 
20 class PoolCuts : public CCsepBase {
21 public:
22  PoolCuts(std::vector<int> &elist, std::vector<double> &ecap,
23  TourGraph &TG, LPcutList &cutq, CCtsp_lpcuts *_pool, int seed)
24  : CCsepBase(elist, ecap, TG, cutq), pool(_pool), random_seed(seed) {}
25 
27  bool find_cuts();
28 
30  bool tighten_pool();
31 
33  bool find_consec1(CCtsp_cuttree &tightcuts);
34 
36  bool find_tour_tight();
37 
38 private:
40  bool attempt_tighten();
41 
43  bool above_threshold(int num_paths);
44 
45  CCtsp_lpcuts *pool;
46  int random_seed;
47 };
48 
49 }
50 }
51 
52 #endif
bool find_tour_tight()
Search the pool just for cuts that are tight at the current tour.
Definition: pool_sep.cpp:123
bool attempt_tighten()
Based on the ecap vector, should we attempt tightening.
Definition: pool_sep.cpp:193
Representing cuts outside the LP solver.
Management of Concorde lpcut_in linked list.
Definition: cc_lpcuts.hpp:56
bool find_cuts()
Search the pool for violated cuts.
Definition: pool_sep.cpp:32
bool above_threshold(int num_paths)
Threshold used by PoolCuts::attempt_tighten.
Definition: pool_sep.cpp:188
bool find_consec1(CCtsp_cuttree &tightcuts)
Find combs from consecutive ones.
Definition: pool_sep.cpp:92
Cut pool separation.
Definition: pool_sep.hpp:20
The namespace for this project.
Definition: abc_nodesel.hpp:20
bool tighten_pool()
Try to obtain violated cuts by tightening cuts in the pool.
Definition: pool_sep.cpp:56
Wrappers for Concorde cut structures/separators.
Abstract base class for calling Concorde separation routines.
Definition: cc_lpcuts.hpp:98
Wrapper to Concorde CCtsp_lpgraph for pricing cuts at tours.
Definition: cc_lpcuts.hpp:28