Paket Python untuk menemukan jalur terpendek dalam grafik menggunakan Ant Colony Optimization (ACO).
➡️ Lihat artikel Medium saya untuk panduan mendetail
Algoritma Ant colony Optimization adalah teknik probabilistik untuk memecahkan masalah komputasi yang dapat direduksi menjadi menemukan jalur yang baik melalui grafik (sumber).
Implementasi algoritma ACO ini menggunakan lingkungan grafik NetworkX.
$ pip install aco_routing
Lihat: contoh.py
Impor semua dependensi:
dari aco_routing impor ACOimport networkx sebagai nx
Buat objek NetworkX.Graph
dengan node dan edge:
G = nx.DiGraph()G.add_edge("A", "B", biaya=2)G.add_edge("B", "C", biaya=2)G.add_edge("A", "H" , biaya=2)G.add_edge("H", "G", biaya=2)G.add_edge("C", "F", biaya=1)G.add_edge("F", "G", biaya=1)G.add_edge("G", "F", biaya=1)G.add_edge("F", "C", biaya=1)G.add_edge("C", "D", biaya= 10)G.add_edge("E", "D", biaya=2)G.add_edge("G", "E", biaya=2)
Gunakan ACO untuk menemukan jalur dan biaya terpendek antara source
dan 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, )
Keluaran:
ACO path: A -> H -> G -> E -> D ACO path cost: 8.0
aco_routing.Ant
Ant
yang melintasi grafik.
aco_routing.ACO
Algoritme Ant Colony Optimization tradisional yang memunculkan semut di berbagai node dalam grafik dan menemukan jalur terpendek antara sumber dan tujuan yang ditentukan (kode semu).
Posting masalah dan saran apa pun di halaman masalah GitHub.
Untuk berkontribusi, fork proyek lalu buat permintaan tarik kembali ke master.