NetworkX (Python): cómo cambiar el peso de los bordes por regla designada
Tengo un gráfico ponderado:
F=nx.path_graph(10)
G=nx.Graph()
for (u, v) in F.edges():
G.add_edge(u,v,weight=1)
obtener la lista de nodos:
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)]
Quiero cambiar el peso de cada borde por esta regla:
eliminar un nodo, como el nodo 5, claramente, se eliminarán los bordes (4, 5) y (5, 6), y el peso de cada borde se convertirá en:
{# estos bordes están cerca del borde eliminado (4, 5) y (5, 6)
(3,4): 'peso' = 1.1,
(6,7): 'peso' = 1.1,
# estos bordes están cerca de los bordes mencionados anteriormente
(2,3): 'peso' = 1.2,
(7,8): 'peso' = 1.2,
# estos bordes están cerca de los bordes mencionados anteriormente
(1,2): 'peso' = 1.3,
(8,9): 'peso' = 1.3,
# este borde está cerca (1,2)
(0,1): 'peso' = 1.4}
¿Cómo escribir este algoritmo?
PD: path_graph es solo un ejemplo. Necesito un programa que se adapte a cualquier tipo de gráfico. Además, el programa debe ser iterable, lo que significa que puedo eliminar un nodo del gráfico de origen cada vez.
Saludos