← أحدث الأبحاث
⚡ electrical engineering

MixedComplementarityProblems.jl: A Fast, Batched, Open-Source Interior Point Solver for Mixed Complementarity Problems

تقدم هذه الورقة MixedComplementarityProblems.jl، وهو برنامج مفتوح المصدر بلغة جوليا (Julia) لحل مسائل التكامل التكميلي المختلط (mixed complementarity problems)، والذي يضاهي في موثوقيته برنامج PATH مغلق المصدر، بينما يوفر أداءً أسرع بشكل ملحوظ من خلال الدعم الأصلي للمعالجة المتوازية والدفعات (batched) على وحدات المعالجة المركزية (CPUs) ووحدات معالجة الرسومات (GPUs)، بالإضافة إلى التفاضل التلقائي الفعال.

المؤلفون الأصليون: David Fridovich-Keil

نُشر 2026-08-04
📖 7 دقيقة قراءة🧠 قراءة متعمّقة

المؤلفون الأصليون: David Fridovich-Keil

البحث الأصلي مرخَّص بموجب CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). هذا شرح مولَّده بالذكاء الاصطناعي للبحث أدناه. لم يكتبه المؤلفون ولم يصادقوا عليه. وللتحقق من الدقة التقنية، يرجى الرجوع إلى البحث الأصلي. اقرأ إخلاء المسؤولية الكامل

تخيل عالماً لا تكتفي فيه الروبوتات، والسيارات ذاتية القيادة، والطائرات بدون طيار باتباع سيناريو مكتوب، بل تلعب فعلياً لعبة شطرنج عالية المخاطر مع بعضها البعض لتحديد كيفية التحرك دون الاصطدام. هذا هو مجال الروبوتات متعددة الوكلاء (multi-agent robotics)، حيث يكون كل روبوت لاعباً يحاول الفوز بسباقه الخاص مع تجنب الاصطدام بالآخرين. ولاتخاذ هذه القرارات في الوقت الفعلي، يستخدم المهندسون أداة رياضية تسمى "مسألة التكامل المختلط" (Mixed Complementarity Problem - MCP). فكر في الـ MCP ككتاب قواعد ضخم ومعقد يصف بدقة كيف يجب أن يتصرف كل لاعب للوصيد إلى توازن مثالي حيث لا يمكن لأي شخص تحسين وضعه بتغيير حركته بمفرده. لسنوات طويلة، كانت الطريقة الوحيدة لقراءة كتاب القواعد هذا هي استخدام برنامج قوي جداً ولكنه مغلق، يسمى PATH. كان الأمر يشبه امتلاك رئيس طهاة ماهر يمكنه طهي وجبة مثالية، لكن لم يكن مسموحاً لك برؤية الوصفة، أو تغيير المكونات، وكان عليك الانتظار حتى يطهو الشيف وجبة واحدة فقط قبل البدء في الوجبة التالية.

الآن، دخل فريق جديد من الباحثين وبنوا مطبخاً جديداً مفتوح المصدر يسمى MixedComplementarityProblems.jl. فبدلاً من طهي وجبة واحدة في كل مرة، اكتشفوا كيفية طهي مئات الوجبات في وقت واحد، سواء كانوا يستخدمون موقداً عادياً (وحدة المعالجة المركزية للكمبيوتر - CPU) أو فرناً صناعياً فائق السرعة (بطاقة الرسوميات أو GPU). اكتشافهم الكبير؟ من خلال طهي الوجبات في دفعات (batches)، يمكنهم حل هذه الألعاب المعقدة بسرعة أكبر بنحو 100 مرة من الطريقة القدية، ويمكنهم القيام بذلك على أجهزة كمبيوتر عادية دون الحاجة إلى أجهزة خاصة ومكلفة. كما جعلوا من الممكن تعديل الوصفة أثناء العمل، وهو أمر بالغ الأهمية لتعليم الروبوتات كيفية التعلم من أخطائها.

المشكلة: ازدحام حركة مرور الروبوتات

في عالم الروبوتات، تصبح الأمور معقدة عندما تحتاج عدة وكلاء (agents) — مثل السيارات على الطريق السريع أو الطائرات بدون طيار في المستودع — إلى التحرك في نفس الوقت. يريد كل وكيل الوصول إلى وجهته بأسرع ما يمكن، لكن عليهم احترام قواعد الطريق وتجنب الاصطدام ببعضهم البعض. رياضياً، هذه "لعبة غير تعاونية". وحل هذه اللعبة هو مجموعة محددة من الحركات حيث يكون الجميع راضياً عن مساره، بالنظر إلى ما يفعله الجميع الآخرون.

لإيجاد هذا الحل، تحتاج الروبوتات إلى حل "مسألة التكامل المختلط" (MCP). يمكنك التفكير في الـ MCP كعقدة ضخمة ومتشابكة من المعادلات. بعض أجزاء العقدة تقول: "إذا كنت في منتصف المسار، فيجب أن تكون سرعتك صفراً". وأجزاء أخرى تقول: "إذا اصطدمت بالجدار، يجب أن تتوقف". وتصبح العقدة أكثر تعقيداً عندما تضيف "معاملاً" (parameter)، مثل تغيير موقع البداية للسيارة أو حد السرعة. في الروبوتات، غالباً ما تحتاج إلى حل آلاف هذه العقد في وقت واحد للتخطيط لسيناريوهات مختلفة (على سبيل المثال: "ماذا لو بدأت السيارة من هنا؟ ماذا لو بدأت من هناك؟").

لفترة طويلة، كان المعيار الصناعي لفك هذه العقد هو برنامج يسمى PATH. إنه موثوق وقوي، لكن لديه ثلاث عيوب كبيرة:

  1. أنه مغلق المصدر، مما يعني أن المطورين لا يمكنهم النظر تحت الغطاء لإصلاحه أو تخصيصه لروبوتهم الخاص.
  2. يقوم بحل المشكلات واحدة تلو الأخرى. إذا كان لديك 1,000 سيناريو للتحقق منها، فسيقوم بها بالتتابع، مما يستغرق وقتاً طويلاً.
  3. لا يتوافق جيداً مع تعلم الآلة. تحتاج الأنظمة الذكية الحديثة غالباً إلى معرفة كيف يتغير الحل إذا قمت بتعديل المدخلات قليلاً (وهي عملية تسمى التفاضل/differentiation)، لكن PATH يجعل هذا الأمر صعباً للغاية.

الحل: المطبخ الذي يعمل بنظام الدفعات

قام مؤلف هذه الورقة البحثية، الذي بنى MixedComplementarityProblems.jl، ببناء محلل جديد مكتوب بالكامل بلغة البرمجة Julia. نهجهم يشبه الترقية من شيف واحد يطهو طبقاً واحداً في كل مرة إلى طاقم مطبخ ضخم يمكنه طهي مأدبة كاملة في وقت واحد.

إليك كيف فعلوا ذلك:

1. سحر "الدفعات" (The Batched Magic)
بدلاً من حل لعبة روبوت واحدة، ثم أخرى، ثم أخرى، يأخذ المحلل الجديد "دفعة" كاملة من الألعاب — لنقل 1,024 سيناريو مختلف لحركة المرور — ويحلها جميعاً في وقت واحد.

  • على وحدة المعالجة المركزية (CPU): يستخدمون نوى الكمبيوتر المتعددة (مثل وجود 32 طباخاً يعملون بالتوازي).
  • على وحدة معالجة الرسومات (GPU): يستخدمون آلاف النوى الصغيرة لبطاقة الرسوميات (مثل خط تجميع فائق السرعة).

الجزء الذكي هو أن كل هذه الألعاب تشترك في نفس الهيكل الأساسي (نفس شكل العقدة)، حتى لو اختلفت الأرقام بداخلها. يدرك المحلل ذلك ويعيد استخدام العمل، مغيراً فقط الأرقام المحددة لكل سيناريو.

2. الوصفة "مفتوحة المصدر"
بما أن الكود مفتوح المصدر ومكتوب بلغة Julia، يمكن لأي شخص النظر إليه، أو تغييره، أو دمجه في برنامج الروبوت الخاص به. كما أنه يدعم التفاضل التلقائي (automatic differentiation)، مما يعني أن المحلل يمكنه إخبارك فوراً: "إذا حركت نقطة بداية السيارة بمقدار بوصة واحدة، فإن نمط حركة المرور بالكامل سيتغير بمقدار كذا". وهذه قوة خارقة لتدريب روبوتات الذكاء الاصطناي.

3. "التوقف الذكي"
أحد أكبر التحديات في الحل بنظام الدفعات هو أن بعض المشكلات سهلة، وبعضها صعب، وبعضها مستحيل. إذا انتظرت انتهاء أصعب مشكلة، فستظل المشكلات السهلة تنتظر فحسب.
المحلل الجديد ذكي بما يكفي لرصد متى تكون مشكلة معينة عالقة أو مستحيلة. فهو يقوم بـ "تجميد" تلك المشكلة ويتوقف عن إضاعة الوقت عليها، مما يسمح لبقية الدفعة بالاستمرار في الحركة. هذا يمنع مشكلة واحدة عنيدة من إبطاء المجموعة بأكملها.

النتائج: ما هي سرعة السرعة؟

اختبر الباحثون محللهم الجديد مقابل المعيار القديم (PATH) باستخدام نوعين من المشكلات: ألغاز رياضية عشوائية (Quadratic Programs) ولعبة "تغيير المسار" واقعية حيث تحاول سيارتان تغيير مسارهما دون الاصطدام.

  • الموثوقية: أولاً، تحققوا مما إذا كان المحلل الجديد بجودة المحلل القديم. وقد كان كذلك. فقد حل نفس عدد المشكلات التي حلها PATH، مما أثبت أنه ليس سريعاً فحسب، بل دقيق أيضاً.
  • السرعة: بعد ذلك، قاموا بقياس السرعة.
    • بالنسبة لـ لعبة تغيير المسار، تمكن المحلل الجديد من إنهاء دفعة مكونة من 1,024 سيناريو في حوالي 0.44 ثانية. بينما استغرقت طريقة PATH القديمة 46.4 ثانية. هذه زيادة في السرعة بمقدار 105 ضعفاً.
    • حتى على وحدة المعالجة المركزية (CPU) باستخدام 32 مساراً (threads)، كان المحلل الجديد أسرع بـ 100 مرة من تشغيل PATH واحداً تلو الآخر.
    • كما كانت وحدة معالجة الرسومات (GPU) سريعة بشكل لا يصدق، ولكن من المثير للاهتمام أنها لم تكن دائماً هي الفائزة.

المفاجأة: متى تفوز وحدة معالجة الرسومات (ومتى لا تفوز)؟

وجدت الورقة البحثية تفصيلاً مفاجئاً حول متى يجب استخدام أي جهاز.

  • ملك وحدة المعالجة المركزية (CPU): بالنسبة للعبة تغيير المسار، كانت وحدة المعالحة المركزية (مع مساراتها الـ 32) في الواقع أسرع من وحدة معالجة الرسومات (GPU). لماذا؟ لأن الرياضيات الخاصة بلعبة تغيير المسار هي "متفرقة" (sparse) (أي تحتوي على مساحات فارغة في الغالب). وحدة المعالجة المركزية ذكية بما يكفي لتخطي الأجزاء الفارغة والعمل فقط على المشكلات النشطة. أما وحدة معالجة الرسومات، فهي تحاول معالجة الدفعة بأكملها في وقت واحد، حتى الأجزاء المجمدة أو المنتهية، مما يهدر الطاقة.
  • بطل وحدة معالجة الرسومات (GPU): تفوقت وحدة معالجة الرسومات فقط عندما أصبحت المشكلات كبيرة و"كثيفة" (مليئة بالأرقام). على سبيل المثال، عندما زاد حجم الألغاز الرياضية العشوائية، أصبحت وحدة معالجة الرسومات أسرع من وحدة المعالجة المركزية بـ 3 مرات.

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

لماذا يهم هذا؟

هذه الورقة لا تقدم مجرد آلة حاسبة أسرع؛ بل تقدم طريقة جديدة للتفكير. من خلال إظهار أنه يمكننا حل آلاف سيناريوهات الروبوت في لمح البصر باستخدام أدوات مفتوحة المصدر، فإنها تزيل عقبة رئيسية في مجال الروبوتات.

  • التخطيط في الوقت الفعلي: يمكن للروبوتات الآن التخطيط للعديد من سيناريوهات "ماذا لو" فوراً، مما يجعلها أكثر أماناً وقدرة على التكيف.
  • التعلم: نظرًا لأن المحلل يمكنه إجراء التفاضل، يمكن للمهندسين الآن تدريب الروبوتات على تعلم استراتيجيات أفضل مباشرة من هذه الألعاب.
  • سهولة الوصول: بما أنه مفتوح المصدر، يمكن للباحثين في كل مكان استخدام هذه الأدوات دون دفع رسوم تراخيص باهظة أو الانتظار حتى تنتهي مشكلة واحدة قبل بدء التالية.

باختصار، لقد بنى المؤلف جسراً بين الرياضيات المعقدة والروبوتات في العالم الحقيقي، مثبتاً أنه مع استراتيجية المعالجة بالدفعات الصحيحة، يمكننا حل الرقصة الفوضوية للروبوتات متعددة الوكلاء بشكل أسرع من أي وقت مضى.

غارق في أبحاث مجالك؟

تصلك نشرة يومية بأحدث الأبحاث المطابقة لكلماتك البحثية المفتاحية — مع ملخصات تقنية، بلغتك.

جرّب Digest →