الگوریتم تقریبی
الگوریتم تقریبی در علوم رایانه و تحقیق عملیاتی، الگوریتمی برای پیداکردن راهحلهای تقریبی برای مسائل بهینهسازی است. این الگوریتمها اغلب برای حل تقریبی مسائل انپی سخت (به انگلیسی: NP-hard) بکار میروند زیرا بسیاری از مسائل بهینهسازی انپی سخت هستند (در واقع بررسی کردن درستی جواب اینگونه مسائل با حل کلی آنها معادل است) طبق نظریه پیچیدگی محاسباتی تا زمانیکه P ≠ NP، الگوریتمهای کارامد با زمان چندجملهای برای چنین مسائلی پیدا نخواهد شد مگر اینکه P = NP که چنین فرضی هم خیلی بعید است.
برخلاف الگوریتم جستجوی کاشف که راهحلهایی بهینه، اغلب بدون اثبات و بدون کران برای جواب خود هستند؛ الگوریتمهای تقریبی راه حلهایی شبه بهینه همراه با ضریبی برای میزان تقریب جواب واقعی ارائه میدهند همچنین وجود جواب خود را در بازهٔ خطای اعلام شده تضمین میکنند. (مثلاً جواب آنها ۲ برابر جواب بهینه است) منتها جواب خود را در زمان چندجملهای تولید میکنند.
الگوریتمهای تقریبی برای مسائل P نیز استفاده میشوند ولی به ازای ورودیهای بزرگ خوب عمل نمیکنند.
یکی از مثالهای معروف برای الگوریتمهای تقریبی، مسئله پوشش راسی (به انگلیسی: vertex cover) در گراف است: پیدا کردن یال پوشش داده نشده و اضافه کردن هر دو رأس آن به مجموعه پوشش رأسی تا زمانی که هیچ یال پوشش نیافته نماند. واضح است که مجموعه جوابهای این الگوریتم دو برابر جوابهای بهینه یعنی مجموعه کمترین رأسها برای پوشش دادن همه یالها در یک گراف است؛ پس ضریب ثابت این الگوریتم ۲ است.
الگوریتمهای تقریبی موجود برای مسائل ان پی-سخت با هم تفاوت بسیاری دارند؛ مثلاً مسئله بستهبندی (به انگلیسی: bin packing problem) را میتوان به ازای هر ضریب بزرگتر از یک تقریب زد، (اگر بتوانیم الگوریتمی تقریبی با ضریب یک برای چنین مسائلی ارائه دهیم P = NP میشود) به این خانواده از مسائل Polynomial time approximation scheme میگویند؛ درحالیکه ثابت شدهاست که برای برخی مسائل دیگر هیچ الگوریتم تقریبیای یافت نمیشود مگر آنکه P=NP شود مانند مسئله بزرگترین خوشه (به انگلیسی: maximum clique problem) (پیدا کردن بزرگترین زیرگراف کامل)
مسائل ان پی-سخت را میتوان با برنامهریزی خطی (مسائل برنامهریزی خطیای که
تضمین کارایی الگوریتمهای تقریبی
میتوانیم برای برخی از الگوریتمهای تقریبی، خصوصیاتی را اثبات کنیم مثلاً برای
ضریب
بهطور مشابه نسبت کارایی مطلق
(
در واقع
جستارهای وابسته
منابع
مشارکتکنندگان ویکیپدیا. «Approximation algorithm». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۲۹ ژوئن ۲۰۱۳.
- Vazirani, Vijay V. (۲۰۰۳). Approximation Algorithms. Berlin: Springer 2001. ISBN 3-540-65367-8.
- توماس اچ کورمن، Charles E. Leiserson, Ronald L. Rivest, و کلیفورد استین. مقدمهای بر الگوریتمها, Second Edition. MIT Press and McGraw-Hill, 2001. ISBN 0-262-03293-7.
Chapter 35: Approximation Algorithms, pp.۱۰۲۲–۱۰۵۶