ввод графа networkx в алгоритм zss (расстояние редактирования дерева)

В SQL Server создано встроенное GUID. Для этого нет необходимости писать отдельную хранимую процедуру.

Вы можете использовать

blockquote>

Ключевое различие между обеими процедурами будет заключаться в том, что последовательный GUID следует использовать, если он предназначен для основного кластеризованного ключа.

Я не конечно , почему вы хотите, чтобы механизм базы данных помнил предыдущий сгенерированный GUID.

1
задан agenis 20 January 2019 в 22:10
поделиться

1 ответ

Использование dfs_tree может определенно помочь:

import zss
import networkx as nx

G=nx.DiGraph()
G.add_edges_from([('f', 'a'), ('a', 'h'), ('a', 'c'), ('c', 'l'), ('f', 'e')])
T = nx.dfs_tree(G, source='f')
nodes_dict = {}
for edge in T.edges():
    if edge[0] not in nodes_dict:
        nodes_dict[edge[0]] = zss.Node(edge[0])
    if edge[1] not in nodes_dict:
        nodes_dict[edge[1]] = zss.Node(edge[1])
    nodes_dict[edge[0]].addkid(nodes_dict[edge[1]])

print(zss.simple_distance(nodes_dict['f'], nodes_dict['f'])) # 0.0

В случае, если мы не знаем, какой узел является корневым узлом G, но знаем, что у нас есть правильное дерево, мы можем получить узел источника, вызвав :

source = [n for (n, d) in G.in_degree() if d == 0][0]
T = nx.dfs_tree(G, source=source)

Поскольку корень является единственным узлом без входящих узлов, это должно работать.

0
ответ дан zohar.kom 20 January 2019 в 22:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: