|
IterOrbit
Subgraph isomorphism with iterative graphlet-orbit filtering
|
Files | |
| AppGraph.cpp | |
| Graph storage, the text-format reader and induced subgraphs. | |
| FilterEngine.cpp | |
| Iterative orbit filtering: Algorithm 1 (IterOrbitFilter) and the filter operators of Section "Methodology" of the paper. | |
| main.cpp | |
| Command-line driver: load the graphs, filter (FilterEngine), order (OrderEngine), compute symmetry-breaking constraints when counting (Symmetry), search (SearchEngine), and report the match count and the time of each phase. | |
| OrbitCounter.cpp | |
| Graphlet orbit counting on top of the Escape/EVOKE library (extern/Escape). | |
| OrderEngine.cpp | |
| Matching orders (Section "Ordering Strategy" of the paper). | |
| SearchEngine.cpp | |
| Enumeration (Section "Enumeration" of the paper): the candidate-space index, the edge-orbit index filter, backtracking with optional conflict-directed backjumping, symmetry-broken counting, and counting the last level without visiting it. | |
| Symmetry.cpp | |
| Symmetry-breaking constraints for counting: the pattern's automorphism orbits by individualisation-refinement, turned into Grochow-Kellis ordering constraints. | |