Professional Documents
Culture Documents
CA4 Report 40103904
CA4 Report 40103904
شرط توقف الگوریتم این است که نرم گرادیان تابع در نقطه محاسبه شده از یک مقدار مشخص کوچکتر
باشد که این حد آستانه مشابه تمرین دوم و سوم برابر با 3-10در نظر گرفته میشود:
¿ stop condition : :∨|g ( xi )|∨¿2 < ε=10
−3
الگوریتم BFGSمطابق با pseudocodeموجود در جزوه جلسه 24نوشته شده است و مراحل الگوریتم
در کد مشابه همین شبه کد شماره گذاری شدهاند.
در مقداردهی اولیه ،ماتریس هسین در نقطه شروع الگوریتم محاسبه شده و از معکوس این ماتریس به
عنوان اولین تخمین معکوس ماتریس هسین برای ادامه دادن الگوریتم استفاده میشود .در گام نخست
الگوریتم جهت حرکت به صورت حاصل ضرب منفی معکوس تخمین ماتریس هسین در بردار گرادیان
محاسبه میشود .در گام دوم طول قدم مناسب به کمک line searchمحاسبه میشود که الگورتیم line
searchمشابه تمرین قبلی است .در گام سوم حرکت انجام میشود .توجه شود که در این گام مقدار نقطه
قبلی در متغیر x_preذخیره میشود و نقطه جدید که از انجام حرکت حاصل میشود در متغیر xقرار
میگیرد .در گام چهارم گرادیان تابع در نقطه جدید محاسبه میشود .مقدار گرادیان در نقطه قبلی در متغیر
grad_preو مقدار گرادیان در نقطه جدید در متغیر gradذخیره میشوند .در گام پنجم مقدار گاما با
استفاده از مقادیر گرادیان فعلی و قبلی محاسبه میشود و همچنین با استفاده از مقادیر نقطه فعلی و قبلی،
مقدار دلتا محاسبه میشود .در گام ششم مقدار معکوس ماتریس ماتریس هسین تخمین زده میشود.
نتایج الگوریتم BFGSبرای دو تابع داده شده مطابق با جدول زیر است:
f1 f2
*
x 0.0000
1.0000 0.0000
1.0000 0.0043
1
0.0043
* -11
10 × 9.0949 10-9 × 9.3113
f(x )
Function evaluations 50 63
Gradient evaluations 41 58
Hessian evaluations 11 18
Number of iterations 8 15
2 باید توجه شود که در تمرین. را در کنار هم مشاهده و مقایسه کرد4 و3 و2 حال میتوان نتایج تمارین
لحاظ نشده است و تنها تعداد محاسباتGSS تعداد محاسبههای تابع و گرادیان و هسین مربوط به بخش
. شمرده شدهاندSD مربوط به خود الگوریتمهای نیوتن و
:برای تابع اول نتایج الگوریتمها مطابق جدول زیر است
SD, GSS Newton, GSS SD, Newton, BFGS,
line search line search Line search
2
0.1103 0.6829×10-3 0.1119 10-3 × 0.7589 0.0043
0.1192 0.6829×10-3 0.1212 10-3 × 0.7589 0.0043
)*f2(x 0.0055 7.8982×10-12 0.0058 10-11 × 9.1114 10-9 × 9.3113
Function 181 12 3980 53 63
evaluations
Gradient 181 12 1081 43 58
evaluations
Hessian 0 12 0 11 18
evaluations
Number of 180 11 196 9 15
iterations
توجه شود که در line searchبرای الگوریتم SDاز مقدار c2 = 0.1و برای الگوریتمهای Newtonو
BFGSاز مقدار c2 = 0.9استفاده شده است .مقدار c1برای هر دو الگوریتم 4-10در نظر گرفته شده و
مقدار آلفا ماکزیمم برابر 5قرار داده شده است.
3