NetworkX (Python): как изменить вес ребер по заданному правилу
У меня есть взвешенный график:
F=nx.path_graph(10)
G=nx.Graph()
for (u, v) in F.edges():
G.add_edge(u,v,weight=1)
получить список узлов:
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)]
Я хочу изменить вес каждого ребра по этому правилу:
удалить один узел, такой как узел 5, ясно, ребро (4, 5) и (5, 6) будут удалены, а вес каждого ребра превратится в:
{# эти ребра находятся рядом с удаленным ребром (4, 5) и (5, 6)
(3,4): 'вес' = 1,1,
(6,7): 'вес' = 1,1,
# эти края находятся рядом с краями выше
(2,3): 'вес' = 1,2,
(7,8): 'вес' = 1,2,
# эти края находятся рядом с краями выше
(1,2): 'вес' = 1,3,
(8,9): 'вес' = 1,3,
# этот край рядом (1,2)
(0,1): 'вес' = 1,4}
Как написать этот алгоритм?
PS: path_graph это просто пример. Мне нужна программа под любой тип графика. Кроме того, программа должна быть повторяемой, это означает, что я могу каждый раз удалять один узел из исходного графа.
С уважением