ROSE 0.11.145.147
|
Vertex equivalence for common subgraph isomorphism.
Determines when a pair of vertices, one from each of two graphs, can be considered isomorphic. This class serves as both a model for those wishing to write their own formulation of equivalence, and as the default implementation when none is provided by the user.
Definition at line 430 of file GraphAlgorithm.h.
#include <Sawyer/GraphAlgorithm.h>
Public Member Functions | |
bool | mu (const GraphA &g1, const typename GraphA::ConstVertexIterator &v1, const GraphB &g2, const typename GraphB::ConstVertexIterator &v2) const |
Isomorphism of two vertices. | |
bool | nu (const GraphA &g1, typename GraphA::ConstVertexIterator i1, typename GraphA::ConstVertexIterator i2, const std::vector< typename GraphA::ConstEdgeIterator > &edges1, const GraphB &g2, typename GraphB::ConstVertexIterator j1, typename GraphB::ConstVertexIterator j2, const std::vector< typename GraphB::ConstEdgeIterator > &edges2) const |
Isomorphism of vertices based on incident edges. | |
void | progress (size_t) |
Called at each step during the algorithm. | |
|
inline |
Isomorphism of two vertices.
Given a pair of vertices, one from each of two graphs, return true if the vertices could be an isomorphic pair in common subgraph isomorphism algorithms. This default implementation always returns true.
Definition at line 436 of file GraphAlgorithm.h.
|
inline |
Isomorphism of vertices based on incident edges.
Given two pairs of vertices, (i1
, i2
) and (j1
, j2
), one from each of two graphs g1
and g2
, and given the two sets of edges that connect the vertices of each pair (in both directions), determine whether vertices i2
and j2
are isomorphic. The pair (i1
, j1
) is already part of a common subgraph isomorphism solution. Vertices i2
and j2
are already known to satisfy the mu predicate and have the appropriate number of edges for inclusion into the solution.
This default implementation always returns true.
Definition at line 454 of file GraphAlgorithm.h.
|
inline |
Called at each step during the algorithm.
This method is called each time the algorithm tests a potential solution. It can be used to report progress or terminate the search after some number of iterations. The argument is the number of vertices in the potential solution.
Definition at line 474 of file GraphAlgorithm.h.