UnCoVer (Using Coverability for Verification)
|
This class is an old implementation of the Hypergraph Minor Ordering based on searching for disjoint paths. More...
#include <OldMinorOrder.h>
Classes | |
class | PathFinder |
Searching for paths between two vertices. More... | |
struct | twoIDLists |
Public Member Functions | |
OldMinorOrder () | |
Creates a new OldMinorOrder object. | |
virtual | ~OldMinorOrder () |
Destroys the current OldMinorOrder object. | |
virtual bool | isLessOrEq (graphs::Hypergraph const &smaller, graphs::Hypergraph const &bigger) const override |
Checks whether the first given graph is a minor of the second. More... | |
Private Member Functions | |
bool | mapping (graphs::Hypergraph const &minor, graphs::Hypergraph const &graph, std::map< string, vector< IDType > > &occurencesG, vector< pair< IDType, string > > &occurencesM, size_t currentI, std::map< IDType, IDType > &mappings) const |
Finds a mapping of an edge in M in G. More... | |
bool | createEdgeTupels (graphs::Hypergraph const &minor, graphs::Hypergraph const &graph, std::map< IDType, IDType > &mappings) const |
creates from the given edge-matches vertex-matches. More... | |
bool | findPaths (graphs::Hypergraph const &g, std::list< std::set< IDType > > &connV, std::set< IDType > mappedEdges) const |
Based on the edgeTupels, sets of pathFinders are created for every edgeTupel. More... | |
void | createCombinations (std::list< PathFinder > &p, std::list< PathFinder >::iterator it, std::list< std::set< IDType > > &result) const |
is called for each edgeTupel. More... | |
bool | combinePaths (std::list< std::list< std::set< IDType > > * >::iterator it0, std::list< std::list< std::set< IDType > > * >::iterator end, std::set< IDType > &nodesUsed) const |
Tries all possible combinations of all possible combinations of paths of edgeTupels. More... | |
This class is an old implementation of the Hypergraph Minor Ordering based on searching for disjoint paths.
It is only correct for directed graphs, i.e. where every edge is incident to at most two nodes.
|
private |
Tries all possible combinations of all possible combinations of paths of edgeTupels.
Long sentence, long act. Calls itself recursively until a combination of all necessary disjoint paths is found. Returns true in case of success.
|
private |
is called for each edgeTupel.
Creates for each path combination a set of vertices and edges which lie on these paths. Each of those set will be added to the resulting list of possible combinations.
|
private |
creates from the given edge-matches vertex-matches.
This is done by checking every vertex m in M and find a set of vertices <g> in G which are adjacent (correct port number) to every mapping of the edges which are adjacent to m. Calls FindPaths.
|
private |
Based on the edgeTupels, sets of pathFinders are created for every edgeTupel.
If edgeTupel t consists of vertices a, b, c, PathFinders p1 from a to b and p2 from b to c are created. Calls createCombinations in every step. Calls CombinePaths.
|
overridevirtual |
Checks whether the first given graph is a minor of the second.
smaller | the possible minor |
bigger | the possibly larger graph |
Implements Order.
|
private |
Finds a mapping of an edge in M in G.
Function calls itself recursively. When all edges are mapped, the minor test process continues. If the result is bad, the function tries gradually any other mapping. Calls createEdgetupels.