PandA-2024.02
Public Member Functions | Private Types | Private Member Functions
TS_based_clique_covering< vertex_type > Class Template Reference

#include <clique_covering.hpp>

Inheritance diagram for TS_based_clique_covering< vertex_type >:
Inheritance graph
[legend]
Collaboration diagram for TS_based_clique_covering< vertex_type >:
Collaboration graph
[legend]

Public Member Functions

 TS_based_clique_covering (bool _all_edges, unsigned int nvert)
 constructor More...
 
void do_clique_covering (const cc_compatibility_graphRef CG, typename boost::disjoint_sets< rank_pmap_type, pred_pmap_type > &ds, CustomUnorderedSet< C_vertex > &support, const CustomUnorderedSet< C_vertex > &all_vertices, const filter_clique< vertex_type > &fc) override
 
- Public Member Functions inherited from coloring_based_clique_covering< vertex_type >
 coloring_based_clique_covering (bool _all_edges, unsigned int nvert)
 constructor More...
 
 ~coloring_based_clique_covering () override=default
 destructor More...
 
C_vertex add_vertex (const vertex_type &element, const std::string &name) override
 add a vertex More...
 
void add_edge (const vertex_type &src, const vertex_type &dest, int _weight) override
 add an edge More...
 
size_t num_vertices () override
 return the number of vertices of the clique More...
 
CustomOrderedSet< vertex_type > get_clique (unsigned int i) override
 Returns a clique. More...
 
void build_partitions (CustomUnorderedSet< C_vertex > &support, boost::disjoint_sets< rank_pmap_type, pred_pmap_type > &ds, std::map< C_vertex, CustomOrderedSet< C_vertex >> &current_partitions)
 build partitions More...
 
void exec (const filter_clique< vertex_type > &fc, check_clique< vertex_type > &) override
 Abstract method that will execute clique covering algorithm. More...
 
void writeDot (const std::string &filename) const override
 Writes a dotty representation of the actual graph. More...
 
void add_subpartitions (size_t, vertex_type) override
 add subpartitions over which bipartite matching can start on More...
 
void suggest_min_resources (size_t) override
 suggest that the problem have at least a given number of resources More...
 
void suggest_max_resources (size_t) override
 suggest that the problem have at worst no more than the given number of resources More...
 
void min_resources (size_t) override
 specify the minimum number of resources More...
 
void max_resources (size_t) override
 specify the maximum number of resources More...
 
- Public Member Functions inherited from clique_covering< vertex_type >
 clique_covering ()=default
 Default constructor. More...
 
virtual ~clique_covering ()=default
 Destructor. More...
 

Private Types

using edge_descriptor = boost::graph_traits< cc_compatibility_graph >::edge_descriptor
 

Private Member Functions

bool is_non_compliant (C_vertex src, C_vertex tgt, const cc_compatibility_graph &subgraph, const CustomUnorderedSet< C_vertex > &all_vertices, typename boost::disjoint_sets< rank_pmap_type, pred_pmap_type > &ds, const filter_clique< vertex_type > &fc)
 
bool select_edge_start (C_vertex source, C_vertex &tgt, const cc_compatibility_graph &subgraph, const CustomUnorderedSet< C_vertex > &all_vertices, typename boost::disjoint_sets< rank_pmap_type, pred_pmap_type > &ds, const filter_clique< vertex_type > &fc)
 
bool select_edge (C_vertex &src, C_vertex &tgt, const cc_compatibility_graph &subgraph, const CustomUnorderedSet< C_vertex > &all_vertices, typename boost::disjoint_sets< rank_pmap_type, pred_pmap_type > &ds, const filter_clique< vertex_type > &fc)
 Compute the heuristics and return the best matching edge. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from clique_covering< vertex_type >
static refcount< clique_covering< vertex_type > > create_solver (CliqueCovering_Algorithm solver, unsigned int nvert)
 Creates a reference to desired solver. More...
 
- Protected Attributes inherited from coloring_based_clique_covering< vertex_type >
CustomUnorderedMap< C_vertex, vertex_type > uv2v
 map between C_vertex and vertex_type More...
 
CustomUnorderedMap< C_vertex, std::string > names
 name map for the C_vertex vertices More...
 

Detailed Description

template<typename vertex_type>
class TS_based_clique_covering< vertex_type >

Definition at line 1224 of file clique_covering.hpp.

Member Typedef Documentation

◆ edge_descriptor

template<typename vertex_type >
using TS_based_clique_covering< vertex_type >::edge_descriptor = boost::graph_traits<cc_compatibility_graph>::edge_descriptor
private

Definition at line 1226 of file clique_covering.hpp.

Constructor & Destructor Documentation

◆ TS_based_clique_covering()

template<typename vertex_type >
TS_based_clique_covering< vertex_type >::TS_based_clique_covering ( bool  _all_edges,
unsigned int  nvert 
)
inlineexplicit

constructor

Definition at line 1373 of file clique_covering.hpp.

Member Function Documentation

◆ do_clique_covering()

template<typename vertex_type >
void TS_based_clique_covering< vertex_type >::do_clique_covering ( const cc_compatibility_graphRef  CG,
typename boost::disjoint_sets< rank_pmap_type, pred_pmap_type > &  ds,
CustomUnorderedSet< C_vertex > &  support,
const CustomUnorderedSet< C_vertex > &  all_vertices,
const filter_clique< vertex_type > &  fc 
)
inlineoverridevirtual

build the clique seed

remove non conformant edges

check trivial cases

Reimplemented from coloring_based_clique_covering< vertex_type >.

Definition at line 1378 of file clique_covering.hpp.

References lenet_tvm::target, and THROW_ASSERT.

◆ is_non_compliant()

template<typename vertex_type >
bool TS_based_clique_covering< vertex_type >::is_non_compliant ( C_vertex  src,
C_vertex  tgt,
const cc_compatibility_graph subgraph,
const CustomUnorderedSet< C_vertex > &  all_vertices,
typename boost::disjoint_sets< rank_pmap_type, pred_pmap_type > &  ds,
const filter_clique< vertex_type > &  fc 
)
inlineprivate

Definition at line 1228 of file clique_covering.hpp.

References filter_clique< vertex_type >::is_filtering(), and filter_clique< vertex_type >::select_candidate_to_remove().

Here is the call graph for this function:

◆ select_edge()

template<typename vertex_type >
bool TS_based_clique_covering< vertex_type >::select_edge ( C_vertex src,
C_vertex tgt,
const cc_compatibility_graph subgraph,
const CustomUnorderedSet< C_vertex > &  all_vertices,
typename boost::disjoint_sets< rank_pmap_type, pred_pmap_type > &  ds,
const filter_clique< vertex_type > &  fc 
)
inlineprivate

Compute the heuristics and return the best matching edge.

Definition at line 1311 of file clique_covering.hpp.

References counter, edges, max, MAX_EDGE_CONSIDERED, lenet_tvm::target, and unordered_set_intersection().

Here is the call graph for this function:

◆ select_edge_start()

template<typename vertex_type >
bool TS_based_clique_covering< vertex_type >::select_edge_start ( C_vertex  source,
C_vertex tgt,
const cc_compatibility_graph subgraph,
const CustomUnorderedSet< C_vertex > &  all_vertices,
typename boost::disjoint_sets< rank_pmap_type, pred_pmap_type > &  ds,
const filter_clique< vertex_type > &  fc 
)
inlineprivate

Definition at line 1253 of file clique_covering.hpp.

References counter, max, MAX_EDGE_CONSIDERED, lenet_tvm::target, and unordered_set_intersection().

Here is the call graph for this function:

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

Generated on Mon Feb 12 2024 13:04:08 for PandA-2024.02 by doxygen 1.8.13