V
- the graph vertex type.E
- the graph edge type.public class ChordalGraphColoring<V,E> extends Object implements VertexColoringAlgorithm<V>
ChordalityInspector
to
compute a
perfect elimination order.
The vertex coloring for a chordal graph is computed in $\mathcal{O}(|V| + |E|)$ time.
All the methods in this class are invoked in a lazy fashion, meaning that computations are only
started once the method gets invoked.VertexColoringAlgorithm.Coloring<V>, VertexColoringAlgorithm.ColoringImpl<V>
Constructor and Description |
---|
ChordalGraphColoring(Graph<V,E> graph)
Creates a new ChordalGraphColoring instance.
|
ChordalGraphColoring(Graph<V,E> graph,
ChordalityInspector.IterationOrder iterationOrder)
Creates a new ChordalGraphColoring instance.
|
Modifier and Type | Method and Description |
---|---|
VertexColoringAlgorithm.Coloring<V> |
getColoring()
Returns a minimum vertex
coloring of the inspected
graph . |
List<V> |
getPerfectEliminationOrder()
Returns the
perfect elimination order used to create the coloring (if one exists).
|
public ChordalGraphColoring(Graph<V,E> graph)
ChordalityInspector
used in this
implementation uses the default MaximumCardinalityIterator
iterator.graph
- graphpublic ChordalGraphColoring(Graph<V,E> graph, ChordalityInspector.IterationOrder iterationOrder)
ChordalityInspector
used in this
implementation uses either the MaximumCardinalityIterator
iterator or the
LexBreadthFirstIterator
iterator, depending on the parameter iterationOrder
.graph
- graphiterationOrder
- constant which defines iterator to be used by the
ChordalityInspector
in this implementation.public VertexColoringAlgorithm.Coloring<V> getColoring()
graph
. If the graph isn't chordal, returns null. The
number of colors used in the coloring equals the chromatic number of the input graph.getColoring
in interface VertexColoringAlgorithm<V>
graph
if it is chordal, null otherwise.public List<V> getPerfectEliminationOrder()
Copyright © 2019. All rights reserved.