python graph-tool: Самый быстрый способ добавить ребра без дубликатов? - PullRequest
0 голосов
/ 27 ноября 2018

Какой самый быстрый / самый эффективный способ добавить ребра без дубликатов в орграф в Python graph-tool?

Наивным решением было бы позвонить g.edge(u, v) перед добавлением ребер, но это, похоже, довольно сильно сказывается на производительности, особенно в сетях без масштаба.g.edge(u, v) выполняет поиск в O (1), если установлено g.set_fast_edge_removal()?Я представляю, какая бы дополнительная структура данных graph-tool не выделяла для этого что-то вроде списка краев.

1 Ответ

0 голосов
/ 24 декабря 2018

На мой взгляд, лучше всего добавить все ребра, а затем убрать параллельные ребра.

Вы можете добавить ребра в виде списка:

g = gt.Graph()
edges = [(1, 2), (2, 5), (1, 2)]
g.add_edge_list(edges)
gt.remove_parallel_edges(g)
...