Package org.jgrapht.alg.isomorphism
Class VF2AbstractIsomorphismInspector<V,E>
- java.lang.Object
-
- org.jgrapht.alg.isomorphism.VF2AbstractIsomorphismInspector<V,E>
-
- Type Parameters:
V- the type of the verticesE- the type of the edges
- All Implemented Interfaces:
IsomorphismInspector<V,E>
- Direct Known Subclasses:
VF2GraphIsomorphismInspector,VF2SubgraphIsomorphismInspector
public abstract class VF2AbstractIsomorphismInspector<V,E> extends Object implements IsomorphismInspector<V,E>
Base implementation of the VF2 algorithm using its feature of detecting isomorphism between two graphs as described in Cordella et al. A (sub)graph isomorphism algorithm for matching large graphs (2004), DOI:10.1109/TPAMI.2004.75, http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=1323804This implementation of the VF2 algorithm does not support graphs with multiple edges.
-
-
Field Summary
Fields Modifier and Type Field Description protected Comparator<E>edgeComparatorprotected Graph<V,E>graph1protected Graph<V,E>graph2protected org.jgrapht.alg.isomorphism.GraphOrdering<V,E>ordering1protected org.jgrapht.alg.isomorphism.GraphOrdering<V,E>ordering2protected Comparator<V>vertexComparator
-
Constructor Summary
Constructors Constructor Description VF2AbstractIsomorphismInspector(Graph<V,E> graph1, Graph<V,E> graph2)Construct a new base implementation of the VF2 isomorphism inspector.VF2AbstractIsomorphismInspector(Graph<V,E> graph1, Graph<V,E> graph2, boolean cacheEdges)Construct a new base implementation of the VF2 isomorphism inspector.VF2AbstractIsomorphismInspector(Graph<V,E> graph1, Graph<V,E> graph2, Comparator<V> vertexComparator, Comparator<E> edgeComparator)Construct a new base implementation of the VF2 isomorphism inspector.VF2AbstractIsomorphismInspector(Graph<V,E> graph1, Graph<V,E> graph2, Comparator<V> vertexComparator, Comparator<E> edgeComparator, boolean cacheEdges)Construct a new base implementation of the VF2 isomorphism inspector.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract Iterator<GraphMapping<V,E>>getMappings()Get an iterator over all calculated (isomorphic) mappings between two graphs.booleanisomorphismExists()Check if an isomorphism exists.
-
-
-
Field Detail
-
vertexComparator
protected Comparator<V> vertexComparator
-
edgeComparator
protected Comparator<E> edgeComparator
-
-
Constructor Detail
-
VF2AbstractIsomorphismInspector
public VF2AbstractIsomorphismInspector(Graph<V,E> graph1, Graph<V,E> graph2, Comparator<V> vertexComparator, Comparator<E> edgeComparator, boolean cacheEdges)
Construct a new base implementation of the VF2 isomorphism inspector.- Parameters:
graph1- the first graphgraph2- the second graphvertexComparator- comparator for semantic equivalence of verticesedgeComparator- comparator for semantic equivalence of edgescacheEdges- if true, edges get cached for faster access
-
VF2AbstractIsomorphismInspector
public VF2AbstractIsomorphismInspector(Graph<V,E> graph1, Graph<V,E> graph2, Comparator<V> vertexComparator, Comparator<E> edgeComparator)
Construct a new base implementation of the VF2 isomorphism inspector.- Parameters:
graph1- the first graphgraph2- the second graphvertexComparator- comparator for semantic equivalence of verticesedgeComparator- comparator for semantic equivalence of edges
-
VF2AbstractIsomorphismInspector
public VF2AbstractIsomorphismInspector(Graph<V,E> graph1, Graph<V,E> graph2, boolean cacheEdges)
Construct a new base implementation of the VF2 isomorphism inspector.- Parameters:
graph1- the first graphgraph2- the second graphcacheEdges- if true, edges get cached for faster access
-
-
Method Detail
-
getMappings
public abstract Iterator<GraphMapping<V,E>> getMappings()
Description copied from interface:IsomorphismInspectorGet an iterator over all calculated (isomorphic) mappings between two graphs.- Specified by:
getMappingsin interfaceIsomorphismInspector<V,E>- Returns:
- an iterator over all calculated (isomorphic) mappings between two graphs
-
isomorphismExists
public boolean isomorphismExists()
Description copied from interface:IsomorphismInspectorCheck if an isomorphism exists.- Specified by:
isomorphismExistsin interfaceIsomorphismInspector<V,E>- Returns:
- true if there is an isomorphism, false if there is no isomorphism
-
-