Hi.
I'm currently trying to implement a generic pattern matching (aka
subgraph isomorphism) algorithm for use with the Boost Graph Library.
My first-attempt function signature looks like this (comments included
for further description of what I'm attempting)
//! Seeks to find matches of the graph \a g2 in the graph \a g1.
/*! This is called "graph pattern matching", or
"subgraph homomorphism/isomorphism". The results are returned in a
std::list of std::maps where the maps' key is the node_descriptor in
\a g2 and the values are the corresponding node_descriptors in \a g1.
The size of the returned list represents the number of matches.
If \a properties is true it means that all vertex and edge properties
must be equal in both structures for a match to be found. Otherwise,
only the graph structure itself will be checked.
\sa positioned_pattern_match
*/
template <class Graph>
std::list< std::map