std::vector<SubCircuit::Solver::MineResult> results;
mySolver.mine(results, minNodes, maxNodes, minMatches);
-The miner works by finding frequent pairs of nodes and then combining them
-to larger subcircuits. Because of this incremental strategy the miner only
-works as expected on graphs with markAllExtern() set.
-
The mine() method has an optional fifth parameter that limits the number
of matches counted in one graph. This can be useful when mining for circuits
that are found in at least a number of graphs. E.g. the following call
for (auto &it : graphData)
{
GraphData &haystack = it.second;
- assert(haystack.graph.allExtern);
std::vector<std::set<int>> enumerationMatrix;
std::map<std::string, std::set<std::string>> initialMappings;
for (int nodeIdx : testSet.nodes)
needle_nodes.push_back(graph.nodes[nodeIdx].nodeId);
needle.graph = Graph(graph, needle_nodes);
+ needle.graph.markAllExtern();
diCache.add(needle.graph, needle.adjMatrix, graphId, userSolver);
std::vector<Solver::Result> ullmannResults;