diff --git a/lang/zh/gklearn/examples/ged/compute_graph_edit_distance.py b/lang/zh/gklearn/examples/ged/compute_graph_edit_distance.py new file mode 100644 index 0000000..027d1e4 --- /dev/null +++ b/lang/zh/gklearn/examples/ged/compute_graph_edit_distance.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +"""compute_graph_edit_distance.ipynb + +Automatically generated by Colaboratory. + +Original file is located at + https://colab.research.google.com/drive/1Wfgn7WVuyOQQgwOvdUQBz0BzEVdp0YM3 + +**This script demonstrates how to compute a graph edit distance.** +--- + +**0. Install `graphkit-learn`.** +""" + +"""**1. Get dataset.**""" + +from gklearn.utils import Dataset + +# Predefined dataset name, use dataset "MUTAG". +ds_name = 'MUTAG' + +# Initialize a Dataset. +dataset = Dataset() +# Load predefined dataset "MUTAG". +dataset.load_predefined_dataset(ds_name) +graph1 = dataset.graphs[0] +graph2 = dataset.graphs[1] +print(graph1, graph2) + +"""**2. Compute graph edit distance.**""" + +from gklearn.ged.env import GEDEnv + + +ged_env = GEDEnv() # initailize GED environment. +ged_env.set_edit_cost('CONSTANT', # GED cost type. + edit_cost_constants=[3, 3, 1, 3, 3, 1] # edit costs. + ) +ged_env.add_nx_graph(graph1, '') # add graph1 +ged_env.add_nx_graph(graph2, '') # add graph2 +listID = ged_env.get_all_graph_ids() # get list IDs of graphs +ged_env.init(init_type='LAZY_WITHOUT_SHUFFLED_COPIES') # initialize GED environment. +options = {'initialization_method': 'RANDOM', # or 'NODE', etc. + 'threads': 1 # parallel threads. + } +ged_env.set_method('BIPARTITE', # GED method. + options # options for GED method. + ) +ged_env.init_method() # initialize GED method. + +ged_env.run_method(listID[0], listID[1]) # run. + +pi_forward = ged_env.get_forward_map(listID[0], listID[1]) # forward map. +pi_backward = ged_env.get_backward_map(listID[0], listID[1]) # backward map. +dis = ged_env.get_upper_bound(listID[0], listID[1]) # GED bewteen two graphs. +print(pi_forward) +print(pi_backward) +print(dis) \ No newline at end of file