خوارزمية برودن-فليتشر-جولدفراب-شانو

في مجال التحسين العددي ، تُعد خوارزمية برودن-فليتشر-غولدفراب-شانو ( BFGS ) طريقة تكرارية لحل مسائل التحسين غير الخطي غير المقيد. [ 1 ] وكما هو الحال في طريقة ديفيدون-فليتشر-باول ، تحدد خوارزمية BFGS اتجاه الانحدار من خلال تهيئة التدرج بمعلومات الانحناء. ويتم ذلك عن طريق التحسين التدريجي لتقريب مصفوفة هيسيان لدالة الخسارة ، والتي يتم الحصول عليها فقط من تقييمات التدرج (أو تقييمات التدرج التقريبية) باستخدام طريقة القاطع المعممة . [ 2 ]

بما أن تحديثات مصفوفة انحناء BFGS لا تتطلب عكس المصفوفة ، فإن تعقيدها الحسابي هو فقطيا(ن2){\displaystyle {\mathcal {O}}(n^{2})}، مقارنة بيا(ن3){\displaystyle {\mathcal {O}}(n^{3})}في طريقة نيوتن . كما يشيع استخدام L-BFGS ، وهو نسخة محدودة الذاكرة من BFGS، مناسبة بشكل خاص للمسائل ذات الأعداد الكبيرة جدًا من المتغيرات (مثلًا، أكثر من 1000). ويتعامل متغير BFGS-B مع قيود الصندوق البسيطة. [ 3 ] كما تسمح مصفوفة BFGS بتمثيل مضغوط ، مما يجعلها أكثر ملاءمة للمسائل المقيدة الكبيرة.

سُميت الخوارزمية نسبةً إلى تشارلز جورج برودن ، وروجر فليتشر ، ودونالد غولدفراب ، وديفيد شانو . [ 4 ] [ 5 ] [ 6 ] [ 7 ] وهي مثال على خوارزمية أكثر عمومية وضعها جون غرينستادت. [ 8 ]

الأساس المنطقي

تتمثل مشكلة التحسين في تقليلو(x){\displaystyle f(\mathbf {x} )}، أينx{\displaystyle \mathbf {x} }هو متجه فيRن{\displaystyle \mathbb {R} ^{n}}، وو{\displaystyle f}هي دالة قياسية قابلة للتفاضل. لا توجد قيود على القيم التيx{\displaystyle \mathbf {x} }يمكن أن يأخذ.

تبدأ الخوارزمية بتقدير أوليx0{\displaystyle \mathbf {x} _{0}}للحصول على القيمة المثلى، ثم يتابع بشكل تكراري للحصول على تقدير أفضل في كل مرحلة.

يُعطى اتجاه البحث p k في المرحلة k بواسطة حل معادلة نيوتن المماثلة:

بكصك=-و(xك)،{\displaystyle B_{k}\mathbf {p} _{k}=-\nabla f(\mathbf {x} _{k}),}

أينبك{\displaystyle B_{k}}هي تقريب لمصفوفة هيسيان عندxك{\displaystyle \mathbf {x} _{k}}والتي يتم تحديثها بشكل متكرر في كل مرحلة، وو(xك){\displaystyle \nabla f(\mathbf {x} _{k})}يمثل تدرج الدالة عند النقطة x k . ثم يُستخدم بحث خطي في اتجاه p k لإيجاد النقطة التالية x k + 1 عن طريق تقليلو(xك+γصك){\displaystyle f(\mathbf {x} _{k}+\gamma \mathbf {p} _{k})}على الكمية القياسيةγ>0.{\displaystyle \gamma >0.}

الشرط شبه النيوتني المفروض على تحديثبك{\displaystyle B_{k}}يكون

بك+1(xك+1-xك)=و(xك+1)-و(xك).{\displaystyle B_{k+1}(\mathbf {x} _{k+1}-\mathbf {x} _{k})=\nabla f(\mathbf {x} _{k+1})-\nabla f(\mathbf {x} _{k}).}

يتركyك=و(xك+1)-و(xك){\displaystyle \mathbf {y} _{k}=\nabla f(\mathbf {x} _{k+1})-\nabla f(\mathbf {x} _{k})}وsك=xك+1-xك{\displaystyle \mathbf {s} _{k}=\mathbf {x} _{k+1}-\mathbf {x} _{k}}، ثمبك+1{\displaystyle B_{k+1}}يرضي

بك+1sك=yك{\displaystyle B_{k+1}\mathbf {s} _{k}=\mathbf {y} _{k}}،

وهي معادلة القاطع.

حالة الانحناءsكتيyك>0{\displaystyle \mathbf {s} _{k}^{\mathsf {T}}\mathbf {y} _{k}>0}ينبغي أن يكون راضياً عنبك+1{\displaystyle B_{k+1}}لكي تكون موجبة تمامًا، وهو ما يمكن التحقق منه عن طريق ضرب معادلة القاطع من اليسار بـsكتي{\displaystyle \mathbf {s} _{k}^{\mathsf {T}}}إذا لم تكن الدالة محدبة بقوة ، فيجب فرض الشرط بشكل صريح، على سبيل المثال عن طريق إيجاد نقطة x k +1 تحقق شروط وولف ، والتي تستلزم شرط الانحناء، باستخدام البحث الخطي.

بدلاً من اشتراط مصفوفة هيسيان الكاملة عند النقطةxك+1{\displaystyle \mathbf {x} _{k+1}}يتم حسابها على النحو التاليبك+1{\displaystyle B_{k+1}}يتم تحديث مصفوفة هيسيان التقريبية في المرحلة k عن طريق إضافة مصفوفتين:

بك+1=بك+يوك+Vك.{\displaystyle B_{k+1}=B_{k}+U_{k}+V_{k}.}

كلاهمايوك{\displaystyle U_{k}}وVك{\displaystyle V_{k}}هي مصفوفات متناظرة من الرتبة الأولى، لكن مجموعها عبارة عن مصفوفة تحديث من الرتبة الثانية. تختلف مصفوفة تحديث BFGS و DFP عن سابقتها بمصفوفة من الرتبة الثانية. هناك طريقة أخرى أبسط من الرتبة الأولى تُعرف باسم طريقة الرتبة الأولى المتناظرة ، والتي لا تضمن الإيجابية المحددة . وللحفاظ على التناظر والإيجابية المحددة لـبك+1{\displaystyle B_{k+1}}يمكن اختيار نموذج التحديث كـبك+1=بك+αuuتي+βvvتي{\displaystyle B_{k+1}=B_{k}+\alpha \mathbf {u} \mathbf {u} ^{\mathsf {T}}+\beta \mathbf {v} \mathbf {v} ^{\mathsf {T}}}بفرض شرط القاطع،بك+1sك=yك{\displaystyle B_{k+1}\mathbf {s} _{k}=\mathbf {y} _{k}}اختيارu=yك{\displaystyle \mathbf {u} =\mathbf {y} _{k}}وv=بكsك{\displaystyle \mathbf {v} =B_{k}\mathbf {s} _{k}}، يمكننا الحصول على: [ 9 ]

α=1yكتيsك،{\displaystyle \alpha ={\frac {1}{\mathbf {y} _{k}^{\mathsf {T}}\mathbf {s} _{k}}},}
β=-1sكتيبكsك.{\displaystyle \beta =-{\frac {1}{\mathbf {s} _{k}^{\mathsf {T}}B_{k}\mathbf {s} _{k}}}.}

وأخيرًا، نستبدلα{\displaystyle \alpha }وβ{\displaystyle \beta }داخلبك+1=بك+αuuتي+βvvتي{\displaystyle B_{k+1}=B_{k}+\alpha \mathbf {u} \mathbf {u} ^{\mathsf {T}}+\beta \mathbf {v} \mathbf {v} ^{\mathsf {T}}}واحصل على معادلة التحديث لـبك+1{\displaystyle B_{k+1}}:

بك+1=بك+yكyكتيyكتيsك-بكsكsكتيبكتيsكتيبكsك.// _ {ك}\mathbf {s} _{k}^{\mathsf {T}}B_{k}^{\mathsf {T}}}{\mathbf {s} _{k}^{\mathsf {T}}B_{k}\mathbf {s} _{k}}}.}

الخوارزمية

لنفترض مسألة التحسين غير المقيدة التالية تقليلxRنو(x)،{\displaystyle {\begin{aligned}{\underset {\mathbf {x} \in \mathbb {R} ^{n}}{\text{minimize}}}\quad &f(\mathbf {x} ),\end{aligned}}} أينو:RنR{\displaystyle f:\mathbb {R} ^{n}\to \mathbb {R} }هي دالة هدف غير خطية وقابلة للتفاضل مرتين .

من تخمين أوليx0Rن{\displaystyle \mathbf {x} _{0}\in \mathbb {R} ^{n}}وتخمين أولي لمصفوفة هيسيانب0Rن×ن{\displaystyle B_{0}\in \mathbb {R} ^{n\times n}}تُكرر الخطوات التالية كما يليxك{\displaystyle \mathbf {x} _{k}}يتقارب مع الحل:

  1. احصل على توجيهاتصك{\displaystyle \mathbf {p} _{k}}عن طريق حلبكصك=-و(xك){\displaystyle B_{k}\mathbf {p} _{k}=-\nabla f(\mathbf {x} _{k})}.
  2. قم بإجراء عملية تحسين أحادية البعد ( بحث خطي ) لإيجاد حجم خطوة مقبولαك{\displaystyle \alpha _{k}}في الاتجاه الذي تم تحديده في الخطوة الأولى. إذا تم إجراء بحث خطي دقيق، فـαك=argمينαو(xك+αصك){\displaystyle \alpha _{k}=\arg \min _{\alpha }f(\mathbf {x} _{k}+\alpha \mathbf {p} _{k})}في الواقع العملي، عادةً ما يكفي البحث غير الدقيق عن السطر، مع نتيجة مقبولة.αك{\displaystyle \alpha _{k}}استيفاء شروط وولف .
  3. تعيينsك=αكصك{\displaystyle \mathbf {s} _{k}=\alpha _{k}\mathbf {p} _{k}}وتحديثxك+1=xك+sك{\displaystyle \mathbf {x} _{k+1}=\mathbf {x} _{k}+\mathbf {s} _{k}}.
  4. yك=و(xك+1)-و(xك){\displaystyle \mathbf {y} _{k}={\nabla f(\mathbf {x} _{k+1})-\nabla f(\mathbf {x} _{k})}}.
  5. بك+1=بك+yكyكتيyكتيsك-بكsكsكتيبكتيsكتيبكsك// _ {ك}\mathbf {s} _{k}^{\mathsf {T}}B_{k}^{\mathsf {T}}}{\mathbf {s} _{k}^{\mathsf {T}}B_{k}\mathbf {s} _{k}}}}.

يمكن تحديد التقارب من خلال ملاحظة معيار التدرج؛ بالنظر إلى بعضϵ>0{\displaystyle \epsilon >0}يمكن إيقاف الخوارزمية عندما||و(xك)||ϵ.{\displaystyle ||\nabla f(\mathbf {x} _{k})||\leq \epsilon .}لوب0{\displaystyle B_{0}}يتم تهيئتها بـب0=أنا{\displaystyle B_{0}=I}ستكون الخطوة الأولى مكافئة لانحدار التدرج ، لكن الخطوات اللاحقة ستكون أكثر دقةً وتطوراً.بك{\displaystyle B_{k}}، التقريب لمصفوفة هيسيان.

تُنفذ الخطوة الأولى من الخوارزمية باستخدام معكوس المصفوفةبك{\displaystyle B_{k}}والتي يمكن الحصول عليها بكفاءة عن طريق تطبيق صيغة شيرمان-موريسون على الخطوة 5 من الخوارزمية، مما يعطي

بك+1-1=(أنا-sكyكتيyكتيsك)بك-1(أنا-yكsكتيyكتيsك)+sكsكتيyكتيsك.{\displaystyle B_{k+1}^{-1}=\left(I-{\frac {\mathbf {s} _{k}\mathbf {y} _{k}^{\mathsf {T}}}{\mathbf {y} _{k}^{\mathsf {T}}\mathbf {s} _{k}}}\right)B_{k}^{-1}\left(I-{\frac {\mathbf {y} _{k}\mathbf {s} _{k}^{\mathsf {T}}}{\mathbf {y} _{k}^{\mathsf {T}}\mathbf {s} _{k}}}\right)+{\frac {\mathbf {s} _{k}\mathbf {s} _{k}^{\mathsf {T}}}{\mathbf {y} _{k}^{\mathsf {T}}\mathbf {s} _{k}}}.}

يمكن حساب ذلك بكفاءة دون استخدام مصفوفات مؤقتة، مع الأخذ في الاعتبار أنبك-1{\displaystyle B_{k}^{-1}}متناظر، وأنyكتيبك-1yك{\displaystyle \mathbf {y} _{k}^{\mathsf {T}}B_{k}^{-1}\mathbf {y} _{k}}وsكتيyك{\displaystyle \mathbf {s} _{k}^{\mathsf {T}}\mathbf {y} _{k}}هي كميات قياسية، باستخدام توسيع مثل

بك+1-1=بك-1+(sكتيyك+yكتيبك-1yك)(sكsكتي)(sكتيyك)2-بك-1yكsكتي+sكyكتيبك-1sكتيyك.{\displaystyle B_{k+1}^{-1}=B_{k}^{-1}+{\frac {(\mathbf {s} _{k}^{\mathsf {T}}\mathbf {y} _{k}+\mathbf {y} _{k}^{\mathsf {T}}B_{k}^{-1}\mathbf {y} _{k})(\mathbf {s} _{k}\mathbf {s} _{k}^{\mathsf {T}})}{(\mathbf {s} _{k}^{\mathsf {T}}\mathbf {y} _{k})^{2}}}-{\frac {B_{k}^{-1}\mathbf {y} _{k}\mathbf {s} _{k}^{\mathsf {T}}+\mathbf {s} _{k}\mathbf {y} _{k}^{\mathsf {T}}B_{k}^{-1}}{\mathbf {s} _{k}^{\mathsf {T}}\mathbf {y} _{k}}}.}

لذلك، ولتجنب أي عملية عكس للمصفوفة، يمكن تقريب معكوس مصفوفة هيسيان بدلاً من مصفوفة هيسيان نفسها:حك=تعريفبك-1.{\displaystyle H_{k}{\overset {\operatorname {def} }{=}}B_{k}^{-1}.}[ 10 ]

من تخمين أوليx0{\displaystyle \mathbf {x} _{0}}ومصفوفة هيسيان معكوسة تقريبيةح0{\displaystyle H_{0}}تُكرر الخطوات التالية كما يليxك{\displaystyle \mathbf {x} _{k}}يتقارب مع الحل:

  1. احصل على توجيهاتصك{\displaystyle \mathbf {p} _{k}}عن طريق حلصك=-حكو(xك){\displaystyle \mathbf {p} _{k}=-H_{k}\nabla f(\mathbf {x} _{k})}.
  2. قم بإجراء عملية تحسين أحادية البعد ( بحث خطي ) لإيجاد حجم خطوة مقبولαك{\displaystyle \alpha _{k}}في الاتجاه الذي تم تحديده في الخطوة الأولى. إذا تم إجراء بحث خطي دقيق، فـαك=argمينαو(xك+αصك){\displaystyle \alpha _{k}=\arg \min _{\alpha }f(\mathbf {x} _{k}+\alpha \mathbf {p} _{k})}في الواقع العملي، عادةً ما يكفي البحث غير الدقيق عن السطر، مع نتيجة مقبولة.αك{\displaystyle \alpha _{k}}استيفاء شروط وولف .
  3. تعيينsك=αكصك{\displaystyle \mathbf {s} _{k}=\alpha _{k}\mathbf {p} _{k}}وتحديثxك+1=xك+sك{\displaystyle \mathbf {x} _{k+1}=\mathbf {x} _{k}+\mathbf {s} _{k}}.
  4. yك=و(xك+1)-و(xك){\displaystyle \mathbf {y} _{k}={\nabla f(\mathbf {x} _{k+1})-\nabla f(\mathbf {x} _{k})}}.
  5. حك+1=حك+(sكتيyك+yكتيحكyك)(sكsكتي)(sكتيyك)2-حكyكsكتي+sكyكتيحكsكتيyك{\displaystyle H_{k+1}=H_{k}+{\frac {(\mathbf {s} _{k}^{\mathsf {T}}\mathbf {y} _{k}+\mathbf {y} _{k}^{\mathsf {T}}H_{k}\mathbf {y} _{k})(\mathbf {s} _{k}\mathbf {s} _{k}^{\mathsf {T}})}{(\mathbf {s} _{k}^{\mathsf {T}}\mathbf {y} _{k})^{2}}}-{\frac {H_{k}\mathbf {y} _{k}\mathbf {s} _{k}^{\mathsf {T}}+\mathbf {s} _{k}\mathbf {y} _{k}^{\mathsf {T}}H_{k}}{\mathbf {s} _{k}^{\mathsf {T}}\mathbf {y} _{k}}}}.

في مسائل التقدير الإحصائي (مثل طريقة الاحتمال الأقصى أو الاستدلال البايزي)، يمكن تقدير فترات المصداقية أو فترات الثقة للحل من معكوس مصفوفة هيسيان النهائية . ومع ذلك، فإن هذه الكميات تُعرَّف تقنيًا بواسطة مصفوفة هيسيان الحقيقية، وقد لا يتقارب تقريب BFGS مع مصفوفة هيسيان الحقيقية. [ 11 ]

مزيد من التطورات

تعتمد صيغة تحديث BFGS بشكل كبير على الانحناءsكتيyك{\displaystyle \mathbf {s} _{k}^{\mathsf {T}}\mathbf {y} _{k}}أن تكون الدالة موجبة تمامًا ومحدودة بعيدًا عن الصفر. يتحقق هذا الشرط عند إجراء بحث خطي باستخدام شروط وولف على هدف محدب. مع ذلك، تُنتج بعض التطبيقات العملية (مثل طرق البرمجة التربيعية المتسلسلة) انحناءات سالبة أو قريبة من الصفر بشكل روتيني. قد يحدث هذا عند تحسين هدف غير محدب أو عند استخدام أسلوب منطقة الثقة بدلًا من البحث الخطي. من الممكن أيضًا إنتاج قيم زائفة بسبب التشويش في الهدف.

في مثل هذه الحالات، يمكن استخدام أحد تحديثات BFGS المخمدة (انظر [ 12 ] ) والتي تُعدّلsك{\displaystyle \mathbf {s} _{k}}و/أوyك{\displaystyle \mathbf {y} _{k}}من أجل الحصول على تحديث أكثر قوة.

تطبيقات بارزة

من أبرز تطبيقات المصادر المفتوحة ما يلي:

تشمل التطبيقات الخاصة البارزة ما يلي:

  • يقوم برنامج التحسين غير الخطي واسع النطاق Artelys Knitro بتنفيذ خوارزميات BFGS و L-BFGS من بين أمور أخرى.
  • في مجموعة أدوات التحسين MATLAB ، تستخدم الدالة fminunc خوارزمية BFGS مع البحث الخطي التكعيبي عندما يتم ضبط حجم المشكلة على "مقياس متوسط".
  • يتضمن برنامج Mathematica برنامج BFGS.
  • يستخدم برنامج LS-DYNA أيضًا خوارزمية BFGS لحل المشكلات الضمنية.

انظر أيضاً

مراجع

  1. فليتشر، روجر (1987)، الأساليب العملية للتحسين (  الطبعة الثانية)، نيويورك: جون وايلي وأولاده ، رقم ISBN 978-0-471-91547-8
  2. دينيس، جيه إي جونيور ؛ شنابل، روبرت ب. (1983)، "طرق القاطع للتقليل غير المقيد" ، الطرق العددية للتحسين غير المقيد والمعادلات غير الخطية ، إنجلوود كليفس، نيوجيرسي: برنتيس هول، ص 194-215 ، ISBN  0-13-627216-9
  3. بيرد، ريتشارد هـ.؛ لو، بيهوانغ؛ نوسيدال، خورخي؛ تشو، سييو (1995)، "خوارزمية ذاكرة محدودة لتحسين القيود المحدودة" ، مجلة SIAM للحوسبة العلمية ، 16 (5): 1190-1208 ، CiteSeerX 10.1.1.645.5814 ، doi : 10.1137/0916069 
  4. برودن، سي جي (1970)، "تقارب فئة من خوارزميات تقليل الرتبة المزدوجة"، مجلة معهد الرياضيات وتطبيقاتها ، 6 : 76-90 ، doi : 10.1093/imamat/6.1.76
  5. فليتشر، ر. (1970)، "نهج جديد لخوارزميات المقاييس المتغيرة"، مجلة الكمبيوتر ، 13 (3): 317-322 ، doi : 10.1093/comjnl/13.3.317
  6. غولدفراب، د. (1970)، "عائلة من تحديثات المقاييس المتغيرة المشتقة بواسطة المتوسطات التباينية"، رياضيات الحساب ، 24 (109): 23-26 ، doi : 10.1090/S0025-5718-1970-0258249-6
  7. شانّو، ديفيد ف. (يوليو 1970)، "تكييف طرق شبه نيوتن لتقليل الدوال"، رياضيات الحساب ، 24 (111): 647-656 ، doi : 10.1090/S0025-5718-1970-0274029-X ، MR 0274029 
  8. غرينستادت، ج. (1970). "تنوعات على طرق القياس المتغير. (مع مناقشة)" . رياضيات الحساب . 24 (109): 1-22 . doi : 10.1090/S0025-5718-1970-0258248-4 . ISSN 0025-5718 . 
  9. فليتشر، روجر (1987)، الأساليب العملية للتحسين ( الطبعة الثانية)، نيويورك: جون وايلي وأولاده ، ISBN  978-0-471-91547-8
  10. نوسيدال، خورخي؛ رايت، ستيفن جيه. (2006)، التحسين العددي (الطبعة الثانية )، برلين، نيويورك: سبرينغر-فيرلاغ ، ISBN  978-0-387-30303-1
  11. جي، رين-بو؛ باول، إم جيه دي (1983). "تقارب مصفوفات القياس المتغيرة في التحسين غير المقيد". البرمجة الرياضية . 27 (2). 123. doi : 10.1007/BF02591941 . S2CID 8113073 . 
  12. خورخي نوسيدال؛ ستيفن ج. رايت (2006)، التحسين العددي
  13. "مكتبة جنو العلمية - وثائق GSL 2.6" . www.gnu.org . تاريخ الاسترجاع: 22 نوفمبر 2020 .
  14. "R: تحسين الأغراض العامة" . stat.ethz.ch. تم الاطلاع عليه بتاريخ 22-11-2020 .
  15. "scipy.optimize.fmin_bfgs — دليل مرجعي لـ SciPy الإصدار 1.5.4" . docs.scipy.org . تم الاطلاع عليه بتاريخ 22-11-2020 .
  16. "scipy.optimize.minimize — دليل مرجعي لـ SciPy الإصدار 1.5.4" . docs.scipy.org . تم الاطلاع عليه بتاريخ 22 يناير 2025 .
  17. "خيارات قابلة للتكوين في 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