ant colony optimization
v1.1.1
Ant Colony Optimization (ACO) を使用してグラフ内の最短パスを見つけるための Python パッケージ。
➡️ 詳細なウォークスルーについては、Medium の記事をご覧ください。
Ant コロニー最適化アルゴリズムは、グラフ (ソース) を通じて適切なパスを見つけることに帰着できる、計算上の問題を解決するための確率論的手法です。
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", コスト=2)G.add_edge("B", "C", コスト=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", コスト=1)G.add_edge("F", "C", コスト=1)G.add_edge("C", "D", コスト= 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 の問題ページに投稿してください。
貢献するには、プロジェクトをフォークし、プル リクエストを作成してマスターに戻します。