43 lines
1.4 KiB
Markdown
43 lines
1.4 KiB
Markdown
# `gb_vf2pp` — VF2++ in Rust
|
||
|
||
This crate implements the VF2++ subgraph isomorphism algorithm [1].
|
||
It can find
|
||
[graph isomorphisms](https://en.wikipedia.org/wiki/Graph_isomorphism),
|
||
[subgraph isomorphisms](https://en.wikipedia.org/wiki/Subgraph_isomorphism_problem),
|
||
and [induced subgraph isomorphisms](https://en.wikipedia.org/wiki/Induced_subgraph_isomorphism_problem).
|
||
|
||
# Features
|
||
|
||
This is a work in progress. Some features are not yet implemented.
|
||
|
||
- [x] Enumerate graph isomorphisms
|
||
- [x] Enumerate subgraph isomorphisms
|
||
- [x] Enumerate induced subgraph isomorphisms
|
||
- [ ] Find minimum cost isomorphism
|
||
- [x] Support directed graphs
|
||
- [x] Support undirected graphs
|
||
- [x] Support disconnected graphs
|
||
- [x] Support node labels
|
||
- [x] Support edge labels
|
||
- [x] Graph trait
|
||
- [ ] Performance benchmarks
|
||
- [ ] Test databases
|
||
- [ ] Examples
|
||
|
||
# Remaining work
|
||
|
||
- [ ] Implement VF2 cutting rules
|
||
- [ ] Implement all of VF2++ (only VF2 implemented so far)
|
||
|
||
# References
|
||
|
||
[1] A. Jüttner and P. Madarasi,
|
||
“VF2++—An improved subgraph isomorphism algorithm,”
|
||
Discrete Applied Mathematics, vol. 242, pp. 69–81,
|
||
Jun. 2018, doi: https://doi.org/10.1016/j.dam.2018.02.018.
|
||
|
||
[2] L. P. Cordella, P. Foggia, C. Sansone, and M. Vento,
|
||
“A (sub)graph isomorphism algorithm for matching large graphs,”
|
||
IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 26, no. 10, pp. 1367–1372,
|
||
Oct. 2004, doi: https://doi.org/10.1109/tpami.2004.75.
|