объект появляется в нескольких кликах графа - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть фрагмент кода, который должен находить клики узлов, в то время как узлы - это идентификаторы объектов модели django:

    import networkx as nx
    final_groups = []
    graph = nx.Graph()
    for img_test in Same_Img_Test.objects.filter(id__in=test_ids, is_same=1):
        graph.add_edge(img_test.product_1.id, img_test.product_2.id)
    for x in nx.find_cliques(graph):
        final_groups.append(x)
        print x

Я получаю такой результат:

[1293856L, 909760L]
[1293856L, 909730L]
[1293856L, 909797L]
[1293856L, 909767L]
[1293856L, 909741L]

myвопрос id: как один и тот же идентификатор (1293856L) может появляться в нескольких кликах? разве результат не должен быть примерно таким:

[1293856L, 909760L, 909730L, 909797L, 909767L, 909741L]

что я делаю неправильно?

РЕДАКТИРОВАТЬ: то, что я искал, было nx.connected_components(graph) вместо nx.find_cliques(graph)

1 Ответ

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

Да, один и тот же идентификатор может присутствовать в нескольких кликах (одинакового или разного размера).

Я думаю, что вы показываете только клики размера 2, возможно, ваш ожидаемый результат будет ниже.

[1293856L, 909760L, 909730L, 909797L, 909767L, 909741L] станет одной из клик только тогда, когда каждая пара этих идентификаторов будет иметь ребро между ними в данном графике.

...