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

لنفترض مسألة برمجة غير خطية على النحو التالي:
أين،،و.
دالة لاغرانج لهذه المسألة هي [ 1 ]
أينوهي مضاعفات لاغرانج .
حالة القيد على المساواة
إذا لم تتضمن المسألة قيودًا على عدم المساواة (أي،) شروط الأمثلية من الدرجة الأولى (المعروفة أيضًا باسم شروط KKT )هي مجموعة من المعادلات غير الخطية التي يمكن حلها بشكل تكراري باستخدام طريقة نيوتن . تعمل طريقة نيوتن على تحويل شروط كاروش-كون-تاكر إلى شروط خطية عند التكرار الحالي.، مما يوفر التعبير التالي لخطوة نيوتن:
،
أينيرمز إلى مصفوفة هيسيان لدالة لاغرانج، وويمثلان الإزاحتين الأولية والثنائية على التوالي. تجدر الإشارة إلى أنه لا يتم عكس مصفوفة لاغرانج الهيسية بشكل صريح، ويتم حل نظام خطي بدلاً من ذلك.
عندما يكون الهيسي اللاغرانجيإذا لم تكن المصفوفة موجبة تمامًا ، فقد لا توجد خطوة نيوتن، أو قد تُشير إلى نقطة ثابتة ليست صغرى محلية (بل كبرى محلية أو نقطة سرجية). في هذه الحالة، يجب تنظيم مصفوفة هيسيان لاغرانج، على سبيل المثال، يمكن إضافة مضاعف لمصفوفة الوحدة إليها بحيث تصبح المصفوفة الناتجة موجبة تمامًا.
تتمثل إحدى وجهات النظر البديلة للحصول على الإزاحات الثنائية الأولية في بناء وحل نموذج تربيعي محلي للمسألة الأصلية عند التكرار الحالي:
تتوافق شروط الأمثلية لهذه المسألة التربيعية مع شروط كاروش-كون-تاكر الخطية للمسألة الأصلية. لاحظ أن الحديمكن حذف في التعبير أعلاه، لأنه ثابت تحتالمشغل.
الحالة المقيدة بعدم المساواة
في ظل وجود قيود عدم المساواة (), يمكننا بشكل طبيعي توسيع تعريف النموذج التربيعي المحلي الذي تم تقديمه في القسم السابق:
خوارزمية SQP
تبدأ خوارزمية SQP من التكرار الأوليفي كل تكرار، يتم بناء وحل المسألة الفرعية QP؛ واتجاه خطوة نيوتن الناتجتُستخدم لتحديث التكرار الحالي:
تُكرر هذه العملية لـإلى أن يتم استيفاء معيار التقارب.
التطبيقات العملية
تُعدّ التطبيقات العملية لخوارزمية SQP أكثر تعقيدًا بكثير من نسختها الأساسية المذكورة أعلاه. ولتكييف SQP مع التطبيقات الواقعية، يجب معالجة التحديات التالية:
- إمكانية وجود مشكلة فرعية غير قابلة للحل في البرمجة التربيعية.
- مشكلة فرعية في البرمجة التربيعية تؤدي إلى خطوة سيئة: خطوة إما تفشل في تقليل الهدف أو تزيد من انتهاك القيود.
- انهيار التكرارات بسبب الانحراف الكبير للأهداف/القيود عن نماذجها التربيعية/الخطية.
وللتغلب على هذه التحديات، يتم عادةً استخدام استراتيجيات متنوعة:
- استخدام دوال الجدارة، التي تقيّم التقدم نحو حل مقيد، أو خطوات غير رتيبة، أو أساليب التصفية.
- تعتمد طرق البحث عن المناطق أو الخطوط على إدارة الانحرافات بين النموذج التربيعي والهدف الفعلي.
- مراحل خاصة لاستعادة الجدوى لمعالجة المشكلات الفرعية غير القابلة للحل، أو استخدام المشكلات الفرعية المعاقبة من المستوى الأول لتقليل عدم الجدوى تدريجيًا
يمكن دمج هذه الاستراتيجيات بطرق عديدة، مما ينتج عنه مجموعة متنوعة من أساليب SQP.
مناهج بديلة
التطبيقات
تم تطبيق طرق البرمجة التربيعية المتسلسلة (SQP) في بيئات عددية معروفة مثل MATLAB و GNU Octave . كما توجد العديد من مكتبات البرامج، بما في ذلك البرامج مفتوحة المصدر.
- يحتوي SciPy (المعيار الفعلي لـ Python العلمي) على محلل scipy.optimize.minimize(method='SLSQP').
- NLopt (تنفيذ بلغة C/C++، مع العديد من الواجهات بما في ذلك Julia وPython وR وMATLAB/Octave)، تم تنفيذه بواسطة Dieter Kraft كجزء من حزمة للتحكم الأمثل، وتم تعديله بواسطة SG Johnson. [ 2 ] [ 3 ]
- برنامج ALGLIB لحل مسائل SQP (C++، C#، Java، واجهة برمجة تطبيقات Python)
- يقوم برنامج acados (C مع واجهات لـ Python و MATLAB و Simulink و Octave) بتنفيذ طريقة SQP مصممة خصيصًا لبنية المشكلة الناشئة في التحكم الأمثل ، ولكنه يعالج أيضًا البرامج غير الخطية العامة.
وتجاري
انظر أيضاً
ملحوظات
- ↑ خورخي نوسيدال وستيفن ج. رايت (2006). التحسين العددي . سبرينغر. ISBN 978-0-387-30303-1.
- ↑ كرافت، ديتر (سبتمبر 1994). "الخوارزمية 733: TOMP - وحدات فورتران لحسابات التحكم الأمثل" . معاملات ACM في البرمجيات الرياضية . 20 (3): 262-281 . CiteSeerX 10.1.1.512.2567 . doi : 10.1145/192115.192124 . S2CID 16077051. تاريخ الاسترجاع: 1 فبراير 2019 .
- ↑ "خوارزميات NLopt: SLSQP" . اقرأ الوثائق . يوليو 1988. تم الاطلاع عليه في 1 فبراير 2019 .
- ↑ دليل مستخدم KNITRO: الخوارزميات
مراجع
- بونان، ج. فريدريك؛ جيلبرت، ج. تشارلز؛ ليمارشال، كلود ؛ ساغاستيزابال، كلوديا أ. (2006). التحسين العددي: الجوانب النظرية والعملية . Universitext (الطبعة الثانية المنقحة من ترجمة الطبعة الفرنسية لعام 1997). برلين: Springer-Verlag. الصفحات: xiv+490. doi : 10.1007/978-3-540-35447-5 . ISBN 978-3-540-35445-1MR 2265882 .
- خورخي نوسيدال وستيفن ج. رايت (2006). التحسين العددي . سبرينغر. ISBN 978-0-387-30303-1.
روابط خارجية
- خوارزميات وأساليب التحسين
