NetworkX (Python): comment modifier le poids des arêtes par une règle désignée
J'ai un graphe pondéré:
F=nx.path_graph(10)
G=nx.Graph()
for (u, v) in F.edges():
G.add_edge(u,v,weight=1)
obtenir la liste de nœuds:
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)]
Je veux changer chaque arête de poids par cette règle:
supprimer un nœud, comme le nœud 5, clairement, le bord (4, 5) et (5, 6) sera supprimer, et le poids de chaque arête va à son tour:
{# ces bords sont à proximité de l'supprimé bord (4, 5) et (5, 6)
(3,4):'poids'=1.1,
(6,7):'poids'=1.1,
#ces bords sont à proximité des bords mentionnés ci-dessus
(2,3):'poids'=1.2,
(7,8):'poids'=1.2,
#ces bords sont à proximité des bords mentionnés ci-dessus
(1,2):'poids'=1.3,
(8,9):'poids'=1.3,
# ce bord est à proximité (1,2)
(0,1):'poids'=1.4}
Comment écrire cet algorithme?
PS: path_graph est juste un exemple. J'ai besoin d'un programme de s'adapter à tout type de graphique. En outre, le programme doivent être itératif, cela signifie que je peux supprimer un nœud d'origine graphique à chaque fois.
Ce qui concerne
source d'informationauteur Johnny
Vous devez vous connecter pour publier un commentaire.
Vous pouvez accéder à l'arête de poids que G[u][v]['poids'] ou par itération sur le bord de données. Ainsi vous pouvez par exemple