Networkx: определить случаи, когда узел является одновременно предком и потомком другого узла.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Networkx: определить случаи, когда узел является одновременно предком и потомком другого узла.

Сообщение Anonymous »

Я не уверен, существует ли для этого конкретная терминология, но я хочу определить пути в направленной сети, и в этом случае направленность идет в обе стороны. Я строю сеть с кучей предоставленных данных и случайно наткнулся на некоторые артефакты, в которых узлы A и B являются родительскими/дочерними элементами друг друга.
Чтобы идентифицировать их, Я наткнулся на термин «самоцикл». Это то, что мне нужно, только для путей длиннее одного ребра.

Код: Выделить всё

import networkx as nx
g = nx.DiGraph()
g.add_edges_from([(0, 1), (0, 2), (0, 3), (1, 3), (3, 0), (3, 3), (2, 0), (1, 2), (2, 1)])
nx.draw_networkx(g, arrows=True, with_labels=True, width=0.2, edge_color='#AAAAAA', arrowsize=20,
node_size=2)
Изображение

Код: Выделить всё

networkxВ 
есть функция для идентификации узлов с самоциклами, но в результате я получаю только узел 3.

Код: Выделить всё

list(nx.nodes_with_selfloops(g))
[3]
Идентифицирован только узел 3, но в этом случае я хотел бы определить, что у 1/2 и 0/1 стрелки идут в обе стороны. Это не самоцикл с одним ребром, но он допускает 2 > 0 > 1 > 2 и 1 > 3 > 0 > 2 > 1. Я начинаю и заканчиваю в одном и том же узле, просто между ними находятся другие узлы.
Есть ли эффективный способ определить, «какие узлы имеют двунаправленные стрелки, ведущие к одному и тому же узлу»? Я не выявил достаточно таких случаев, чтобы знать, всегда ли причиной будет одна двусторонняя стрелка или что-то вроде двух путей с несколькими ребрами, которые начинаются/останавливаются с одного и того же узла.
Реальные данные подобны потокам процессов, поэтому не должно быть случаев, когда A каким-то образом течет к B, а B также течет в A, поэтому я хочу быстро выявить именно эти несогласованности данных.

Подробнее здесь: https://stackoverflow.com/questions/790 ... cendant-of
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»