ant colony optimization
v1.1.1
一個使用蟻群優化 (ACO) 來找出圖中最短路徑的 Python 套件。
➡️ 查看我的 Medium 文章,以了解詳細的演練
蟻群最佳化演算法是一種用於解決計算問題的機率技術,可以簡化為透過圖形尋找良好的路徑(來源)。
ACO 演算法的這種實作使用 NetworkX 圖環境。
$ pip install aco_routing
檢視:example.py
導入所有相依性:
from aco_routing import ACOimport networkx as nx
建立一個有節點和邊的NetworkX.Graph
物件:
G = nx.DiGraph()G.add_edge("A", "B", cost=2)G.add_edge("B", "C", cost=2)G.add_edge("A", "H" , 成本=2)G.add_edge("H", "G", 成本=2)G.add_edge("C", "F", 成本=1)G.add_edge("F", "G", 成本=1)G.add_edge("G", "F", cost=1)G.add_edge("F", "C", cost=1)G.add_edge("C", "D", cost=10 )G.add_edge("E", "D", 成本=2)G.add_edge("G", "E", 成本=2)
使用 ACO 找到source
和destination
之間的最短路徑和成本:
aco = ACO(G, ant_max_steps=100, num_iterations=100, ant_random_spawn=True)aco_path, aco_cost = aco.find_shortest_path(source="A",destination="D",num_ants=100, )
輸出:
ACO path: A -> H -> G -> E -> D ACO path cost: 8.0
aco_routing.Ant
遍歷圖形的Ant
。
aco_routing.ACO
傳統的蟻群最佳化演算法,在圖中的各個節點產生螞蟻,並找到指定來源和目的地之間的最短路徑(偽代碼)。
在 GitHub 問題頁面上發布任何問題和建議。
要做出貢獻,請分叉該項目,然後建立拉取請求返回主版本。