الگوریتم کارمارکار
الگوریتم کارمارکار توسط نراندرا کارمارکار در سال ۱۹۸۴ برای حل مسایلبرنامهریزی خطی ارائه شد. این الگوریتم اولین الگوریتم کارا برای حل این مسایل در زمان چندجملهای بود. روش بیضی نیز زمان اجرای چندجملهای دارد،الگو:سخولی روش کارایی نیست.
اگر تعداد متغیرها و تعداد بیتهای ورودی به الگوریتم باشد، الگوریتم کارمارکار به عمل روی اعداد رقمی احتیاج دارد، درحالی که در روش بیضی به عمل نیاز است.الگو:سخزمان اجرای الگوریتم کارمارکار به شکل زیر است: الگو:چپچین الگو:پایان چپچین که در آن از ضرب به روش تبدیل سریع فوریه استفاده میکند.
الگوریتم کارمارکار از جمله روشهای نقطهٔ داخلی است: حدس فعلی شرایط مجموعهٔ ممکن را برخلاف روش سیمپلکس رعایت نمیکند و با استفاده از کسر معین در هر تکرار، دقت جواب بهینه را بهبود میدهد.[۱]
الگوریتم
یک مسئلهٔ برنامهریزی خطی را در شکل ماتریسی در نظر بگیرید: الگو:چپچین
| maximize cTx | |
| subject to | Ax ≤ b. |
الگو:پایان چپچین که در آن c برداری n بعدی و b برداری m بعدی و ماتریس m × n)، A) بعدی است.الگو:سخ الگوریتم کارماکار کمی پیچیده است. یک مدل سادهتر که به آن روش affine-scaling گفته میشود، که به طور مختصر به شرح زیر است. دقت داشته باشید که این الگوریتم در حالی که در عمل کارا است ولی الگوریتم با زمان چندجملهای نیست.[۲] الگو:چپچین
Algorithm Affine-Scalling Input: A, b, c, , stopping criterion, .
do while stopping criterion not satisfied
if then
return unbounded
end if
end do