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

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

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

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

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

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

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

مسائل ان پی-سخت را می‌توان با دستورکارهای خطی (integer programs) (مسائل برنامه ریزی خطی ای که 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\}

[ویرایش] مراجع

Chapter 35: Approximation Algorithms, pp.1022–1056