حزمة Python للعثور على أقصر مسار في الرسم البياني باستخدام Ant Colony Optimization (ACO).
➡️ راجع مقالتي المتوسطة للحصول على إرشادات تفصيلية
خوارزمية تحسين مستعمرة النمل هي تقنية احتمالية لحل المشكلات الحسابية التي يمكن اختزالها في إيجاد مسارات جيدة من خلال الرسوم البيانية (المصدر).
يستخدم هذا التنفيذ لخوارزمية ACO بيئة الرسم البياني NetworkX.
$ pip install aco_routing
راجع: example.py
استيراد كافة التبعيات:
من aco_routing قم باستيراد ACOimport Networkx كـ nx
قم بإنشاء كائن NetworkX.Graph
مع العقد والحواف:
G = nx.DiGraph()G.add_edge("A"، "B"، cost=2)G.add_edge("B"، "C"، cost=2)G.add_edge("A"، "H" ، التكلفة = 2)G.add_edge("H"، "G"، التكلفة = 2)G.add_edge("C"، "F"، التكلفة = 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"، التكلفة=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.
للمساهمة، قم بتفرع المشروع ثم قم بإنشاء طلب سحب مرة أخرى لإتقانه.