Camargue
|
Class for building miniature simple DP witness cutgraphs. More...
#include <witness.hpp>
Public Member Functions | |
DPwitness (CandidateTeeth &cands, const std::vector< int > &partition_nodes, int seed) | |
Construct a mini cutgraph induced by a partition. | |
bool | simple_DP_sep (CutQueue< dominoparity > &domino_q) |
Create a cutgraph and grab odd cuts from it. | |
Private Member Functions | |
void | build_light_tree () |
Build the tooth inequality tree. | |
void | add_web_edges () |
Add nonnegativity inequality edges. | |
void | build_gh_tree () |
Construct the Gomory-Hu tree. | |
void | dfs_odd_cuts (CC_GHnode *n) |
Search tree for odd cuts. | |
void | expand_cut (CC_GHnode *n, std::vector< int > &cut_nodes) |
Expand a Gomory-Hu node into a cut. | |
void | grab_dominos (CutQueue< dominoparity > &domino_q) |
Get simple DP inequalities from fundamental cuts of the GH tree. | |
void | grab_cuts (CutQueue< dominoparity > &domino_q) |
Private Attributes | |
std::vector< std::vector< SimpleTooth > > | light_teeth |
const Data::SupportGroup & | supp_dat |
const std::vector< int > & | perm |
std::vector< SimpleTooth * > | cutgraph_nodes |
std::vector< int > | cut_elist |
std::vector< double > | cut_ecap |
std::vector< int > | odd_nodes_list |
std::vector< bool > | node_marks |
CutQueue< CC_GHnode * > | CC_gh_q |
CC_GHtree | gh_tree |
const int | random_seed |
Class for building miniature simple DP witness cutgraphs.