**الگوریتم لونبرگ-مارکوارت** روشی است برای یافتن کمینه یک تابع غیر خطی چند متغیره که به عنوان یک روش استاندارد برای حل مسئله کمینه مربعات برای توابع غیرخطی درآمده است.

الگوریتم لونبرگ-مارکوارت (LMA) بین الگوریتم گاوس-نیوتون (GNA) و روش گرادیان کاهشی درونیابی می‌کند. LMA از GNA مقاوم‌تر است، که یعنی در بسیاری مواقع، حتی اگر بسیار دورتر از کمینه نهایی شروع کرده باشد، جوابی را پیدا می‌کند. از دیگر سو، برای تابع‌های خوشرفتار و پارامترهای آغازین معقول، LMA کمی کندتر از GNA است. LMA پرطرفدارترین الگوریتم برازش خم است و کاربران کمی ممکن است به روش‌های دیگر برازش خم نیاز پیدا کنند.

مسئله
-----

m تابع {\displaystyle f\_{1},\cdots ,f\_{m}}از n پارامتر {\displaystyle p\_{1},\cdots ,p\_{n}} که {\displaystyle m\geq n} داده شده‌اند. برای آسانی از نمادگذاری برداری برای هر دوی تابع‌ها و پارامترها استفاده می‌کنیم.

{\displaystyle \mathbf {f^{T}} =(f\_{1},\cdots ,f\_{m})} و {\displaystyle \mathbf {p^{T}} =(p\_{1},\cdots ,p\_{n})}
مسئله کمترین مربعات شامل جستن بردار پارامترهای {\mathbf {p}} است که برای آن تابع هزینه

{\displaystyle S(\mathbf {p} )=\mathbf {f^{T}f} =\sum \_{i=1}^{m}{[f\_{i}(\mathbf {p} )]}^{2}}
کمینه می‌شود.

کاربرد اصلی در مسئله برازش خم کمترین مربعات است: مجموعه‌ای از جفت‌های تجربی داده به فرم {\displaystyle (t\_{i},y\_{i})} در دست است، می‌خواهیم {\mathbf {p}} پارامترهای خم مدل {\displaystyle c(t|\mathbf {p} )} را به گونه‌ای بهینه کنیم که مجموع مربعات انحراف‌ها

{\displaystyle f\_{i}(\mathbf {p} )=y\_{i}-c(t\_{i}|\mathbf {p} )}
کمینه گردد.

(صحبتی دربارهٔ نمادگذاری: ما از حرف x به خاطر اینکه برخی اوقات به جای p و برخی اوقات به جای t استفاده می‌شود خودداری می‌کنیم)

راه حل
------

مانند سایر الگوریتم‌های کمینه‌سازی عددی، الگوریتم لونبرگ-مارکارد یک رویه تکراری است. برای شروع کمینه‌سازی، کاربر باید یک حدس آغازین برای بردار {\mathbf {p}} پارامترها ارائه کند. در بسیاری مواقع یک حدس ناآگاهانه استاندارد مانند {\displaystyle \mathbf {p^{T}} =(1,1,\cdots ,1)} به خوبی کار می‌کند. در جاهای دیگر، الگوریتم تنها وقتی کار می‌کند که حدس آغازین تا حدی به جواب نهایی نزدیک باشد.

در هر گام تکرار، بردار {\mathbf {p}} پارامترها با یک تخمین جدید {\displaystyle \mathbf {p+q} } جایگزین می‌شود. برای دستیابی به {\displaystyle \mathbf {q} } توابع {\displaystyle f\_{i}(\mathbf {p+q} )} با خطی‌سازیشان

{\displaystyle \mathbf {f(p+q)\approx f(p)+Jq} }
تخمین زده می‌شوند که {\displaystyle \mathbf {J} } ژاکوبین {\displaystyle \mathbf {f} } در {\mathbf {p}} است.

در یک کمینه مجموع مربعات S، داریم {\displaystyle \nabla \_{q}S=0}. با خطی‌سازی بالا، از این به معادله زیر می‌رسیم

{\displaystyle (\mathbf {J^{T}J} )\mathbf {q} =-\mathbf {J^{T}f} }
که {\displaystyle \mathbf {q} } را می‌توان از آن با وارون کردن {\displaystyle \mathbf {J^{T}J} } بدست آورد. کلید LMA جایگزینی این معادله با «نسخه میراشده» آن است

{\displaystyle (\mathbf {J^{T}J} +\lambda )\mathbf {q} =-\mathbf {J^{T}f} }
ضریب میرایی نامنفی \lambda در هر تکرار تنظیم می‌شود. اگر کاهش S تند بود مقدار کوچک‌تری به آن می‌دهیم که الگوریتم را به GNA نزدیکتر می‌کند، اما اگر یک تکرار کاهش ناکافی نشان داد \lambda را افزایش داده و یک گام را نزدیکتر به جهت نزول گرادیانی برمی‌داریم. ضریب میرایی مشابهی در ساماندهی تیخونوف دیده می‌شود که در حل مسائل خطی کژنمود سودمند است.

اگر یک طول قدم بازیابی شده یا کاهش مجموع مربعات برای آخرین مجموعه پارامترهای {\mathbf {p}}از مقادیر از پیش تعیین شده کمتر باشند تکرار پایان می‌یابد و آخرین بردار پارامتر {\mathbf {p}} به عنوان جواب در نظر گرفته می‌شود.

منابع
-----

1. ↑  H.D. Mittelmann. The Least Squares Problem. [web page]  بایگانی‌شده در ۱۵ دسامبر ۲۰۰۵ توسط Wayback Machine, Jul. 2004. [Accessed on 4 Aug. 2004.]

جستارهای وابسته
---------------

* برنامه‌ریزی غیرخطی

| * ن
* ب
* و
بهینه‌سازی: تئوری، روش‌ها، و ابتکارها |
| --- |
| 

| برنامه‌سازی نامقید غیرخطی: روش‌ها با استفاده از |
| --- |
| 

|  |  |
| --- | --- |
| … تابع‌ها | 
* Golden section search
* Interpolation methods
* Line search
* روش نلدر - مید
* Successive parabolic interpolation

 |
| … و گرادیان‌ها | 

|  |  |
| --- | --- |
| Convergence | 
* Trust region
* Wolfe conditions

 |
| Quasi–Newton | 
* روش بی‌اف‌جی‌اس and L-BFGS
* DFP
* Symmetric rank-one (SR1)

 |
| Other methods | 
* Gauss–Newton
* Gradient
* الگوریتم لونبرگ-مارکارد
* Conjugate gradient

 |

 |
| … و هشین‌ها | 
* Newton's method

 |

 |

 | The graph of a strictly concave quadratic function is shown in blue, with its unique maximum shown as a red dot. Below the graph appears the contours of the function: The level sets are nested ellipses.Optimization computes maxima and minima. |
| 

| برنامه‌سازی مقید غیرخطی |
| --- |
| 

|  |  |
| --- | --- |
| کلی | 
* Barrier methods
* روش پنالتی

 |
| مشتق‌پذیر | 
* Augmented Lagrangian methods
* Sequential quadratic programming
* Successive linear programming

 |

 |

 |
| 

| بهینه‌سازی محدب |
| --- |
| 

|  |  |
| --- | --- |
| بهینه‌سازی محدب | 
* Cutting-plane method
* Reduced gradient (Frank–Wolfe)
* Subgradient method

 |
| برنامه‌ریزی خطی ودرجه دو | 

|  |  |
| --- | --- |
| برنامه‌ریزی خطی | 
* Ellipsoid algorithm of Khachiyan
* الگوریتم کارمارکار

 |
| Basis-الگوریتم حریصانه | 
* الگوریتم غیر مرکب
* Revised simplex algorithm
* Criss-cross algorithm
* Principal pivoting algorithm of Lemke

 |

 |

 |

 |
| 

| بهینه‌سازی ترکیبیاتی |
| --- |
| 

|  |  |
| --- | --- |
| الگو‌ها | 
* الگوریتم تقریبی
* برنامه‌ریزی پویا
* الگوریتم حریصانه
* بهینه‌سازی خطی عدد صحیح
	+ شاخه و حد یا شاخه و برش

 |
| الگوریتم‌هایگراف | 

|  |  |
| --- | --- |
| درخت پوشای کمینه | 
* الگوریتم بلمن–فورد
* الگوریتم بروکا
* الگوریتم دیکسترا
* الگوریتم فلوید-وارشال
* الگوریتم جانسون
* الگوریتم کراسکال

 |

 |
| شبکه شاره | 
* الگوریتم دینیک
* الگوریتم ادموندز کارپ
* الگوریتم فورد–فالکرسون
* الگوریتم ارسال-برچسب

 |

 |

 |
| 

| الگوریتم‌های فراابتکاری |
| --- |
| 
* الگوریتم تکاملی
* الگوریتم تپه‌نوردی
* الگوریتم جستجوی محلی (بهینه‌سازی)
* الگوریتم تبرید شبیه‌سازی شده
* الگوریتم جستجوی ممنوعه

 |

 |
| 
* **رده‌ها**
	+ روش‌ها
	+ ابتکارها
* **نرم‌افزارها**

 |