| @@ -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) | |||||