NetworkX (Python): So ändern Sie das Kantengewicht anhand der festgelegten Regel

Ich habe ein gewichtetes Diagramm:

F=nx.path_graph(10)
G=nx.Graph()
for (u, v) in F.edges():
    G.add_edge(u,v,weight=1)

gib die Knotenliste ein:

[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)]

Ich möchte das Gewicht jeder Kante nach folgender Regel ändern:

Entfernen Sie einen Knoten, z. B. Knoten 5, dann werden die Kanten (4, 5) und (5, 6) gelöscht, und die Gewichtung jeder Kante wird wie folgt geändert:

{# diese Kanten befinden sich in der Nähe der gelöschten Kanten (4, 5) und (5, 6)

(3,4): 'weight' = 1,1,

(6,7): 'weight' = 1.1,

# diese Kanten befinden sich in der Nähe der oben genannten Kanten

(2,3): 'weight' = 1,2,

(7,8): 'weight' = 1.2,

# diese Kanten befinden sich in der Nähe der oben genannten Kanten

(1,2): 'weight' = 1,3,

(8,9): 'weight' = 1.3,

# diese Kante ist in der Nähe (1,2)

(0,1): 'weight' = 1.4}

Wie schreibe ich diesen Algorithmus?

PS: path_graph ist nur ein Beispiel. Ich benötige ein Programm für jeden Grafiktyp. Außerdem muss das Programm iterierbar sein, dh ich kann jedes Mal einen Knoten aus dem Ursprungsdiagramm entfernen.

Grüß

Antworten auf die Frage(2)

Ihre Antwort auf die Frage