Un paquete de Python para encontrar la ruta más corta en un gráfico usando Ant Colony Optimization (ACO).
➡️ Consulte mi artículo de Medium para obtener un tutorial detallado.
El algoritmo de optimización de colonias de hormigas es una técnica probabilística para resolver problemas computacionales que se pueden reducir a encontrar buenos caminos a través de gráficos (fuente).
Esta implementación del algoritmo ACO utiliza el entorno gráfico NetworkX.
$ pip install aco_routing
Consulte: ejemplo.py
Importa todas las dependencias:
desde aco_routing importar ACOimportar networkx como nx
Cree un objeto NetworkX.Graph
con nodos y bordes:
G = nx.DiGraph()G.add_edge("A", "B", costo=2)G.add_edge("B", "C", costo=2)G.add_edge("A", "H" , costo=2)G.add_edge("H", "G", costo=2)G.add_edge("C", "F", costo=1)G.add_edge("F", "G", costo=1)G.add_edge("G", "F", costo=1)G.add_edge("F", "C", costo=1)G.add_edge("C", "D", costo= 10)G.add_edge("E", "D", costo=2)G.add_edge("G", "E", costo=2)
Utilice ACO para encontrar la ruta más corta y el costo entre el source
y 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, )
Producción:
ACO path: A -> H -> G -> E -> D ACO path cost: 8.0
aco_routing.Ant
Una Ant
que recorre el gráfico.
aco_routing.ACO
El algoritmo tradicional de optimización de colonias de hormigas que genera hormigas en varios nodos del gráfico y encuentra la ruta más corta entre el origen y el destino especificados (pseudocódigo).
Publique cualquier problema y sugerencia en la página de problemas de GitHub.
Para contribuir, bifurque el proyecto y luego cree una solicitud de extracción para volver al maestro.