Dual Graph Simulation by itself can not produce bijections.
Dual 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 Dual Graph Simulation pattern matching algorithm to find the mappings from the query graph 'q' to the data graph 'g'.
Apply the Dual 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 (1) v's children fail to match u's or (2) v's parents fail to match u's.
Given the mappings 'phi' produced by the 'feasibleMates' method, eliminate mappings 'u -> v' when (1) v's children fail to match u's or (2) v's parents fail to match u's.
array of mappings from a query vertex u to { graph vertices v }
The 'DualSim' classs provides an implementation for Dual Graph Simulation.