27 #ifndef SRC_EDIT_COSTS_CMU_IPP_ 28 #define SRC_EDIT_COSTS_CMU_IPP_ 33 CMU<GXLLabel, GXLLabel>::
38 CMU(
double node_ins_del_cost,
double alpha) :
39 node_ins_del_cost_{node_ins_del_cost},
46 return alpha_ * node_ins_del_cost_;
53 return alpha_ * node_ins_del_cost_;
67 vector_representation.clear();
68 vector_representation.push_back(std::stod(node_label.at(
"x")));
69 vector_representation.push_back(std::stod(node_label.at(
"y")));
76 return (1 - alpha_) * std::stod(edge_label.at(
"dist"));
83 return (1 - alpha_) * std::stod(edge_label.at(
"dist"));
90 return (1 - alpha_) * std::abs(std::stod(edge_label_1.at(
"dist")) - std::stod(edge_label_2.at(
"dist")));
virtual double node_ins_cost_fun(const UserNodeLabel &node_label) const final
Node insertions cost function.
virtual double edge_del_cost_fun(const UserEdgeLabel &edge_label) const final
Edge deletion cost function.
virtual double edge_ins_cost_fun(const UserEdgeLabel &edge_label) const final
Edge insertion cost function.
virtual double node_del_cost_fun(const UserNodeLabel &node_label) const final
Node deletion cost function.
CMU(double node_ins_del_cost=100000, double alpha=0.5)
Constructor.
std::map< std::string, std::string > GXLLabel
Type of node and edge labels of graphs given in the .gxl file format.
virtual void vectorize_node_label(const UserNodeLabel &node_label, std::vector< double > &vector_representation) const final
Computes a node label's representation as a real-valued vector.
Global namespace for GEDLIB.
virtual double node_rel_cost_fun(const UserNodeLabel &node_label_1, const UserNodeLabel &node_label_2) const final
Node relabeling cost function.
virtual double edge_rel_cost_fun(const UserEdgeLabel &edge_label_1, const UserEdgeLabel &edge_label_2) const final
Edge relabeling cost function.