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

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

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

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

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

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

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

مسائل ان پی-سخت را می‌توان با برنامه‌ریزی خطی (مسائل برنامه‌ریزی خطی‌ای که 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 <1. \end{cases}

ضریب \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\}

جستارهای وابسته[ویرایش]

منابع[ویرایش]

مشارکت‌کنندگان ویکی‌پدیا، «Approximation algorithm»، ویکی‌پدیای انگلیسی، دانشنامهٔ آزاد (بازیابی در ۲۹ ژوئن ۲۰۱۳).

Chapter 35: Approximation Algorithms, pp.۱۰۲۲–۱۰۵۶