پوشش مجموعه
مسئله پوشش مجموعه، یک مسئله بهینهسازی است که بسیاری از مسئلههای انتخاب منابع را مدلسازی میکند. مسئله تصمیمگیری متناظر آن، مسئله NP کامل پوشش مجموعه را تعمیم میدهد و در نتیجه NP سخت است. الگوریتم تقریبی که برای اداره کردن مسئله پوشش راس ارائه شد، در اینجا به کار نمیرود. و در نتیجه باید روش دیگری را به کار گیریم. روش اکتشافی حریصانهای را با نسبت تقریب لگاریتمی بررسی میکنیم؛ یعنی هر چه اندازه نمونه بزرگتر میشود، اندازه جواب تقریبی ممکن است نسبت به اندازه جواب بهینه رشد کند. چون، تابع لگاریتمی، خیلی کند رشد میکند، این الگوریتم تقریب ممکن است نتایج مفیدی ارائه ندهد.
مسئله
[ویرایش]نمونهٔ از مسئلهٔ پوشش مجموعه، شامل مجموعهٔ متناهی X و خانوادهٔ F از زیرمجموعههای X است. بهطوریکه هر عنصر X متعلق به حداقل یک زیرمجموعه در F است:(اگر را برابر با p بگیریم)
میگوییم زیرمجموعه، عناصرش را میپوشاند. مسئله، یافتن می نیمم اندازهٔ است که اعضای آن، تمام X را میپوشاند: (اگر را برابر با q بگیریم)
معادله ۱
میگوییم هر A که در معادله ۱ صدق میکند، X را میپوشاند. شکل ۱ مسئلهٔ پوشش مجموعه را شرح میدهد. اندازهA به صورت تعداد مجموعههای موجود در آن تعریف شد، نه تعداد عناصر موجود در این مجموعهها. در شکل ۱، اندازه پوشش مجموعه می نیمم، ۳ است.
مسئله پوشش مجموعه، انتزاع بسیاری از مسئلههای ترکیبی است. به عنوان مثال ساده، فرض کنید X مجموعهای از مهارتهای مورد نیاز برای حل یک مسئله است و مجموعهای از افراد برای کار کردن بر بروی این مسئله وجود دارد. میخواهیم کمیتهای تشکیل دهیم که شامل کمترین تعداد ممکن از افراد باشد، بهطوریکه برای هر مهارت مورد نیاز در X، عضوی از کمیته دارای آن مهارت باشد. در نسخهٔ تصمیمگیری مسئلهٔ پوشش مجموعه، میپرسیم که آیا پوششی با اندازه K وجود دارد یا خیر؟ k پارامتر دیگری است که در نمونه مسئله مشخص شدهاست. نسخه تصمیمگیری این مسئله، NP کامل است.
الگوریتم تقریب حریصانه
[ویرایش]روش حریصانه، در هر مرحله، مجموعهٔ S را انتخاب میکند که بزرگترین تعداد عناصر باقی ماندهای را که پوشش داده نشدند، پوشش میدهد:
در مثال شکل ۱، Greedy-Set-Cover، مجموعههای ، ، ، (را به همین ترتیب) به A اضافه میکند.
این الگوریتم به صورت زیر کار میکند. مجموعه U در هر مرحله شامل مجموعهٔ عناصر باقی ماندهٔ پوشش ندادهاست. مجموعهٔ A شامل پوشش در حال ساخت است. خط ۴، مرحله تصمیمگیری حریصانه است. یک زیرمجموعه S انتخاب شد که بیشترین عناصر ممکن پوشش داده نشده را پوشش میدهد (بهطوریکه گرهها به دلخواه شکسته شدند). پس از انتخاب S، عناصر آن از U، و S در A قرار میگیرد. وقتی الگوریتم خاتمه مییابد، مجموعه A حاوی زیرخانوادهای از F است که X را میپوشاند.
الگوریتم Greedy-Set-Cover میتواند به آسانی پیادهسازی شود تا در زمان چندجملهای بر حسب و اجرا گردد. چون تعداد تکرارهای حلقه در خطوط ۳ تا ۶ از بالا توسط می نیمم محدود میشود، و بدنهٔ حلقه میتواند طوری پیادهسازی شود که در زماناجرا گردد، پیادهسازی وجود دارد که در زمان اجرا میگردد. البته میتوان نشان داد که الگوریتم حریصانه، پوشش مجموعهای را برمیگرداند که چندان بزرگتر از پوشش مجموعه بهینه نیست.
منابع
[ویرایش]- مشارکتکنندگان ویکیپدیا. «CLRS». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۲۶ دسامبر ۲۰۲۳.
- معرفی بر الگوریتمها ترجمه: جعفرنژاد قمی
- Algorithmic construction of sets for k-restrictions author: Noga Alon
- A Threshold of ln for Approximating Set Cover author: Uriel Feige
- On the hardness of approximating minimization problems author: Carsten Lund