Graph Simulation by itself can not produce bijections.
Graph Simulation by itself can not produce bijections.
Create an initial array of feasible mappings 'phi' from each query vertex 'u' to the corresponding set of data graph vertices '{v}' whose label matches 'u's.
Create an initial array of feasible mappings 'phi' from each query vertex 'u' to the corresponding set of data graph vertices '{v}' whose label matches 'u's.
Apply the Graph Simulation pattern matching algorithm to find the mappings from the query graph 'q' to the data graph 'g'.
Apply the Graph Simulation pattern matching algorithm to find the mappings from the query graph 'q' to the data graph 'g'. These are represented by a multi-valued function 'phi' that maps each query graph vertex 'u' to a set of data graph vertices '{v}'.
Given the mappings 'phi' produced by the 'feasibleMates' method, eliminate mappings 'u -> v' when v's children fail to match u's.
Given the mappings 'phi' produced by the 'feasibleMates' method, eliminate mappings 'u -> v' when v's children fail to match u's.
array of mappings from a query vertex u to { graph vertices v }
The
GraphSim3
class provides a second implementation for Simple Graph Simulation. It differ from GraphSim in the looping order in the main for-loop and early termination when phi(u) is empty.