Объединение двух объектов VertexClustering с python iGraph - PullRequest
0 голосов
/ 06 апреля 2020

Я направляю список ребер графа, добавляя две и две вершины с ребром между ними в «базовый граф». Затем я нахожу подграф, находя соседей недавно добавленных вершин. Это приводит к «базовому графу» и «подграфу». Сначала это запускается, я запускаю алгоритм обнаружения сообщества (скажем, infomap) на базовом графе, а после этого я запускаю только алгоритмы на подграфе. Моя проблема в соединении этих графиков.

Этот последний шаг меня смутил. Я совсем не уверен, что это вообще возможно, но я хотел бы услышать, есть ли у кого-нибудь предложения о том, как это можно сделать. После запуска алгоритма infomap у меня есть объект VertexClustering, который, насколько я вижу, не может быть объединен с другим. Другая проблема заключается в том, что я не знаю, к какому из кластеров с новыми узлами следует добавить. Я думал о размещении их в кластеры, где большинство соседей (более 50%), и в противном случае создание нового кластера. Это звучит как возможное решение?

import igraph as ig

...

def process_graph(g, subgraph):
    global current_communities
    if current_communities is None:
        current_communities = ig.Graph.community_infomap(g)
    else:
        #this is where the algo gets run on the subgraph and merged with the current_communities graph
        process_subgraph(g, subgraph)

Я в основном использую igraph для этого, потому что это быстро, но если у вас есть какие-то другие предложения, я весь слух!

...