تخطٍّ إلى المحتوى
DispatchAtlas
بحث

الخوارزميات

يفصل DispatchAtlas سلوك الحلّالات عن توليد النسخ المرجعية وتنفيذ الحملات. يعيش كل حلّال في dispatchatlas.solve خلف سجلّ واحد، وبيانات الحلّال الوصفية هي العقد العام للأهداف والقدرات والترميزات والتبعيّات والعشوائية ورؤية طبقة الأدلّة والخلفيّات الاختيارية. تشرح هذه الصفحة عائلات الحلّالات على المستوى العملي؛ وصفحة سجلّ نظام الحلّالات هي الكتالوج المرجعي لكل حلّال.

🏗️ كيف تُنظَّم الحلّالات

يُعيد default_solver_registry() سجلّ مصانع الحلّالات عديمة الحالة. يُعلِن كل مُدخَل وسوم القدرة، والأهداف المدعومة، ومعايير التوقّف الافتراضية، وسلوك إعادة تشغيل حتميًّا أو عشوائيًّا-ببذرة، وترميز حل، ومتطلّبات تبعيّات اختيارية، ورؤية طبقة الأدلّة، واستشهادًا معياريًّا (أو مسوّغًا صريحًا لعدم-انطباق-الاستشهاد). تفشل الاستشهادات إلى الإغلاق: عائلةٌ لها أصل تأسيسي معياري لكنها تُغفِل مرجعها لا يمكن إنشاؤها.

🧰 عائلات الحلّالات

العائلةأمثلةالاستخدام
التوزيع البنائيearliest-start، shortest-processing-time، earliest-deadline، minimum-slackجداول أساس حتمية سريعة وفحوص دخانية.
خطوط أساس ميتاهيوريستيةجيني، تلدين، مستعمرة نمل، سرب جسيمات، تطوّر تفاضليخطوط أساس بحث ببذرة تمثيلية على ترتيبات مهام آمنة الأسبقية.
محوّلات مُرمَّزةclpso، d-clpso، lshade، d-lshadeمُحسِّنات مستمرّة مربوطة بالجدولة عبر محوّلات ترميز.
أقران حديثونepso، adpso، ccgpأقران منشورون حديثون يتجاوزون عتبة قوة-المحفل المُسنَدة بمصدر.
متعدّد الأهدافnsga3تخصيص أكشاك بنقطة مرجعية على متّجه متعدّد الأهداف.
محوّلات دقيقةortools-cp-sat، pulp-milp، branch-and-bound، logic-based-benders-decomposition، gurobi-exact، exhaustive-enumeration، decision-diagram-sequencingحفنة دقيقة منتقاة خلف تبعيّات اختيارية، أو بحث أصلي محدود.
NDSOndso-core، ndso-fast، ndso-summitعائلة الحلّالات ذات الترميز الأصلي في السجلّ.

📋 قواعد التوزيع البنائي

خطوط الأساس الحتمية المُرفقة حلّالات جدولة-قائمة بنائية: تتحكّم كلٌّ منها في ترتيب المهام، ويحترم الباني التسلسلي مطالب الموارد المُعلَنة لكل مهمة. العائلات السبع — earliest-start، shortest-processing-time، longest-processing-time، earliest-deadline، earliest-finish-time، minimum-slack، وgreedy-completion — تُسمّي كلٌّ منها مرجعها التأسيسي المعياري في البيانات الوصفية. وهي أسرع مسار إلى جدول مجدٍ وتُرسي كل مقارنة، كما في الدرس التعليمي الأول.

🔀 خطوط الأساس الميتاهيوريستية

خمس خوارزميات ميتاهيوريستية ببذرة تمثيلية — الخوارزمية الجينية، والتلدين المحاكى، ومستعمرة النمل، وسرب الجسيمات، والتطوّر التفاضلي — تتشارك مشغّلات الجدوى والإصلاح والتسجيل والبحث المحلّي نفسها، فتقيس المقارنة استراتيجية البحث لا فروق السباكة العرضية.

🔌 حلّالات المحوّلات المُرمَّزة

سرب الجسيمات بالتعلّم الشامل (clpso، d-clpso) والتطوّر التفاضلي التكيّفي بتاريخ-النجاح (lshade، d-lshade) يبحثان متّجهًا مستمرًّا حقيقي القيم بمكوّن واحد لكل مهمة. كل لُبّ عامٌّ على هدف مستمرّ ومربوط بالجدولة عبر محوّل ترميز مُسمّى (random-key، spv، rounding، وفكوك دالة النقل) يحوّل متّجهًا إلى ترتيب مهام مجدٍ-الأسبقية، مع سياسة إصلاح صريحة تُسجّل ما إن كان الإصلاح قد انطلق.

🥊 المنافسون المتنوّعون والمسار متعدّد الأهداف

تُوسِّع مجموعة منتقاة من الأقران المنشورين حديثًا المقارنةَ إلى ما وراء خطوط الأساس التمثيلية، يحمل كلٌّ منها مرجعه النصّي الكامل ونقاط قوّته وتحفّظاته في البيانات الوصفية. ينضمّ قرين إلى الميدان العام فقط عندما يتجاوز عتبة قوة-المحفل المُسنَدة بمصدر؛ ويبقى مجمّع أوسع من خطوط الأساس الكلاسيكية مُسجَّلًا للمقارنة الداخلية. وnsga3 هو المنافس متعدّد الأهداف المُسمّى: يُقيّم كل ترتيب آمن-الأسبقية على متّجه متعدّد الأهداف (makespan، والتأخّر، وإنصاف الحمل) ويختار الناجين بتخصيص أكشاك بنقطة مرجعية.

🎯 المحوّلات الدقيقة

تُعلِن محوّلات الخلفية الاختيارية (CP-SAT، وMILP، وbranch-and-bound) تبعيةً اختيارية وتستكشف جذر استيرادها وقت التشغيل؛ وحين تغيب الخلفية تُطلِق MissingOptionalDependencyError باسم الإضافة وملاحظة الترخيص بدلًا من استيراد تبعية ثقيلة عند استيراد الحزمة. أما المحوّلات الأصلية-المحدودة (exhaustive-enumeration وdecision-diagram-sequencing) فلا تحمل تبعية طرف ثالث وتحلّ النسخ الصغيرة بدقّة، مُطلِقةً UnsupportedCapabilityError بعد عدد المهام المدعوم. ويبقى غلاف Gurobi التجاري خلف إضافة exact-commercial ولا يُحزَم أبدًا؛ ويبقى مجمّع أوسع من الخلفيّات الاختيارية مُسجَّلًا للاستخدام الداخلي.

🐝 عائلة NDSO

NDSO هي عائلة الحلّالات ذات الترميز الأصلي في السجلّ: تبحث مباشرةً عبر الجداول المجدية، فيكون كل جدول تُنتِجه مجديًا بالبناء، ولا تُجري العائلة أبدًا خطوة ترميز/فكّ ترميز ولا مرور إصلاح. وهي تركّب مجموعة صغيرة من الآليات المُسمّاة:

  • مصفوفة ثقة بثقة مُتعلَّمة لكل خلية (موضع، مهمة)، تُعزِّزها الجداول الأفضل؛
  • تصويت موزون بالثقة، يُركّب الجدول النخبوي بالتصويت عبر المجتمع الموزون بتلك المصفوفة؛
  • جداول الكمّية-والجودة التي تحدّد مقدار تغيّر المرشّح ومن أي مصدر إرشاد يتعلّم؛
  • إرشاد من ثلاثة مصادر — النخبة المُركَّبة (استثمار)، وقرين (تنوّع)، أو مصدر معرفة-متلاشية (استكشاف جذري)؛
  • معامل تكيّفي موحَّد، جدول لا خطّي واحد يُزيح العائلة من الاستكشاف إلى الاستثمار.
المتغيّرالتركيب
ndso-coreتصويت موزون بالثقة، معامل تكيّفي، إرشاد من ثلاثة مصادر.
ndso-fastتركيب بتصويت الأغلبية، معامل ثابت، مصدر إرشاد واحد.
ndso-summitمجلس بين-الأسراب يُنسّق عدّة أسراب ويُركّب نتائجها في نخبة جامعة واحدة.

تُعدّد خريطة استئصال (ablation) تهيئةً عازلة واحدة لكل آلية مُسمّاة كي يستطيع التحليل اللاحق عزو إسهام كل آلية، ويفشل مرشّح تصدير مُدرَّج إلى الإغلاق بدلًا من كشف آلية طبقة لاحقة تحت نطاق تقرير أدنى. التفصيل الكامل للآليات والمجلس والاستئصال والتشخيص يعيش في نظام الحلّالات؛ ولا يُقدَّم أي ادّعاء أداء قبل تشغيل الحملات المقارِنة.

🎛️ الاختيار

يطابق SolverRegistry.select الحلّالات وفق وسوم القدرة والقيود المُعلَنة والهدف المدعوم ورؤية طبقة الأدلّة — وregistry.select(objective="makespan", disclosure_label=DisclosureLabel.CORE) من البدء السريع هو أصغر مثال. وفوق السجلّ، ترتّب طبقة الاختيار الحلّالات لمسألة ما انطلاقًا من ميزات التوصيف والبيانات الوصفية العامة، وتَسِم كل توصية بمصدرها وثقتها، ولا تدّعي أبدًا حلّالًا أفضل عالميًّا. ويعرض موصي الحلّالات تلك التفسيرات، بما في ذلك سبب استبعاد حلّال.