ant colony optimization
v1.1.1
ACO(Ant Colony Optimization)를 사용하여 그래프에서 최단 경로를 찾는 Python 패키지입니다.
➡️ 자세한 내용은 내 Medium 기사를 확인하세요.
Ant Colony Optimization 알고리즘은 그래프를 통해 좋은 경로를 찾는 것으로 축소될 수 있는 계산 문제를 해결하기 위한 확률적 기술입니다(출처).
이 ACO 알고리즘 구현은 NetworkX 그래프 환경을 사용합니다.
$ pip install aco_routing
확인해 보세요: example.py
모든 종속성을 가져옵니다.
aco_routing에서 ACOimport networkx를 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
그래프의 다양한 노드에서 개미를 생성하고 지정된 소스와 대상(의사 코드) 사이의 최단 경로를 찾는 전통적인 Ant Colony Optimization 알고리즘입니다.
GitHub 문제 페이지에 문제와 제안 사항을 게시하세요.
기여하려면 프로젝트를 포크한 다음 마스터에 다시 끌어오기 요청을 생성하세요.