NetworkX (Python): como alterar o peso das bordas por regra designada
Eu tenho um gráfico ponderado:
F=nx.path_graph(10)
G=nx.Graph()
for (u, v) in F.edges():
G.add_edge(u,v,weight=1)
obtenha a lista de nós:
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)]
Quero alterar o peso de cada borda por esta regra:
remova um nó, como o nó 5, claramente, a borda (4, 5) e (5, 6) será excluída e o peso de cada borda será alterado para:
{# essas arestas estão próximas da aresta excluída (4, 5) e (5, 6)
(3,4): «peso» = 1,1;
(6,7): «peso» = 1,1;
#Estas arestas estão próximas das arestas acima mencionadas
(2,3): «peso» = 1,2;
(7,8): «peso» = 1,2;
#Estas arestas estão próximas das arestas acima mencionadas
(1,2): «peso» = 1,3;
(8,9): «peso» = 1,3;
# esta borda está próxima (1,2)
(0,1): «peso» = 1,4}
Como escrever este algoritmo?
PS: path_graph é apenas um exemplo. Eu preciso de um programa adequado para qualquer tipo de gráfico. Além disso, o programa precisa ser iterável, significa que eu posso remover um nó do gráfico de origem de cada vez.
Saudações