PandA-2024.02
|
This header file includes four different algorithms heuristically solving the clique covering problem. More...
#include "clique_covering_graph.hpp"
#include "custom_map.hpp"
#include "custom_set.hpp"
#include "dsatur2_coloring.hpp"
#include "exceptions.hpp"
#include "ortools/graph/assignment.h"
#include "refcount.hpp"
#include "string_manipulation.hpp"
#include <algorithm>
#include <boost/graph/adjacency_matrix.hpp>
#include <boost/graph/filtered_graph.hpp>
#include <boost/graph/graphviz.hpp>
#include <boost/graph/incremental_components.hpp>
#include <boost/graph/properties.hpp>
#include <boost/pending/disjoint_sets.hpp>
#include <boost/tuple/tuple.hpp>
#include <boost/version.hpp>
#include <cstddef>
#include <iterator>
#include <limits>
#include <ostream>
#include <string>
#include <utility>
#include <vector>
Go to the source code of this file.
Data Structures | |
struct | check_clique< vertex_type > |
struct | filter_clique< vertex_type > |
Functor used to reduce the size of clique: the rationale of filtering is that too many sharing may create problem to the timing closure of the design. More... | |
class | clique_covering< VertexType > |
class | compatibility_edge_writer |
Functor used by boost::write_graphviz to write the edge info. More... | |
class | compatibility_node_info_writer |
Functor used by boost::write_graphviz to write the node info. More... | |
class | TTT_maximal_weighted_clique< Graph > |
Class computing the maximal weighted clique from a generic graph. More... | |
class | TTT_maximal_weighted_clique_fast< Graph > |
fast version that just returns the first maximal clique found More... | |
class | coloring_based_clique_covering< vertex_type > |
class | TTT_based_clique_covering_fast< vertex_type > |
second fast version of the TTT_based_clique_covering. More... | |
class | TTT_based_clique_covering< vertex_type > |
class | TS_based_clique_covering< vertex_type > |
class | RTS_based_clique_covering< vertex_type > |
class | bipartite_matching_clique_covering< vertex_type > |
clique covering based on bipartite matching procedure More... | |
Macros | |
#define | THRESHOLD_2_SIMPLIFY 200 |
#define | MAX_EDGE_CONSIDERED 50 |
Functions | |
template<typename IIter1 , typename Container , typename OIter > | |
OIter | unordered_set_difference (IIter1 first1, IIter1 last1, Container second, OIter result) |
unordered_set_difference More... | |
template<typename IIter1 , typename Container , typename OIter > | |
OIter | unordered_set_intersection (IIter1 first1, IIter1 last1, Container second, OIter result) |
unordered_set_intersection More... | |
const std::string | CliqueCovering_AlgorithmToString (const CliqueCovering_Algorithm clique_covering_algorithm) |
Return the name corresponding to an clique covering algorithm enum. More... | |
This header file includes four different algorithms heuristically solving the clique covering problem.
This header has 4 classes solving clique covering problem. Three of them consider the weighted of the edges during the clique selection.
The first two heuristics are based on these two papers:
Definition in file clique_covering.hpp.
#define MAX_EDGE_CONSIDERED 50 |
Definition at line 1252 of file clique_covering.hpp.
Referenced by TS_based_clique_covering< vertex_type >::select_edge(), and TS_based_clique_covering< vertex_type >::select_edge_start().
#define THRESHOLD_2_SIMPLIFY 200 |
Definition at line 870 of file clique_covering.hpp.
Referenced by coloring_based_clique_covering< vertex_type >::exec().
|
strong |
Defines all clique covering algorithm.
Enumerator | |
---|---|
COLORING | |
WEIGHTED_COLORING | |
TTT_CLIQUE_COVERING | |
TTT_CLIQUE_COVERING2 | |
TTT_CLIQUE_COVERING_FAST | |
TTT_CLIQUE_COVERING_FAST2 | |
TS_CLIQUE_COVERING | |
TS_WEIGHTED_CLIQUE_COVERING | |
BIPARTITE_MATCHING |
Definition at line 138 of file clique_covering.hpp.
const std::string CliqueCovering_AlgorithmToString | ( | const CliqueCovering_Algorithm | clique_covering_algorithm | ) |
Return the name corresponding to an clique covering algorithm enum.
clique_covering_algorithm | is the clique covering algorithm |
Return the name corresponding to an clique covering algorithm enum.
Definition at line 41 of file clique_covering.cpp.
References BIPARTITE_MATCHING, COLORING, THROW_UNREACHABLE, TS_CLIQUE_COVERING, TS_WEIGHTED_CLIQUE_COVERING, TTT_CLIQUE_COVERING, TTT_CLIQUE_COVERING2, TTT_CLIQUE_COVERING_FAST, TTT_CLIQUE_COVERING_FAST2, and WEIGHTED_COLORING.
Referenced by WeightedCliqueRegisterBindingSpecialization::GetKindText(), and CDFCModuleBindingSpecialization::GetKindText().
OIter unordered_set_difference | ( | IIter1 | first1, |
IIter1 | last1, | ||
Container | second, | ||
OIter | result | ||
) |
unordered_set_difference
Definition at line 107 of file clique_covering.hpp.
References result.
Referenced by TTT_maximal_weighted_clique< Graph >::expand(), and TTT_maximal_weighted_clique_fast< Graph >::expand().
OIter unordered_set_intersection | ( | IIter1 | first1, |
IIter1 | last1, | ||
Container | second, | ||
OIter | result | ||
) |
unordered_set_intersection
Definition at line 123 of file clique_covering.hpp.
References result.
Referenced by TTT_maximal_weighted_clique< Graph >::expand(), TTT_maximal_weighted_clique_fast< Graph >::expand(), TS_based_clique_covering< vertex_type >::select_edge(), and TS_based_clique_covering< vertex_type >::select_edge_start().