از ویکیپدیا، دانشنامهٔ آزاد
روش BFGS روشی در محاسبات عددی بهینهسازی (ریاضیات) است. برای برنامهسازی غیرخطی بدون قید. این روش تقریبی برای روش بهینه سازی نیوتون است.
ایده ی عملکرد
جهت جستجو p k در لحظه ی k ام توسط پاسخ معادله ی نیوتون داده می شود.
B
k
p
k
=
−
∇
f
(
x
k
)
{\displaystyle B_{k}\mathbf {p} _{k}=-\nabla f(\mathbf {x} _{k})}
که در آن
B
k
{\displaystyle B_{k}}
تقریبی به ماتریس هشین است که در هر مرحله بروز رسانی میشود و
∇
f
(
x
k
)
{\displaystyle \nabla f(\mathbf {x} _{k})}
گرادیان تابع به ازای هر x k است.
الگوریتم
با شروع از مقدار اولیه
x
0
{\displaystyle \mathbf {x} _{0}}
و مقدار تقریبی اولیه
B
0
{\displaystyle B_{0}}
مراحل زیر تکرار می شوند تا اینکه به تقریب مورد نظر
x
{\displaystyle x}
برسیم.
انتخاب جهت
p
k
{\displaystyle \mathbf {p} _{k}}
با حل :
B
k
p
k
=
−
∇
f
(
x
k
)
.
{\displaystyle B_{k}\mathbf {p} _{k}=-\nabla f(\mathbf {x} _{k}).}
.
انجام جستجوی خطی برای یافتن بهترین سایز قدم
α
k
{\displaystyle \alpha _{k}}
برای بروزرسانی
x
k
+
1
=
x
k
+
α
k
p
k
.
{\displaystyle \mathbf {x} _{k+1}=\mathbf {x} _{k}+\alpha _{k}\mathbf {p} _{k}.}
.
مقدار دهی
s
k
=
α
k
p
k
.
{\displaystyle \mathbf {s} _{k}=\alpha _{k}\mathbf {p} _{k}.}
.
y
k
=
∇
f
(
x
k
+
1
)
−
∇
f
(
x
k
)
.
{\displaystyle \mathbf {y} _{k}={\nabla f(\mathbf {x} _{k+1})-\nabla f(\mathbf {x} _{k})}.}
B
k
+
1
=
B
k
+
y
k
y
k
T
y
k
T
s
k
−
B
k
s
k
s
k
T
B
k
s
k
T
B
k
s
k
.
{\displaystyle B_{k+1}=B_{k}+{\frac {\mathbf {y} _{k}\mathbf {y} _{k}^{\mathrm {T} }}{\mathbf {y} _{k}^{\mathrm {T} }\mathbf {s} _{k}}}-{\frac {B_{k}\mathbf {s} _{k}\mathbf {s} _{k}^{\mathrm {T} }B_{k}}{\mathbf {s} _{k}^{\mathrm {T} }B_{k}\mathbf {s} _{k}}}.}
جستارهای وابسته
یادداشت ها
منابع
Avriel, Mordecai (2003), Nonlinear Programming: Analysis and Methods , Dover Publishing, ISBN 0-486-43227-0
پیوند به بیرون
Optimization computes maxima and minima.