Integrating Column Generation and Large Neighborhood Search for Bus Driver Scheduling with Complex Break Constraints
تقدم هذه الورقة إطار تحسين هجين يدمج بشكل وثيق بين تقنية "التفريع والسعر" (Branch and Price) و"البحث في الجوار الكبير" (Large Neighborhood Search)، مستفيداً من توليد الأعمدة المشترك لتحقيق حلول رائدة لمسألة جدولة سائقي الحافلات عبر مختلف أحجام النماذج.
تخيل أنك مدير لشركة حافلات ضخمة. مهمتك هي وضع جدول زمني لمئات من سائقي الحافلات. لديك قائمة برحلات الحافلات التي يجب أن تتم، ولكن عليك أيضاً اتباع جبل من القواعد: لا يمكن للسائقين العمل لأكثر من 9 ساعات، ويحتاجون إلى أوقات استراحة محددة (بعضها مدفوع الأجر وبعضها غير مدفوع)، ولا يمكنهم تغيير الحافلات كثيراً، ويجب أن يعودوا إلى منازلهم في وقت معقول.
هدفك مزدوج:
توفير المال: لا توظف سائقين أكثر مما هو ضروري.
إسعاد السائقين: تجنب الجداول الزمنية المرهقة، أو فترات الاستراحة الطويلة غير المدفوعة، أو التي تتطلب الكثير من تغيير الحافلات.
هذه هي مشكلة جدولة سائقي الحافلات (BDSP). إنها لغز ضخم، حيث يجب أن تتناسب كل قطعة (نوبة عمل السائق) تماماً مع القطع الأخرى دون كسر أي قواعد.
تقدم هذه الورقة طريقة جديدة وذكية جداً لحل هذا اللغز باستخدام استراتيجيتين رئيسيتين: التفريع والتعمية (Branch and Price - B&P) و البحث في الجوار الكبير (Large Neighborhood Search - LNS)، ثم تُظهر كيفية دمجهما في "فريق خارق".
كيف يعمل: يحاول بناء الجدول المثالي من الصفر. يقوم بتفكيك المشكلة إلى قطع صغيرة. يسأل: "إذا أعطيت هذا السائق المحدد هذا المسار المحدد، هل هو قانوني؟" إذا كان نعم، يحتفظ به. إذا كان لا، يتخلص منه.
المشكلة: بالنسبة للمدن الصغيرة (الألغاز الصغيرة)، يكون هذا المهندس مذهلاً؛ فهو يجد الحل الأمثل المطلق. ولكن بالنسبة لمدينة ضخمة بها آلاف الرحلات، يصاب المهندس بالارتباك. عدد الاحتمالات ضخم جداً لدرجة أنه يستغرق وقتاً طويلاً للتحقق منها جميعاً. الأمر يشبه محاولة العثور على حبة رمل معينة على الشاطئ من خلال فحص كل حبة رمل واحدة تلو الأخرى.
حل الورقة: أدرك المؤلفون أن المهندس يقضي وقتاً طويلاً في فحص حبات الرمل التي من الواضح أنها خاطئة. أضافوا "مرشحات ذكية" (مثل أشجار k-d و التقنين القوسي - arc throttling) لتجاهل الخيارات السيئة فوراً، مما جعل المهندس أسرع بكثير.
2. حل "المصلح المبتكر": البحث في الجوار الكبير (LNS)
تخيل البحث في الجوار الكبير كمبتكر سريع الحركة ومبدع.
كيف يعمل: بدلاً من البناء من الصفر، يبدأ المبتكر بجدول زمني "جيد بما يكفي". ثم يقول: "دعونا نعبث بجزء من هذا الجدول ونحاول إصلاحه بشكل أفضل".
التدمير: يختار مجموعة من السائقين (ربما أولئك الذين يعملون في أكثر النوبات تكلفة أو إرهاقاً) ويمسح جداولهم تماماً.
الإصلاح: يحاول إعادة تعيين هؤلاء السائقين لمسارات جديدة ليرى ما إذا كانت التكلفة الإجمالية ستنخفض.
المشكلة: عادة ما يستخدم المبتكر "صندوقاً أسود" لإصلاح الفوضى. يلقي بالقطع المكسورة فقط إلى برنامج حل (solver) ويأمل الأفضل. هو لا يتذكر ما تعلمه من إصلاح "الفوضى" السابقة.
حل الورقة: جعل المؤلفون المبتكر أكثر ذكاءً. أدركوا أنه عندما يصلح المبتكر مجموعة من السائقين، فإنه يولد الكثير من "الأفكار الجيدة" (تركيبات مسارات جديدة). وبدلاً من رمي هذه الأفكاء، يجب عليهم حفظها واستخدامها لاحقاً عند إصلاح مجموعات أخرى من السائقين.
3. "الفريق الخارق": دمج الاثنين معاً
هذا هو الاختراق الأكبر للورقة. لم يستخدموا فقط "المثالي" (B&P) أو "المبتكر" (LNS)؛ بل جعلواهم يعملون معاً في حلقة محكمة.
الاستراتيجية:
المبتكر (LNS) يفكك الجدول الزمني.
يطلب من المثالي (B&P) إصلاح القطع المكسورة.
الخطوة السحرية: المثالي لا يعيد فقط الجدول الزمني المصلح. بل يسلم أيضاً "دفتر ملاحظات" بكل أفكار المسارات الجيدة التي اكتشفها أثناء إصلاح تلك القطعة.
يحفظ المبتكر هذا الدفتر. وعندما يفكك الجدول مرة أخرى لاحقاً، يفتح الدفتر ويقول: "مهلاً، أنا أعرف بالفعل طريقة رائعة لتوجيه هؤلاء السائقين! دعونا نستخدم هذه الفكرة بدلاً من البدء من الصفر".
العامل في الخلفية: أضافوا أيضاً "عاملاً في الخلفية" (خيط معالجة ثاني في الكمبيوتر) يراقب باستمرار جميع الأفكار التي تم جمعها حتى الآن ويحاول بناء جدول زمني "عالمي" أفضل في الخلفية، بينما يستمر المبتكر في العمل على الجدول الرئيسي.
لماذا يعد هذا أمراً مهماً؟
للمدن الصغيرة: لا يزال "المثالي" (B&P) هو الملك. يجد الإجابة المثالية رياضياً في ثوانٍ.
للمدن المتوسطة/الكبيرة: عادة ما يكون "المبتكر" (LNS) سريعاً، لكن "الفريق الخارق" الجديد أفضل بكثير. من خلال مشاركة الأفكار (الأعمدة) بين أجزاء مختلفة من المشكلة، يجدون حلولاً أفضل وأسرع من أي شخص آخر من قبل.
النتيجة: اختبروا هذا على بيانات حافلات نمساوية حقيقية. بالنسبة للمشكلات الصغيرة، أثبتوا أن الإجابة مثالية. وبالنسبة للمشكلات المتوسطة والكبيرة، وجدوا حلولاً أرخص بكثير وأكثر كفاءة من أي طريقة سابقة، ليصبحوا فعلياً "أحدث ما توصل إليه العلم" (state-of-the-art).
باختصار
تخيل أنك تحاول تنظيم مخطط جلوس لحفل زفاف ضخم.
الطريقة (أ) (الطريقة القديمة): تحاول حساب كل ترتيب جلوس ممكن للعثور على الترتيب المثالي. (يستغرق وقتاً طويلاً لـ 500 ضيف).
الطريقة (ب) (الطريقة القديمة): تقوم بتحريك بعض الأشخاص، وترى ما إذا كان الأمر يبدو أفضل، ثم تكرر العملية. (سريع، لكنك قد تفوت أفضل ترتيب).
طريقة هذه الورقة: تقوم بتحريك بعض الأش ludzi، ولكن في كل مرة تجد فيها مجموعة جلوس رائعة، تقوم بتدوينها في دفتر ملاحظات مشترك. في المرة القالية التي تحرك فيها مجموعة مختلفة، تتحقق من الدفتر أولاً. كما أن لديك صديقاً يجلس في الخلف، يقرأ الدفتر باستمرار ويقترح ترتيبات عامة أفضل بينما تعمل أنت.
يسمح نهج "الدفتر المشترك" هذا بحل مشكلات الجدولة المعقدة التي كانت في السابق صعبة للغاية أو بطيئة جداً للتعامل معها بكفاءة.
إليك ملخص تقني مفصل للورقة البحثية بعنوان: "دمج توليد الأعمدة مع البحث في الجوار الكبير لجدولة سائقي الحافلات مع قيود الاستراحة المعقدة."
1. تعريف المشكلة: مشكلة جدولة سائقي الحافلات (BDSP)
تتناول الورقة مشكلة جدولة سائقي الحافلات (BDSP)، وهي تحدٍ في التحسين التوافقي يركز على تعيين السائقين لرحلات حافلات (أجزاء/legs) معدة مسبقاً ليوم تشغيل واحد.
المدخلات: مجموعة من أجزاء رحلات الحافلات (المحددة بأوقات البدء/النهاية، المواقع، وجولات المركبات)، ومصفوفة مسافات للتنقل السلبي، وأوقات بدء/نهاية العمل.
وقت القيادة: بحد أقصى 9 ساعات إجمالية؛ مع ضرورة وجود استراحات كل 4 ساعات (الخيارات: 30 دقيقة مرة واحدة، أو 20 دقيقة مرتين، أو 15 دقيقة ثلاث مرات).
وقت العمل: بحد أقصى 10 ساعات (بحد أدنى مرن 6.5 ساعة)؛ ويتطلب استراحات راحة بناءً على المدة (30 دقيقة أو 45 دقيقة).
تموضع الاستراحة: قواعد معقدة تتعلق بالاستراحات المدفوعة وغير المدفوعة. تكون الاستراحات غير مدفوعة إذا لم تتقاطع مع أول أو آخر ساعتين من الوردية، مع وجود حدود صارمة لإجمالي الوقت غير المدفوع (1.5 ساعة أو 1 ساعة اعتماداً على التموضع).
انقسام الوردية: الاستراحات التي تبلغ مدتها ≥ 3 ساعات تُعد انقساماً للوردية (غير مدفوعة، ولا تُحتسب ضمن وقت العمل) ولكنها غير محبذة لدى السائقين.
الهدف: دالة متعددة الأهداف تهدف إلى تقليل:
التكلفة: وبشكل أساسي وقت العمل المدفوع (Ws′) وإجمالي وقت الانتظار (Ts).
الكفاءة: وقت الركوب السلبي وتغييرات المركبات/الجولات.
رضا السائق: تقليل انقسامات الوردية والاستراحات الطويلة غير المدفوعة.
2. المنهجية
يقترح المؤلفون إطار عمل هجين يجمع بين التفريع والأسعار (Branch and Price - B&P) للحلول الدقيقة في الحالات الصغيرة، والبحث في الجوار الكبير (Large Neighborhood Search - LNS) للحالات الأكبر، مع تكامل وثيق ومبتكر بينهما.
أ. التفريع والأسعار (B&P) - الطريقة الدقيقة
المسألة الرئيسية (Master Problem): مسألة تقسيم المجموعات (اختيار الوردات لتغطية جميع الأجزاء مرة واحدة بالضبط).
المسألة الفرعية (Subproblem): مسألة أقصر مسار مقيد بالموارد (RCSPP) عالية الأبعاد على رسم بياني موجه لا دوري (DAG)، حيث تمثل العقد أجزاء رحلات الحافلات.
التحدي: تحتوي مسألة RCSPP على 11 بُعداً للموارد (وقت القيادة، وقت الانتظار، وقت العمل، عدادات الاستراحة، حدود الراحة غير المدفوعة، إلخ)، مما يجعل خوارزميات تحديد الملصقات (label-setting) القياسية غير فعالة بسبب انفجار الملصقات غير المسيطر عليها.
التحسينات:
تقسيم المسألة الفرعية: تقسيم RCSPP إلى ثلاثة رسوم بيانية منفصلة بناءً على وجود وموقع استراحة الـ 30 دقيقة (لا يوجد، غير مركزية، مركزية) لتبسيط عمليات التحقق من السيطرة.
تقليم الأقواس الأسي (Exponential Arc Throttling): في التكرارات المبكرة، يتم حذف الأقواس ذات التكاليف العالية لتقليل حجم الرسم البياني، مع تخفيف هذا القيد تدريجياً.
السيطرة ثنائية المرحلة: استخدام أشجار k-d وصناديق التحديد (bounding boxes) لتسريع عملية حذف الملصقات المسيطر عليها، مستبدلةً مقارنة O(N2) التربيعية بنهج أكثر كفاءة.
الحدود اللاجرانجية (Lagrangean Bounds): تُستخدم لتوفير حدود دنيا عندما يكون توليد الأعمدة الكامل يستغرق وقتاً طويلاً جداً.
ب. البحث في الجوار الكبير (LNS) - النهج الاستدلالي
إطار العمل: يقوم بتدمير مجموعة فرعية من الحل الحالي (السائقين/الوردات) ثم إصلاحها.
عوامل التدمير (Destroy Operators):
المنتظم (Uniform): يختار k من السائقين عشوائياً.
الموزون (Weighted): يختار السائقين ذوي التكلفة العالية بشكل متكرر أكثر.
مزيل الجولة (ωtr): يختار جولة حافلة معينة ويزيل جميع السائقين الذين يتشاركون في تلك الجولة (لاستغلال بنية المشكلة).
عامل الإصلاح (Repair Operator): يحل المسألة الفرعية (إعادة تحسين الأجزاء التي تمت إزالتها).
الاستراتيجية: بدلاً من تشغيل B&P كاملاً، تستخدم مرحلة الإصلاح توليد الأعمدة (CG) فقط عند العقدة الجذرية. يوفر هذا حلولاً عالية الجودة بسرعة كبيرة (فجوة تقارب 1%) دون التكلفة الحسابية للتفريع الكامل.
التكيف (Adaptivity): يتم تعديل أوزان عوامل التدمير ديناميكياً بناءً على معدل نجاحها ووقت التشغيل.
ج. التكامل الوثيق المبتكر (المساهمة الجوهرية)
تقدم الورقة "تكاملاً وثيقاً" حيث لا يتم التعامل مع LNS و CG كصناديق سوداء، بل يتشاركان المعلومات:
تخزين وإعادة استخدام الأعمدة (+r): الأعمدة (الوردات) التي يتم توليدها أثناء إصلاح مسألة فرعية واحدة يتم تخزينها في حوض عالمي (S^). عند حل مسألة فرعية لاحقة، يبدأ الخوارزمي بالأعمدة من S^ التي تكون صالحة للأجزاء الحالية، مما يتجنب الحاجة لإعادة اكتشافها.
المحلل الخلفي العالمي (+b): يعمل خيط (thread) ثانوي في الخلفية باستمرار، حيث يحل المسألة الرئيسية الصحيحة (Integer Master Problem) باستخدام كامل حوض الأعمدة المتراكم (S^) من جميع تكرارات LNS.
إذا وجد المحلل الخلفي حلاً عالمياً أفضل، فإنه يقوم بتحديث أفضل حل حالي (Sbsf) فوراً.
يسمح هذا للنظام بالاستفادة من "الرؤية العالمية" لجميع الأعمدة المولدة، وليس فقط الرؤية المحلية للمسألة الفرعية الحالية.
3. المساهمات الرئيسية
طريقة دقيقة للقيود المعقدة: نهج B&P قوي قادر على حل حالات BDSP صغيرة إلى متوسطة الحجم للوصول إلى الحل الأمثل رغم قيود الموارد ذات الـ 11 بُعداً، وذلك باستخدام أشجار k-d وتقسيم المسألة الفرعية.
تصميم مبتكر لـ LNS: تقديم عامل التدمير "مزيل الجولة" (Tour Remover) واستراتيجية استخدام CG عند العقدة الجذرية (بدلاً من B&P الكامل) كآلية إصلاح سريعة.
إطار التكامل الوثيق: اقتراح إعادة استخدام الأعمدة والمحلل الخلفي الذي يجمع الأعمدة عبر المسائل الفرعية. يحول هذا LNS من بحث محلي إلى وسيلة تستفيد من تراكم المعلومات العالمية.
أداء يمثل أحدث ما توصل إليه العلم (State-of-the-Art): يضع الطريقة المتكاملة ($LNS+rb(f)$) معايير جديدة لجدولة سائقي الحافلات في النمسا.
4. النتال التجريبية
أُجري التقييم على 65 حالة اختبار (أحجام من 10 إلى 250 جولة) خلال حد زمني قدره ساعة واحدة.
الحالات الصغيرة (الحجم < 30): تعتبر B&P هي الأفضل، حيث تحل الحالات للوصول إلى الحل الأمثل في ثوانٍ بفجوة 0%.
الحالات المتوسطة إلى الكبيرة (الحجم 40–150): تتفوق الطريقة المتكاملة $LNS+rb(f)$ (LNS مع إعادة استخدام الأعمدة والمحلل الخلفي باستخدام مجموعات الأعمدة الكاملة) بشكل كبير على:
LNS القياسي (الذي يستخدم CG كصندوق أسود فقط).
الطرق السابقة التي تمثل أحدث ما توصل إليه العلم (مثل Construct-Solve-Merge-Adapt، و Tabu Search).
تحقق قيم هدف أقل (تكلفة/رضا أفضل) وفجوات أضيق بالنسبة للحد الأدنى.
الحالات الكبيرة جداً (الحجم > 200): بينما تتقلص فجوات الأداء، تظل $LNS+rb(f)$ منافسة.
الكفاءة: يوفر نهج "المحلل الخلفي" أفضل النتائج، بينما يعد "إعادة استخدام الأعمدة" أمراً حاسماً لإدارة استخدام الذاكرة (لمنع المحلل الخلفي من الامتلاء بالأعمدة غير المثالية).
الأهمية الإحصائية: تؤكد اختبارات Friedman والتحليل البعدي أن الطريقة المتكاملة المقترحة أفضل إحصائياً بشكل ملحوظ من جميع الأساليب السابقة.
5. الأهمية
نظرياً: يوضح أن دمج الطرق الدقيقة (CG) في الخوارزميات الاستدلالية (LNS) عبر مشاركة المعلومات (تخزين الأعمدة) والتحسين العالمي المتوازي (المحلل الخلفي) يؤدي إلى نتائج متفوقة مقارنة بالتعامل معها كمكونات منفصلة.
عملياً: يوفر طريقة حل قادرة على التعامل مع لوائح العمل المعقدة للغاية في الواقع (تحديداً الاتفاقيات الجماعية النمساوية) والتي كان من الصعب تحسينها سابقاً.
القابلية للتعميم: يمكن تطبيق تقنيات حل مسائل RCSPP عالية الأبعاد والتكامل الوثيق لـ LNS/CG على مسائل أخرى تتعلق بجدولة الموظفين ونقل المركبات ذات القيود المعقدة.
في الختام، تثبت الورقة أن $LNS+rb(f)$ هي المعيار الجديد لأحدث ما توصل إليه العلم في مشكلة جدولة سائقي الحافلات، حيث توازن بفعالية بين الحاجة إلى الدقة في المقاييس الصغيرة والكفاءة الاستدلالية في المقاييس الكبيرة من خلال بنية متكاملة ومترابطة بشكل مبتكر.