public class AdaptiveIsomorphismInspectorFactory extends Object
Note that the concrete implementations are package-private and should not be created directly. If you are the maintainer of the package, you can add new implementation classes, and add them to the "check-list". The current algorithms do not support graphs with multiple edges (Multigraph / Pseudograph)
GraphIsomorphismInspector| Modifier and Type | Field and Description |
|---|---|
static int |
GRAPH_TYPE_ARBITRARY |
static int |
GRAPH_TYPE_MULTIGRAPH |
static int |
GRAPH_TYPE_PLANAR |
static int |
GRAPH_TYPE_TREE |
| Constructor and Description |
|---|
AdaptiveIsomorphismInspectorFactory() |
| Modifier and Type | Method and Description |
|---|---|
protected static void |
assertUnsupportedGraphTypes(Graph g)
Checks if one of the graphs is from unsupported graph type and throws
IllegalArgumentException if it is.
|
protected static int |
checkGraphsType(Graph graph1,
Graph graph2) |
protected static <V,E> GraphIsomorphismInspector |
createAppropriateConcreteInspector(int graphType,
Graph<V,E> graph1,
Graph<V,E> graph2,
EquivalenceComparator<V,Graph<V,E>> vertexChecker,
EquivalenceComparator<E,Graph<V,E>> edgeChecker)
Checks the graph type, and accordingly decides which type of concrete
inspector class to create.
|
static <V,E> GraphIsomorphismInspector |
createIsomorphismInspector(Graph<V,E> graph1,
Graph<V,E> graph2)
Creates a new inspector, letting this class determine what is the most
efficient algorithm and using default equivalence comparators.
|
static <V,E> GraphIsomorphismInspector |
createIsomorphismInspector(Graph<V,E> graph1,
Graph<V,E> graph2,
EquivalenceComparator<V,Graph<V,E>> vertexChecker,
EquivalenceComparator<E,Graph<V,E>> edgeChecker)
Creates a new inspector, letting this class determine what is the most
efficient algorithm.
|
static <V,E> GraphIsomorphismInspector |
createIsomorphismInspectorByType(int type,
Graph<V,E> graph1,
Graph<V,E> graph2)
Creates a new inspector for a particular graph type (planar / tree /
other) using default equivalence comparators.
|
static <V,E> GraphIsomorphismInspector |
createIsomorphismInspectorByType(int type,
Graph<V,E> graph1,
Graph<V,E> graph2,
EquivalenceComparator<V,Graph<V,E>> vertexChecker,
EquivalenceComparator<E,Graph<V,E>> edgeChecker)
Creates a new inspector for a particular graph type (planar / tree /
other).
|
protected static <V,E> GraphIsomorphismInspector |
createTopologicalExhaustiveInspector(Graph<V,E> graph1,
Graph<V,E> graph2,
EquivalenceComparator<V,Graph<V,E>> vertexChecker,
EquivalenceComparator<E,Graph<V,E>> edgeChecker) |
public static final int GRAPH_TYPE_ARBITRARY
public static final int GRAPH_TYPE_PLANAR
public static final int GRAPH_TYPE_TREE
public static final int GRAPH_TYPE_MULTIGRAPH
public static <V,E> GraphIsomorphismInspector createIsomorphismInspector(Graph<V,E> graph1, Graph<V,E> graph2, EquivalenceComparator<V,Graph<V,E>> vertexChecker, EquivalenceComparator<E,Graph<V,E>> edgeChecker)
graph1 - graph2 - vertexChecker - may be nulledgeChecker - may be nullpublic static <V,E> GraphIsomorphismInspector createIsomorphismInspector(Graph<V,E> graph1, Graph<V,E> graph2)
same as calling createIsomorphismInspector(graph1,graph2,null,null);
graph1 - graph2 - public static <V,E> GraphIsomorphismInspector createIsomorphismInspectorByType(int type, Graph<V,E> graph1, Graph<V,E> graph2, EquivalenceComparator<V,Graph<V,E>> vertexChecker, EquivalenceComparator<E,Graph<V,E>> edgeChecker)
type - - AdaptiveIsomorphismInspectorFactory.GRAPH_TYPE_XXXgraph1 - graph2 - vertexChecker - - can be nulledgeChecker - - can be nullpublic static <V,E> GraphIsomorphismInspector createIsomorphismInspectorByType(int type, Graph<V,E> graph1, Graph<V,E> graph2)
same as calling createAppropriateConcreteInspector(graph1,graph2,null,null);
type - - AdaptiveIsomorphismInspectorFactory.GRAPH_TYPE_XXXgraph1 - graph2 - protected static <V,E> GraphIsomorphismInspector createAppropriateConcreteInspector(int graphType, Graph<V,E> graph1, Graph<V,E> graph2, EquivalenceComparator<V,Graph<V,E>> vertexChecker, EquivalenceComparator<E,Graph<V,E>> edgeChecker)
graph1 - graph2 - vertexChecker - edgeChecker - protected static void assertUnsupportedGraphTypes(Graph g) throws IllegalArgumentException
g - IllegalArgumentExceptionprotected static <V,E> GraphIsomorphismInspector createTopologicalExhaustiveInspector(Graph<V,E> graph1, Graph<V,E> graph2, EquivalenceComparator<V,Graph<V,E>> vertexChecker, EquivalenceComparator<E,Graph<V,E>> edgeChecker)
Copyright © 2015. All Rights Reserved.