Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

NodeColoringHalldorsson.h
Go to the documentation of this file.
1 
32 #pragma once
33 
35 
36 namespace ogdf {
37 
44 public:
49  NodeColoringHalldorsson() { m_searchProcedure = SearchProcedure::wigdersonSearch; }
50 
56  inline void setSearchProcedure(SearchProcedure searchProcedure) {
57  m_searchProcedure = searchProcedure;
58  }
59 
60  virtual NodeColor call(const Graph& graph, NodeArray<NodeColor>& colors,
61  NodeColor start = 0) override;
62 
63 private:
65 
74  void performHalldorsson(const Graph& graph, List<node>& independentSet);
75 
86  bool halldorssonRecursive(const Graph& graph, List<node>& independentSet, int k, double alpha);
87 
99  SearchWrapperHalldorsson(NodeColoringHalldorsson& coloringHalldorsson, const Graph& graph,
100  List<node>& independentSet, double alpha)
101  : m_coloring(coloringHalldorsson)
102  , m_graph(graph)
103  , m_independentSet(independentSet)
104  , m_alpha(alpha) { }
105 
106  bool step(int k) override {
107  return m_coloring.halldorssonRecursive(m_graph, m_independentSet, k, m_alpha);
108  }
109 
111  const Graph& m_graph;
113  double m_alpha;
114  };
115 };
116 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
ogdf::NodeColoringHalldorsson::setSearchProcedure
void setSearchProcedure(SearchProcedure searchProcedure)
Sets the search procedure to find the smallest possible parameter k such as the graph is k-colorable.
Definition: NodeColoringHalldorsson.h:56
ogdf::NodeColoringHalldorsson::m_searchProcedure
SearchProcedure m_searchProcedure
Definition: NodeColoringHalldorsson.h:64
ogdf::NodeColoringHalldorsson::SearchWrapperHalldorsson::step
bool step(int k) override
Performs a step in the search procedure.
Definition: NodeColoringHalldorsson.h:106
ogdf::NodeColoringHalldorsson::SearchWrapperHalldorsson::m_independentSet
List< node > & m_independentSet
Definition: NodeColoringHalldorsson.h:112
ogdf::NodeColoringHalldorsson::SearchWrapperHalldorsson::m_alpha
double m_alpha
Definition: NodeColoringHalldorsson.h:113
ogdf::NodeColoringHalldorsson::SearchWrapperHalldorsson::m_coloring
NodeColoringHalldorsson & m_coloring
Definition: NodeColoringHalldorsson.h:110
ogdf::NodeColoringHalldorsson::SearchWrapperHalldorsson::m_graph
const Graph & m_graph
Definition: NodeColoringHalldorsson.h:111
ogdf::NodeColoringHalldorsson::NodeColoringHalldorsson
NodeColoringHalldorsson()
The constructor.
Definition: NodeColoringHalldorsson.h:49
ogdf::NodeColoringHalldorsson
Approximation algorithms for the node coloring problem in graphs.
Definition: NodeColoringHalldorsson.h:43
ogdf::colors
const std::array< Color, 63 > colors
An array of 63 different colors to cycle through.
ogdf::NodeColoringModule
Approximation algorithms for the node coloring problem in graphs.
Definition: NodeColoringModule.h:44
ogdf::List
Doubly linked lists (maintaining the length of the list).
Definition: List.h:42
ogdf::internal::GraphRegisteredArray
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition: Graph_d.h:651
ogdf::NodeColoringHalldorsson::SearchWrapperHalldorsson
Wraps the recursive Halldórsson algorithm.
Definition: NodeColoringHalldorsson.h:91
ogdf::Graph
Data type for general directed graphs (adjacency list representation).
Definition: Graph_d.h:862
NodeColoringModule.h
Template of base class of node coloring algorithms.
ogdf::NodeColoringHalldorsson::SearchWrapperHalldorsson::SearchWrapperHalldorsson
SearchWrapperHalldorsson(NodeColoringHalldorsson &coloringHalldorsson, const Graph &graph, List< node > &independentSet, double alpha)
Creates the wrapper.
Definition: NodeColoringHalldorsson.h:99
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
ogdf::NodeColoringModule::SearchProcedure
SearchProcedure
Declares the search procedures.
Definition: NodeColoringModule.h:54
ogdf::NodeColoringModule::SearchWrapper
Wraps the search for the minimum parameter k so that the same code can be reused for all algorithms.
Definition: NodeColoringModule.h:192