V
- the graph vertex typeE
- the graph edge typepublic class PatonCycleBase<V,E> extends Object implements UndirectedCycleBase<V,E>, CycleBasisAlgorithm<V,E>
See:
K. Paton, An algorithm for finding a fundamental set of cycles for an undirected linear graph,
Comm. ACM 12 (1969), pp. 514-518.
Note that Paton's algorithm produces a fundamental cycle basis while this implementation produces a weakly fundamental cycle basis. A cycle basis is called weakly fundamental if there exists a linear ordering of the cycles in a cycle basis such that each cycle includes at least one edge that is not part of any previous cycle. Every fundamental cycle basis is weakly fundamental (for all linear orderings) but not necessarily vice versa.
CycleBasisAlgorithm.CycleBasis<V,E>, CycleBasisAlgorithm.CycleBasisImpl<V,E>
Constructor and Description |
---|
PatonCycleBase()
Deprecated.
Use
PatonCycleBase(Graph) instead. |
PatonCycleBase(Graph<V,E> graph)
Create a cycle base finder for the specified graph.
|
Modifier and Type | Method and Description |
---|---|
List<List<V>> |
findCycleBase()
Deprecated.
in favor of
getCycleBasis() |
CycleBasisAlgorithm.CycleBasis<V,E> |
getCycleBasis()
Return an undirected cycle basis of a graph.
|
Graph<V,E> |
getGraph()
Deprecated.
in favor of
CycleBasisAlgorithm |
void |
setGraph(Graph<V,E> graph)
Deprecated.
in favor of
CycleBasisAlgorithm |
@Deprecated public PatonCycleBase()
PatonCycleBase(Graph)
instead.public PatonCycleBase(Graph<V,E> graph)
graph
- the input graphIllegalArgumentException
- if the graph argument is null
or the graph is
not undirected@Deprecated public Graph<V,E> getGraph()
CycleBasisAlgorithm
getGraph
in interface UndirectedCycleBase<V,E>
@Deprecated public void setGraph(Graph<V,E> graph)
CycleBasisAlgorithm
setGraph
in interface UndirectedCycleBase<V,E>
graph
- the graph.@Deprecated public List<List<V>> findCycleBase()
getCycleBasis()
findCycleBase
in interface UndirectedCycleBase<V,E>
null
.IllegalArgumentException
- if the graph contains multiple edges between two verticespublic CycleBasisAlgorithm.CycleBasis<V,E> getCycleBasis()
getCycleBasis
in interface CycleBasisAlgorithm<V,E>
IllegalArgumentException
- if the graph is not undirectedIllegalArgumentException
- if the graph contains multiple edges between two verticesCopyright © 2018. All rights reserved.