前言:
數學中,“圖論”研究的是定點和邊組成的圖形。
計算機中,“網絡拓撲”是數學概念中“圖”的一個子集。因此,計算機網絡拓撲圖也可以由節點(即頂點)和鏈路(即邊)來進行定義和繪制。
延伸:
無向圖
兩個節點之間只有一條線相連接,且沒有方向。
有向圖
兩個節點之間只有一條線相連接,且有方向。方向可以單向,也可以雙向。
多重圖
兩個節點之間只有多條線相連接。
網絡拓撲是網絡工程師日常工作的基礎。網絡規划階段、網絡建設階段、維護階段都離不開網絡拓撲圖。
平時我們可以用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