UnCoVer (Using Coverability for Verification)
|
Checks whether two given Hypergraphs are isomorphic or not. More...
#include <IsomorphismChecker.h>
Public Member Functions | |
virtual | ~IsomorphismChecker () |
Destroys this IsomorphismChecker. More... | |
Static Public Member Functions | |
static bool | areIsomorphic (Hypergraph const &hg1, Hypergraph const &hg2) |
Returns true if the two given graphs are isomorphic. More... | |
Private Member Functions | |
IsomorphismChecker () | |
This constructor cannot/should not be called. | |
Static Private Member Functions | |
static bool | insertIfValid (map< IDType, IDType > &forw, map< IDType, IDType > &backw, IDType id0, IDType id1) |
Inserts a pair of the given IDs to the given forward and backward maps if the resulting Mapping is still bijective. More... | |
static bool | mapping (Hypergraph const &h0, HGSignature &sigs0, Hypergraph const &h1, HGSignature &sigs1, map< PartSig, std::list< IDType > > &sigs1rev, map< IDType, IDType > &mappingsFor, map< IDType, IDType > &mappingsBack, Hypergraph::EMap::const_iterator it, Hypergraph::EMap::const_iterator end) |
Checks all possible mappings for the given parameter and returns true, if one is an isomorphism. More... | |
Checks whether two given Hypergraphs are isomorphic or not.
The check is performed by the algorithm described by Arend Rensink in "Isomorphism Checking in GROOVE" using signatures and certificates as heuristics.
|
virtual |
Destroys this IsomorphismChecker.
Note that this class should not be instantiated.
|
static |
Returns true if the two given graphs are isomorphic.
hg1 | the first graph to check |
hg2 | the second graph to check |
|
staticprivate |
Inserts a pair of the given IDs to the given forward and backward maps if the resulting Mapping is still bijective.
forw | the forward map to which (id0,id1) will be added |
backw | the backward map to which (id1,id0) will be added |
id0 | the first ID |
id1 | the second ID |
|
staticprivate |
Checks all possible mappings for the given parameter and returns true, if one is an isomorphism.
h0 | the first graph |
sigs0 | the signature computed for the first graph |
h1 | the second graph |
sigs1 | the signature comupted for the second graph |
sigs1rev | the inverse of the second graphs signature |
mappingFor | the forward mapping; must be empty initially |
mappingBak | the backward mapping; must be empty initially |
it | must be an iterator to the first element of the edge map of the first graph |
end | must be an iterator beyond the last element of the edge map of the first graph |