diff --git a/lang/zh/gklearn/ged/edit_costs/constant.py b/lang/zh/gklearn/ged/edit_costs/constant.py new file mode 100644 index 0000000..641bab7 --- /dev/null +++ b/lang/zh/gklearn/ged/edit_costs/constant.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Wed Jun 17 17:52:23 2020 + +@author: ljia +""" +from gklearn.ged.edit_costs import EditCost + + +class Constant(EditCost): + """Implements constant edit cost functions. + """ + + + def __init__(self, node_ins_cost=1, node_del_cost=1, node_rel_cost=1, edge_ins_cost=1, edge_del_cost=1, edge_rel_cost=1): + self.__node_ins_cost = node_ins_cost + self.__node_del_cost = node_del_cost + self.__node_rel_cost = node_rel_cost + self.__edge_ins_cost = edge_ins_cost + self.__edge_del_cost = edge_del_cost + self.__edge_rel_cost = edge_rel_cost + + + def node_ins_cost_fun(self, node_label): + return self.__node_ins_cost + + + def node_del_cost_fun(self, node_label): + return self.__node_del_cost + + + def node_rel_cost_fun(self, node_label_1, node_label_2): + if node_label_1 != node_label_2: + return self.__node_rel_cost + return 0 + + + def edge_ins_cost_fun(self, edge_label): + return self.__edge_ins_cost + + + def edge_del_cost_fun(self, edge_label): + return self.__edge_del_cost + + + def edge_rel_cost_fun(self, edge_label_1, edge_label_2): + if edge_label_1 != edge_label_2: + return self.__edge_rel_cost + return 0 \ No newline at end of file