Pertanyaan Bagaimana saya bisa mendapatkan pohon langsung dari grafik?


import networkx as nx
G = nx.Graph()
G.add_edge(1,2)
G.add_edge(2,3)
G.add_edge(3,5)
G.add_edge(4,6)
G.add_edge(1,6)
G.add_edge(2,6)
G.add_edge(7,8)
G.add_edge(9,8)
mst=nx.prim_mst(G)# a generator of MST edges

Saya sudah mendapat pohon. Bagaimana saya bisa mendapatkan pohon dengan akar pada 4?


5
2018-03-14 07:22


asal


Jawaban:


Untuk mendapatkan pohon yang disutradarai dari pencarian luas-pertama dari node 4:

tree = nx.bfs_tree(G, 4)

enter image description here


Untuk mendapatkan pohon terarah pencarian depfth-first dari node 4:

tree = nx.dfs_tree(G, 4)

enter image description here


Grafik dibuat dengan cara ini:

import matplotlib.pyplot as plt
import networkx as nx

G = nx.Graph()
G.add_edge(1,2)
G.add_edge(2,3)
G.add_edge(3,5)
G.add_edge(4,6)
G.add_edge(1,6)
G.add_edge(2,6)
G.add_edge(7,8)
G.add_edge(9,8)

tree = nx.bfs_tree(G, 4)
nx.draw(tree)
plt.savefig('/tmp/bfs_image.png')

6
2018-03-14 08:26



Mungkin @kalombo menginginkan pohon yang berorientasi dari MST G dengan akar pada simpul 4. Dalam hal ini Anda perlu membangun grafik MST terlebih dahulu. misalnya

T = nx.bfs_tree(nx.Graph(nx.prim_mst_edges(G)),4)

1
2018-03-15 16:15