27 #ifndef SRC_METHODS_PARTITION_HPP_ 28 #define SRC_METHODS_PARTITION_HPP_ 41 template<
class UserNodeLabel,
class UserEdgeLabel>
44 template<
typename Hybr
idUserNodeLabel,
typename Hybr
idUserEdgeLabel>
55 enum SubstructType_ {NODE, EDGE, NODE_EDGE, NODE_EDGE_NODE, NODE_EDGE_EDGE};
79 bool operator<(
const Substruct_ & rhs)
const;
82 typedef std::map<Substruct_, bool> SubstructMap_;
84 std::map<GEDGraph::GraphID, SubstructMap_> substruct_maps_;
86 std::vector<Substruct_> unmatched_substructs_;
96 void init_graph_(
const GEDGraph & graph);
100 const std::vector<Substruct_> & get_unmatched_substructs_()
const;
102 void check_node_subtructs_(
const GEDGraph & h,
const SubstructMap_ & is_substruct_in_g, std::map<GEDGraph::NodeID, bool> & is_deleted_node);
104 void check_edge_subtructs_(
const GEDGraph & h,
const SubstructMap_ & is_substruct_in_g, std::map<GEDGraph::EdgeID, bool> & is_deleted_edge);
106 void check_node_edge_subtructs_(
const GEDGraph & h,
const SubstructMap_ & is_substruct_in_g, std::map<GEDGraph::NodeID, bool> & is_deleted_node, std::map<GEDGraph::EdgeID, bool> & is_deleted_edge);
108 void check_node_edge_node_subtructs_(
const GEDGraph & h,
const SubstructMap_ & is_substruct_in_g, std::map<GEDGraph::NodeID, bool> & is_deleted_node, std::map<GEDGraph::EdgeID, bool> & is_deleted_edge);
110 void check_node_edge_edge_subtructs_(
const GEDGraph & h,
const SubstructMap_ & is_substruct_in_g, std::map<GEDGraph::NodeID, bool> & is_deleted_node, std::map<GEDGraph::EdgeID, bool> & is_deleted_edge);
112 bool contains_substruct_(
const GEDGraph & g,
const Substruct_ & substruct)
const;
114 bool contains_node_substruct_(
const GEDGraph & g,
const Substruct_ & substruct)
const;
116 bool contains_edge_substruct_(
const GEDGraph & g,
const Substruct_ & substruct)
const;
118 bool contains_node_edge_substruct_(
const GEDGraph & g,
const Substruct_ & substruct)
const;
120 bool contains_node_edge_node_substruct_(
const GEDGraph & g,
const Substruct_ & substruct)
const;
122 bool contains_node_edge_edge_substruct_(
const GEDGraph & g,
const Substruct_ & substruct)
const;
Computes a lower bound for uniform edit costs.
Contains the standardized input data along with basic functionality.
virtual void ged_run_(const GEDGraph &g, const GEDGraph &h, Result &result) final
Runs the method with options specified by set_options().
virtual void ged_init_() final
Initializes the method.
static EdgeID dummy_edge()
Returns a dummy edge.
A wrapper structure for the result of calls to ged::GEDMethod::run_as_util() and ged::GEDMethod::ged_...
Abstract class for the (suboptimal) computation of the graph edit distance.
std::size_t LabelID
Internally used type of node and edge labels.
static NodeID dummy_node()
Returns a dummy node.
The normalized input graphs used by GEDLIB. All labels are integers.
detail::GedGraphAL::edge_descriptor EdgeID
Internally used edge ID type.
constexpr LabelID dummy_label()
Returns a dummy label.
Computes a lower bound for uniform edit costs.
Global namespace for GEDLIB.
std::size_t NodeID
Internally used vertex ID type.