خوارزمية برودن-فليتشر-جولدفراب-شانو
في مجال التحسين العددي ، تُعد خوارزمية برودن-فليتشر-غولدفراب-شانو ( BFGS ) طريقة تكرارية لحل مسائل التحسين غير الخطي غير المقيد. [ 1 ] وكما هو الحال في طريقة ديفيدون-فليتشر-باول ، تحدد خوارزمية BFGS اتجاه الانحدار من خلال تهيئة التدرج بمعلومات الانحناء. ويتم ذلك عن طريق التحسين التدريجي لتقريب مصفوفة هيسيان لدالة الخسارة ، والتي يتم الحصول عليها فقط من تقييمات التدرج (أو تقييمات التدرج التقريبية) باستخدام طريقة القاطع المعممة . [ 2 ]
بما أن تحديثات مصفوفة انحناء BFGS لا تتطلب عكس المصفوفة ، فإن تعقيدها الحسابي هو فقط، مقارنة بفي طريقة نيوتن . كما يشيع استخدام L-BFGS ، وهو نسخة محدودة الذاكرة من BFGS، مناسبة بشكل خاص للمسائل ذات الأعداد الكبيرة جدًا من المتغيرات (مثلًا، أكثر من 1000). ويتعامل متغير BFGS-B مع قيود الصندوق البسيطة. [ 3 ] كما تسمح مصفوفة BFGS بتمثيل مضغوط ، مما يجعلها أكثر ملاءمة للمسائل المقيدة الكبيرة.
سُميت الخوارزمية نسبةً إلى تشارلز جورج برودن ، وروجر فليتشر ، ودونالد غولدفراب ، وديفيد شانو . [ 4 ] [ 5 ] [ 6 ] [ 7 ] وهي مثال على خوارزمية أكثر عمومية وضعها جون غرينستادت. [ 8 ]
الأساس المنطقي
تتمثل مشكلة التحسين في تقليل، أينهو متجه في، وهي دالة قياسية قابلة للتفاضل. لا توجد قيود على القيم التييمكن أن يأخذ.
تبدأ الخوارزمية بتقدير أوليللحصول على القيمة المثلى، ثم يتابع بشكل تكراري للحصول على تقدير أفضل في كل مرحلة.
يُعطى اتجاه البحث p k في المرحلة k بواسطة حل معادلة نيوتن المماثلة:
أينيمثل تقريبًا لمصفوفة هيسيان عندوالتي يتم تحديثها بشكل متكرر في كل مرحلة، ويمثل تدرج الدالة عند النقطة x k . ثم يُستخدم بحث خطي في اتجاه p k لإيجاد النقطة التالية x k + 1 عن طريق تقليلعلى الكمية القياسية
الشرط شبه النيوتني المفروض على تحديثيكون
يتركو، ثميرضي
- ،
وهي معادلة القاطع.
حالة الانحناءينبغي أن يكون راضياً عنلكي تكون موجبة تمامًا، وهو ما يمكن التحقق منه عن طريق ضرب معادلة القاطع من اليسار بـإذا لم تكن الدالة محدبة بقوة ، فيجب فرض الشرط بشكل صريح، على سبيل المثال عن طريق إيجاد نقطة x k +1 تحقق شروط وولف ، والتي تستلزم شرط الانحناء، باستخدام البحث الخطي.
بدلاً من اشتراط مصفوفة هيسيان الكاملة عند النقطةيتم حسابها على النحو التالييتم تحديث مصفوفة هيسيان التقريبية في المرحلة k عن طريق إضافة مصفوفتين:
كلاهماوهي مصفوفات متناظرة من الرتبة الأولى، لكن مجموعها عبارة عن مصفوفة تحديث من الرتبة الثانية. تختلف مصفوفة تحديث BFGS و DFP عن سابقتها بمصفوفة من الرتبة الثانية. هناك طريقة أخرى أبسط من الرتبة الأولى تُعرف باسم طريقة الرتبة الأولى المتناظرة ، والتي لا تضمن الإيجابية المحددة . وللحفاظ على التناظر والإيجابية المحددة لـيمكن اختيار نموذج التحديث كـبفرض شرط القاطع،اختيارو، يمكننا الحصول على: [ 9 ]
وأخيرًا، نستبدلوداخلواحصل على معادلة التحديث لـ:
الخوارزمية
لنفترض مسألة التحسين غير المقيدة التالية أينهي دالة هدف غير خطية وقابلة للتفاضل مرتين .
من تخمين أوليوتخمين أولي لمصفوفة هيسيانتُكرر الخطوات التالية كما يلييتقارب مع الحل:
- احصل على توجيهاتعن طريق حل.
- قم بإجراء عملية تحسين أحادية البعد ( بحث خطي ) لإيجاد حجم خطوة مقبولفي الاتجاه الذي تم تحديده في الخطوة الأولى. إذا تم إجراء بحث خطي دقيق، فـفي الواقع العملي، عادةً ما يكفي البحث غير الدقيق عن السطر، مع نتيجة مقبولة.استيفاء شروط وولف .
- تعيينوتحديث.
- .
- .
يمكن تحديد التقارب من خلال ملاحظة معيار التدرج؛ بالنظر إلى بعضيمكن إيقاف الخوارزمية عندمالويتم تهيئتها بـستكون الخطوة الأولى مكافئة لانحدار التدرج ، لكن الخطوات اللاحقة ستكون أكثر دقةً وتطوراً.، التقريب لمصفوفة هيسيان.
تُنفذ الخطوة الأولى من الخوارزمية باستخدام معكوس المصفوفةوالتي يمكن الحصول عليها بكفاءة عن طريق تطبيق صيغة شيرمان-موريسون على الخطوة 5 من الخوارزمية، مما يعطي
يمكن حساب ذلك بكفاءة دون استخدام مصفوفات مؤقتة، مع الأخذ في الاعتبار أنمتناظر، وأنوهي كميات قياسية، باستخدام توسيع مثل
لذلك، ولتجنب أي عملية عكس للمصفوفة، يمكن تقريب معكوس مصفوفة هيسيان بدلاً من مصفوفة هيسيان نفسها:[ 10 ]
من تخمين أوليومصفوفة هيسيان معكوسة تقريبيةتُكرر الخطوات التالية كما يلييتقارب مع الحل:
- احصل على توجيهاتعن طريق حل.
- قم بإجراء عملية تحسين أحادية البعد ( بحث خطي ) لإيجاد حجم خطوة مقبولفي الاتجاه الذي تم تحديده في الخطوة الأولى. إذا تم إجراء بحث خطي دقيق، فـفي الواقع العملي، عادةً ما يكفي البحث غير الدقيق عن السطر، مع نتيجة مقبولة.استيفاء شروط وولف .
- تعيينوتحديث.
- .
- .
في مسائل التقدير الإحصائي (مثل طريقة الاحتمال الأقصى أو الاستدلال البايزي)، يمكن تقدير فترات المصداقية أو فترات الثقة للحل من معكوس مصفوفة هيسيان النهائية . ومع ذلك، فإن هذه الكميات تُعرَّف تقنيًا بواسطة مصفوفة هيسيان الحقيقية، وقد لا يتقارب تقريب BFGS مع مصفوفة هيسيان الحقيقية. [ 11 ]
مزيد من التطورات
تعتمد صيغة تحديث BFGS بشكل كبير على الانحناءأن تكون الدالة موجبة تمامًا ومحدودة بعيدًا عن الصفر. يتحقق هذا الشرط عند إجراء بحث خطي باستخدام شروط وولف على هدف محدب. مع ذلك، تُنتج بعض التطبيقات العملية (مثل طرق البرمجة التربيعية المتسلسلة) انحناءات سالبة أو قريبة من الصفر بشكل روتيني. قد يحدث هذا عند تحسين هدف غير محدب أو عند استخدام أسلوب منطقة الثقة بدلًا من البحث الخطي. من الممكن أيضًا إنتاج قيم زائفة بسبب التشويش في الهدف.
في مثل هذه الحالات، يمكن استخدام أحد تحديثات BFGS المخمدة (انظر [ 12 ] ) والتي تُعدّلو/أومن أجل الحصول على تحديث أكثر قوة.
تطبيقات بارزة
من أبرز تطبيقات المصادر المفتوحة ما يلي:
- تُنفذ مكتبة ALGLIB خوارزمية BFGS وإصدارها ذي الذاكرة المحدودة في لغتي C++ و C#
- يستخدم برنامج GNU Octave شكلاً من أشكال BFGS في
fsolveوظيفته، مع امتدادات منطقة الثقة . - تُنفذ مكتبة GSL خوارزمية BFGS كـ gsl_multimin_fdfminimizer_vector_bfgs2. [ 13 ]
- في لغة R ، يتم تنفيذ خوارزمية BFGS (والإصدار L-BFGS-B الذي يسمح بقيود الصندوق) كخيار للدالة الأساسية optim(). [ 14 ]
- في مكتبة SciPy ، تُنفّذ الدالة scipy.optimize.fmin_bfgs خوارزمية BFGS. [ 15 ] كما يُمكن تشغيل BFGS باستخدام أيٍّ من خوارزميات L-BFGS عن طريق ضبط قيمة المعامل L على رقم كبير جدًا. وهي أيضًا إحدى الطرق الافتراضية المُستخدمة عند تشغيل scipy.optimize.minimize بدون قيود. [ 16 ]
- في لغة جوليا ، تُنفذ حزمة Optim.jl خوارزميتي BFGS و L-BFGS كخيار لحل المعادلات في دالة optimize() (من بين خيارات أخرى). [ 17 ]
- يقوم ستان بتطبيق BFGS مع التفاضل التلقائي كخيار لحل مشاكل تقدير الاحتمال الأقصى وتقدير الاحتمال اللاحق الأقصى .
تشمل التطبيقات الخاصة البارزة ما يلي:
- يقوم برنامج التحسين غير الخطي واسع النطاق Artelys Knitro بتنفيذ خوارزميات BFGS و L-BFGS من بين أمور أخرى.
- في مجموعة أدوات التحسين MATLAB ، تستخدم الدالة fminunc خوارزمية BFGS مع البحث الخطي التكعيبي عندما يتم ضبط حجم المشكلة على "مقياس متوسط".
- يتضمن برنامج Mathematica برنامج BFGS.
- يستخدم برنامج LS-DYNA أيضًا خوارزمية BFGS لحل المشكلات الضمنية.
انظر أيضاً
مراجع
- ↑ فليتشر، روجر (1987)، الأساليب العملية للتحسين ( الطبعة الثانية)، نيويورك: جون وايلي وأولاده ، رقم ISBN 978-0-471-91547-8
- ↑ دينيس، جيه إي جونيور ؛ شنابل، روبرت ب. (1983)، "طرق القاطع للتقليل غير المقيد" ، الطرق العددية للتحسين غير المقيد والمعادلات غير الخطية ، إنجلوود كليفس، نيوجيرسي: برنتيس هول، ص 194-215 ، ISBN 0-13-627216-9
- ↑ بيرد، ريتشارد هـ.؛ لو، بيهوانغ؛ نوسيدال، خورخي؛ تشو، سييو (1995)، "خوارزمية ذاكرة محدودة لتحسين القيود المحدودة" ، مجلة SIAM للحوسبة العلمية ، 16 (5): 1190-1208 ، CiteSeerX 10.1.1.645.5814 ، doi : 10.1137/0916069
- ↑ برودن، سي جي (1970)، "تقارب فئة من خوارزميات تقليل الرتبة المزدوجة"، مجلة معهد الرياضيات وتطبيقاتها ، 6 : 76-90 ، doi : 10.1093/imamat/6.1.76
- ↑ فليتشر، ر. (1970)، "نهج جديد لخوارزميات المقاييس المتغيرة"، مجلة الكمبيوتر ، 13 (3): 317-322 ، doi : 10.1093/comjnl/13.3.317
- ↑ غولدفراب، د. (1970)، "عائلة من تحديثات المقاييس المتغيرة المشتقة بواسطة المتوسطات التباينية"، رياضيات الحساب ، 24 (109): 23-26 ، doi : 10.1090/S0025-5718-1970-0258249-6
- ↑ شانّو، ديفيد ف. (يوليو 1970)، "تكييف طرق شبه نيوتن لتقليل الدوال"، رياضيات الحساب ، 24 (111): 647-656 ، doi : 10.1090/S0025-5718-1970-0274029-X ، MR 0274029
- ↑ غرينستادت، ج. (1970). "تنوعات على طرق القياس المتغير. (مع مناقشة)" . رياضيات الحساب . 24 (109): 1-22 . doi : 10.1090/S0025-5718-1970-0258248-4 . ISSN 0025-5718 .
- ↑ فليتشر، روجر (1987)، الأساليب العملية للتحسين ( الطبعة الثانية)، نيويورك: جون وايلي وأولاده ، ISBN 978-0-471-91547-8
- ↑ نوسيدال، خورخي؛ رايت، ستيفن جيه. (2006)، التحسين العددي (الطبعة الثانية )، برلين، نيويورك: سبرينغر-فيرلاغ ، ISBN 978-0-387-30303-1
- ↑ جي، رين-بو؛ باول، إم جيه دي (1983). "تقارب مصفوفات القياس المتغيرة في التحسين غير المقيد". البرمجة الرياضية . 27 (2). 123. doi : 10.1007/BF02591941 . S2CID 8113073 .
- ↑ خورخي نوسيدال؛ ستيفن ج. رايت (2006)، التحسين العددي
- ↑ "مكتبة جنو العلمية - وثائق GSL 2.6" . www.gnu.org . تاريخ الاسترجاع: 22 نوفمبر 2020 .
- ↑ "R: تحسين الأغراض العامة" . stat.ethz.ch. تم الاطلاع عليه بتاريخ 22-11-2020 .
- ↑ "scipy.optimize.fmin_bfgs — دليل مرجعي لـ SciPy الإصدار 1.5.4" . docs.scipy.org . تم الاطلاع عليه بتاريخ 22-11-2020 .
- ↑ "scipy.optimize.minimize — دليل مرجعي لـ SciPy الإصدار 1.5.4" . docs.scipy.org . تم الاطلاع عليه بتاريخ 22 يناير 2025 .
- ↑ "خيارات قابلة للتكوين في Optim.jl" . julianlsolvers .
للمزيد من القراءة
- أفرييل، موردخاي (2003)، البرمجة غير الخطية: التحليل والأساليب ، دار نشر دوفر، رقم ISBN 978-0-486-43227-4
- بونان، ج. فريدريك؛ جيلبرت، ج. تشارلز؛ ليمارشال، كلود ؛ ساغاستيزابال، كلوديا أ. (2006)، "الأساليب النيوتونية"، التحسين العددي: الجوانب النظرية والعملية ( الطبعة الثانية)، برلين: سبرينغر، ص 51-66 ، ISBN 3-540-35445-X
- فليتشر، روجر (1987)، الأساليب العملية للتحسين (الطبعة الثانية )، نيويورك: جون وايلي وأولاده ، رقم ISBN 978-0-471-91547-8
- لونبرغر، ديفيد ج .؛ يي، يينيو (2008)، البرمجة الخطية وغير الخطية ، السلسلة الدولية في بحوث العمليات وعلوم الإدارة، المجلد 116 ( الطبعة الثالثة)، نيويورك: سبرينغر، الصفحات 546+14، ISBN 978-0-387-74502-2MR 2423726
- كيلي، سي تي (1999)، الطرق التكرارية للتحسين ، فيلادلفيا: جمعية الرياضيات الصناعية والتطبيقية، الصفحات 71-86 ، رقم ISBN 0-89871-433-8
- خوارزميات وأساليب التحسين
