21 #ifndef OldMinorOrder_H_
22 #define OldMinorOrder_H_
27 #include "../graphs/Hypergraph.h"
28 #include "../basic_types/Order.h"
83 std::map<
string, vector<IDType> >& occurencesG,
84 vector<pair<IDType, string> >& occurencesM,
86 std::map<IDType, IDType>& mappings)
const;
96 std::map<IDType, IDType>& mappings)
const;
113 std::list<PathFinder>::iterator it,
114 std::list<std::set<IDType> >& result)
const;
122 bool combinePaths(std::list<std::list<std::set<IDType> >* >::iterator it0,
123 std::list<std::list<std::set<IDType> >* >::iterator end,
124 std::set<IDType>& nodesUsed)
const;
144 const std::set<IDType>* getNextPath();
146 const std::set<IDType>* getNextPath(std::set<IDType> tmpForbidden);
148 const std::set<IDType>* getCurrentPath();
152 int getPathCount() {
return currentPath; }
163 std::set<IDType> innerPath;
173 vector<std::set<IDType> > ids;
175 std::queue<QueueEl> sq;
177 std::set<IDType> forbidden;
This class is an old implementation of the Hypergraph Minor Ordering based on searching for disjoint ...
Definition: OldMinorOrder.h:41
void createCombinations(std::list< PathFinder > &p, std::list< PathFinder >::iterator it, std::list< std::set< IDType > > &result) const
is called for each edgeTupel.
Definition: OldMinorOrder.cpp:318
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.
Definition: OldMinorOrder.cpp:91
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.
Definition: OldMinorOrder.cpp:287
Definition: OldMinorOrder.h:68
virtual ~OldMinorOrder()
Destroys the current OldMinorOrder object.
Definition: OldMinorOrder.cpp:33
Definition: OldMinorOrder.h:156
A Hypergraph represents a graph with a unique identifier.
Definition: Hypergraph.h:35
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.
Definition: OldMinorOrder.cpp:35
Searching for paths between two vertices.
Definition: OldMinorOrder.h:135
bool createEdgeTupels(graphs::Hypergraph const &minor, graphs::Hypergraph const &graph, std::map< IDType, IDType > &mappings) const
creates from the given edge-matches vertex-matches.
Definition: OldMinorOrder.cpp:125
This class presents a generic ordering relation on Hypergraphs.
Definition: Order.h:32
unsigned int IDType
IDType is an (unsigned) integer specifically used as an Identifier of graphs, elements of graphs or a...
Definition: globals.h:53
OldMinorOrder()
Creates a new OldMinorOrder object.
Definition: OldMinorOrder.cpp:31
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.
Definition: OldMinorOrder.cpp:234