IterOrbit
Subgraph isomorphism with iterative graphlet-orbit filtering
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
OrderEngine Class Reference

Chooses the order in which the search maps the pattern vertices. More...

#include <OrderEngine.h>

Collaboration diagram for OrderEngine:
[legend]

Public Member Functions

 OrderEngine (const AppGraph &pattern, const OrbitCounts &orbits, const CandidateSets *candidates=nullptr, OrderMode mode=OrderMode::Core)
 
void run ()
 Computes the order and the pivots.
 
const std::vector< int > & getOrder () const
 Pattern node IDs in matching order.
 
const std::unordered_map< int, int > & getPivot () const
 For each pattern node ID after the first, an earlier neighbour in the order (absent when it has none, e.g.
 

Private Member Functions

void runOrbit ()
 
void runCore (bool use_orbits)
 

Private Attributes

const AppGraph & pattern_graph
 
const OrbitCounts & pattern_orbits
 
const CandidateSets * candidates
 
OrderMode mode
 
std::vector< int > order
 
std::unordered_map< int, int > pivot
 

Detailed Description

Chooses the order in which the search maps the pattern vertices.

Constructor & Destructor Documentation

◆ OrderEngine()

OrderEngine::OrderEngine ( const AppGraph &  pattern,
const OrbitCounts &  orbits,
const CandidateSets *  candidates = nullptr,
OrderMode  mode = OrderMode::Core 
)
Parameters
patternthe pattern graph
orbitsits orbit counts (FilterEngine::getPatternOrbits())
candidatesthe filtered candidate sets; needed by Core and CoreOrbit
modethe ordering rule

Member Function Documentation

◆ getOrder()

const std::vector< int > & OrderEngine::getOrder ( ) const
inline

Pattern node IDs in matching order.

◆ getPivot()

const std::unordered_map< int, int > & OrderEngine::getPivot ( ) const
inline

For each pattern node ID after the first, an earlier neighbour in the order (absent when it has none, e.g.

the first vertex of another connected component).

◆ run()

void OrderEngine::run ( )

Computes the order and the pivots.

◆ runCore()

void OrderEngine::runCore ( bool  use_orbits)
private

◆ runOrbit()

void OrderEngine::runOrbit ( )
private

Member Data Documentation

◆ candidates

const CandidateSets* OrderEngine::candidates
private

◆ mode

OrderMode OrderEngine::mode
private

◆ order

std::vector<int> OrderEngine::order
private

◆ pattern_graph

const AppGraph& OrderEngine::pattern_graph
private

◆ pattern_orbits

const OrbitCounts& OrderEngine::pattern_orbits
private

◆ pivot

std::unordered_map<int, int> OrderEngine::pivot
private

The documentation for this class was generated from the following files: