Ein Python-Paket zum Finden des kürzesten Pfads in einem Diagramm mithilfe von Ant Colony Optimization (ACO).
➡️ Eine detaillierte Anleitung finden Sie in meinem Medium-Artikel
Der Ameisenkolonie-Optimierungsalgorithmus ist eine probabilistische Technik zur Lösung von Rechenproblemen, die auf die Suche nach guten Pfaden durch Diagramme reduziert werden kann (Quelle).
Diese Implementierung des ACO-Algorithmus verwendet die NetworkX-Graphumgebung.
$ pip install aco_routing
Schauen Sie sich an: example.py
Importieren Sie alle Abhängigkeiten:
aus aco_routing import ACOimport networkx as nx
Erstellen Sie ein NetworkX.Graph
-Objekt mit Knoten und Kanten:
G = nx.DiGraph()G.add_edge("A", "B", cost=2)G.add_edge("B", "C", cost=2)G.add_edge("A", "H" , cost=2)G.add_edge("H", "G", cost=2)G.add_edge("C", "F", cost=1)G.add_edge("F", "G", cost=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", Kosten=2)G.add_edge("G", "E", Kosten=2)
Verwenden Sie ACO, um den kürzesten Weg und die kürzesten Kosten zwischen source
und destination
zu finden:
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, )
Ausgabe:
ACO path: A -> H -> G -> E -> D ACO path cost: 8.0
aco_routing.Ant
Eine Ant
, die den Graphen durchquert.
aco_routing.ACO
Der traditionelle Algorithmus zur Optimierung von Ameisenkolonien, der Ameisen an verschiedenen Knoten im Diagramm erzeugt und den kürzesten Weg zwischen der angegebenen Quelle und dem Ziel findet (Pseudocode).
Veröffentlichen Sie alle Probleme und Vorschläge auf der GitHub-Problemseite.
Um einen Beitrag zu leisten, teilen Sie das Projekt auf und erstellen Sie dann eine Pull-Anfrage zurück an den Master.