前言:
數學中,“圖論”研究的是定點和邊組成的圖形。
計算機中,“網絡拓撲”是數學概念中“圖”的一個子集。因此,計算機網絡拓撲圖也可以由節點(即頂點)和鏈路(即邊)來進行定義和繪制。
延伸:
無向圖
兩個節點之間只有一條線相連接,且沒有方向。
有向圖
兩個節點之間只有一條線相連接,且有方向。方向可以單向,也可以雙向。
多重圖
兩個節點之間只有多條線相連接。
網絡拓撲是網絡工程師日常工作的基礎。網絡規划階段、網絡建設階段、維護階段都離不開網絡拓撲圖。
平時我們可以用Microsoft Visio 和Office PowerPoint 繪制出漂亮的網絡拓撲,但不方便轉為格式化的數據關系。
也可以用DOT語言(拓撲數據結構的描述性語言)繪制。
這里我重點講解python的networkx工具來繪制網絡拓撲圖。
python代碼案例:
import networkx as nx
import matplotlib.pyplot as plt
nodes=[
'A',
'B',
'C',
'D',
'E',
'F',
'G'
]
G=nx.Graph()
# G=nx.DiGraph()
# G=nx.MultiGraph()
for node in nodes:
G.add_node(node)
edges=[
('A','B'),
('A','C'),
('B','C'),
('D','B'),
('B','D'),
('D','C'),
('E','B'),
('E','A'),
('F','B'),
('F','A'),
('G','C'),
('G','A')
]
r=G.add_edges_from(edges)
# 計算最短路徑。
shortest_way=nx.shortest_path(G,"F","D")
print(shortest_way)
nx.draw(G, with_labels=True,node_color='y',)
plt.show()
輸出:

F到D的最短路徑:
['F', 'B', 'D']
節點關系繪圖參考:
https://www.cnblogs.com/minglex/p/9205160.html
