From ce1f7e7a3c4866a19ae0da7269584b68da422d80 Mon Sep 17 00:00:00 2001 From: linlin Date: Mon, 5 Oct 2020 16:38:59 +0200 Subject: [PATCH] New translations node_map.py (French) --- lang/fr/gklearn/ged/env/node_map.py | 102 ++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 lang/fr/gklearn/ged/env/node_map.py diff --git a/lang/fr/gklearn/ged/env/node_map.py b/lang/fr/gklearn/ged/env/node_map.py new file mode 100644 index 0000000..7ca4798 --- /dev/null +++ b/lang/fr/gklearn/ged/env/node_map.py @@ -0,0 +1,102 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Wed Apr 22 11:31:26 2020 + +@author: ljia +""" +import numpy as np +from gklearn.utils import dummy_node, undefined_node + + +class NodeMap(object): + + def __init__(self, num_nodes_g, num_nodes_h): + self.__forward_map = [undefined_node()] * num_nodes_g + self.__backward_map = [undefined_node()] * num_nodes_h + self.__induced_cost = np.inf + + + def clear(self): + """ + /*! + * @brief Clears the node map. + */ + """ + self.__forward_map = [undefined_node() for i in range(len(self.__forward_map))] + self.__backward_map = [undefined_node() for i in range(len(self.__backward_map))] + + + def num_source_nodes(self): + return len(self.__forward_map) + + + def num_target_nodes(self): + return len(self.__backward_map) + + + def image(self, node): + if node < len(self.__forward_map): + return self.__forward_map[node] + else: + raise Exception('The node with ID ', str(node), ' is not contained in the source nodes of the node map.') + return undefined_node() + + + def pre_image(self, node): + if node < len(self.__backward_map): + return self.__backward_map[node] + else: + raise Exception('The node with ID ', str(node), ' is not contained in the target nodes of the node map.') + return undefined_node() + + + def as_relation(self, relation): + relation.clear() + for i in range(0, len(self.__forward_map)): + k = self.__forward_map[i] + if k != undefined_node(): + relation.append(tuple((i, k))) + for k in range(0, len(self.__backward_map)): + i = self.__backward_map[k] + if i == dummy_node(): + relation.append(tuple((i, k))) + + + def add_assignment(self, i, k): + if i != dummy_node(): + if i < len(self.__forward_map): + self.__forward_map[i] = k + else: + raise Exception('The node with ID ', str(i), ' is not contained in the source nodes of the node map.') + if k != dummy_node(): + if k < len(self.__backward_map): + self.__backward_map[k] = i + else: + raise Exception('The node with ID ', str(k), ' is not contained in the target nodes of the node map.') + + + def set_induced_cost(self, induced_cost): + self.__induced_cost = induced_cost + + + def induced_cost(self): + return self.__induced_cost + + + @property + def forward_map(self): + return self.__forward_map + + @forward_map.setter + def forward_map(self, value): + self.__forward_map = value + + + @property + def backward_map(self): + return self.__backward_map + + @backward_map.setter + def backward_map(self, value): + self.__backward_map = value \ No newline at end of file