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

از testwiki
پرش به ناوبری پرش به جستجو

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

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

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

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

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

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

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

می‌توانیم برای برخی از الگوریتم‌های تقریبی، خصوصیاتی را اثبات کنیم مثلاً برای ρالگوریتمهای تقریبی ثابت شده‌است که تقریب a بیشتر (و یا کمتر) از ρ برابر جواب بهینه s نخواهد بود: الگو:چپ‌چین

{saρs,if ρ>1;ρsas,if ρ<1.

الگو:پایان چپ‌چین ضریب ρ را ضریب تضمین کارایی نسبی می‌گویند. هر الگوریتم تقریبی ای تضمین کارایی مطلق یا کران خطای ϵ دارد اگر: الگو:چپ‌چین

(sϵ)a(s+ϵ).

الگو:پایان چپ‌چین به‌طور مشابه نسبت کارایی مطلق PA الگوریتم‌های تقریبی A: الگو:چپ‌چین

PA=inf{r1|RA(I)r,I}

الگو:پایان چپ‌چین (I یک نمونه از مسئله و RA(I) تضمین کارایی A روی I است)

در واقع PA بزرگترین کران نسبت تقریب r روی همه نمونه‌های مسئله است. همچنین نسبت کارایی مجانبی RA: الگو:چپ‌چین

RA=inf{r1|n+,RA(I)r,I,In}

الگو:پایان چپ‌چین

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

منابع

الگو:پانویس الگو:یادکرد-ویکی

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

الگو:الگوریتم‌های بهینه‌سازی