الگوریتم تقریبی

**الگوریتم تقریبی** در علوم رایانه و تحقیق عملیاتی، الگوریتمی برای پیداکردن راه‌حل‌های تقریبی برای مسائل بهینه‌سازی است. این الگوریتم‌ها اغلب برای حل تقریبی مسائل ان‌پی سخت  بکار می‌روند زیرا بسیاری از مسائل بهینه‌سازی ان‌پی سخت هستند (در واقع بررسی کردن درستی جواب اینگونه مسائل با حل کلی آنها معادل است) طبق نظریه پیچیدگی محاسباتی تا زمانیکه P ≠ NP، الگوریتم‌های کارامد با زمان چندجمله‌ای برای چنین مسائلی پیدا نخواهد شد مگر اینکه P = NP که چنین فرضی هم خیلی بعید است.

برخلاف الگوریتم جستجوی کاشف که راه‌حل‌هایی بهینه، اغلب بدون اثبات و بدون کران برای جواب خود هستند؛ الگوریتم‌های تقریبی راه حلهایی شبه بهینه همراه با ضریبی برای میزان تقریب جواب واقعی ارائه می‌دهند همچنین وجود جواب خود را در بازهٔ خطای اعلام شده تضمین می‌کنند. (مثلاً جواب آنها ۲ برابر جواب بهینه است) منتها جواب خود را در زمان چندجمله‌ای تولید می‌کنند.

الگوریتم‌های تقریبی برای مسائل **P** نیز استفاده می‌شوند ولی به ازای ورودی‌های بزرگ خوب عمل نمی‌کنند.

یکی از مثال‌های معروف برای الگوریتم‌های تقریبی، مسئله پوشش راسی  در گراف است: پیدا کردن یال پوشش داده نشده و اضافه کردن هر دو رأس آن به مجموعه پوشش رأسی تا زمانی که هیچ یال پوشش نیافته نماند. واضح است که مجموعه جوابهای این الگوریتم دو برابر جواب‌های بهینه یعنی مجموعه کمترین رأس‌ها برای پوشش دادن همه یال‌ها در یک گراف است؛ پس ضریب ثابت این الگوریتم ۲ است.

الگوریتم‌های تقریبی موجود برای مسائل ان پی-سخت با هم تفاوت بسیاری دارند؛ مثلاً مسئله بسته‌بندی  را می‌توان به ازای هر ضریب بزرگتر از یک تقریب زد، (اگر بتوانیم الگوریتمی تقریبی با ضریب یک برای چنین مسائلی ارائه دهیم P = NP می‌شود) به این خانواده از مسائل Polynomial time approximation scheme می‌گویند؛ درحالیکه ثابت شده‌است که برای برخی مسائل دیگر هیچ الگوریتم تقریبی‌ای یافت نمی‌شود مگر آنکه P=NP شود مانند مسئله بزرگترین خوشه  (پیدا کردن بزرگترین زیرگراف کامل)

مسائل ان پی-سخت را می‌توان با برنامه‌ریزی خطی (مسائل برنامه‌ریزی خطی‌ای که x_iهای صحیح دارند) متناظر کرد و در نتیجه آنها را در زمانهای نمایی حل کرد. (مسائل IP در مرتبه زمانی نمایی حل می‌شوند)

## تضمین کارایی الگوریتم‌های تقریبی
می‌توانیم برای برخی از الگوریتم‌های تقریبی، خصوصیاتی را اثبات کنیم مثلاً برای \rho-الگوریتمهای تقریبی ثابت شده‌است که تقریب a بیشتر (و یا کمتر) از \rho برابر جواب بهینه s نخواهد بود:

:\begin{cases}s \leq a \leq \rho s,\qquad\mbox{if } \rho> 1; \\ \rho s \leq a \leq s,\qquad\mbox{if } \rho 

ضریب \rho را *ضریب تضمین کارایی نسبی* می‌گویند.
هر الگوریتم تقریبی ای *تضمین کارایی مطلق* یا *کران خطای* \epsilon دارد اگر:

: (s - \epsilon) \leq a \leq (s + \epsilon).

به‌طور مشابه *نسبت کارایی مطلق* \Rho_A الگوریتم‌های تقریبی A:

: \Rho_A = \inf \{ r \geq 1 | R_A(I) \leq r, \forall I \}

(I یک نمونه از مسئله و R_A(I) تضمین کارایی A روی I است)

در واقع \Rho_A بزرگترین کران نسبت تقریب r روی همه نمونه‌های مسئله است.
همچنین *نسبت کارایی مجانبی* R_A^\infty:

: R_A^\infty = \inf \{ r \geq 1 | \exists n \in \mathbb{Z}^+, R_A(I) \leq r, \forall I, I \geq n\} 

## جستارهای وابسته
* الگوریتم حریصانه
* الگوریتم جستجوی محلی (بهینه‌سازی)
* برنامه‌ریزی پویا
* بهینه‌سازی محدب
* برنامه‌ریزی خطی
* بهینه‌سازی نیمه‌معین

## منابع

* Vazirani, Vijay V. (۲۰۰۳). *Approximation Algorithms*. Berlin: Springer 2001. .
* توماس اچ کورمن،  Charles E. Leiserson, Ronald L. Rivest, و کلیفورد استین. *[[مقدمه‌ای بر الگوریتم‌ها]]*, Second Edition. MIT Press and McGraw-Hill, 2001. .
Chapter 35: Approximation Algorithms, pp.۱۰۲۲–۱۰۵۶

رده:الگوریتم‌های تقریبی
رده:الگوریتم‌های مرتبه چندجمله‌ای
رده:نظریه پیچیدگی
رده:نظریه پیچیدگی محاسباتی