**בעיית כיסוי קבוצות** (באנגלית: **Set Cover Problem**) היא בעיה קלאסית בקומבינטוריקה, מדעי המחשב, אופטימיזציה וסיבוכיות. הבעיה נכללת ברשימת 21 הבעיות ה-NP שלמות של קארפ.

בעיית כיסוי הקבוצות היא בעיה חשובה בתחום אלגוריתמי קירוב. היא בעיה ש"לימודה הוביל לפיתוח טכניקות יסודיות לתחום הכולל" של אלגוריתמים מקורבים.

הבעיה היא: נתונה קבוצה סופית S של קבוצות סופיות, שאיחודן הוא הקבוצה U. יש למצוא תת-קבוצה של S בגודל מינימלי, שאיחוד הקבוצות בה הוא U. כלומר יש למצוא את הכיסוי הקטן ביותר לקבוצה U שהוא תת-כיסוי של S.

שאלה זו היא NP-קשה; וגרסת בעיית ההכרעה שלה היא NP-שלמה.

הבעיה הזו היא דוגמה אופיינית וחשובה של בעיית אופטימיזציה בדידה. תכונה חשובה של בעיה בסיסית זו היא שניתן למצוא באופן יעיל קירוב סביר לאופטימום שלה - ניתן למצוא באופן יעיל פתרון לבעיה הקרוב לפתרון האופטימלי, בסיבוכיות שתהיה בסדר גודל של הלוגריתם של גודל הקבוצה שאותה יש לכסות.

ניסוח פורמלי
------------

בהינתן קבוצה {\displaystyle {\mathcal {U}}} וקבוצה {\displaystyle {\mathcal {S}}} של תתי קבוצות של {\displaystyle {\mathcal {U}}}, כיסוי הוא תת-קבוצה {\displaystyle {\mathcal {C}}\subseteq {\mathcal {S}}} כך שאיחוד האיברים של {\mathcal C} הוא {\displaystyle {\mathcal {U}}}.

הבעיה היא למצוא את הכיסוי המינימלי של {\displaystyle {\mathcal {U}}} (כלומר הכיסוי שמשתמש בכמה שפחות איברים מ-{\mathcal C}).

בגרסת בעיית ההכרעה של בעיית כיסוי הקבוצות נתון הזוג {\displaystyle ({\mathcal {U}},{\mathcal {S}})} ומספר טבעי k, והשאלה היא האם יש תת-קבוצה של {\displaystyle {\mathcal {S}}} מגודל k לכל היותר שמהווה כיסוי של {\displaystyle {\mathcal {U}}}.

דוגמה
-----

בהנחה ונתונה לנו קבוצה {\displaystyle {\mathcal {U}}=\{1,2,3,4,5\}} ומשפחה של קבוצות {\displaystyle {\mathcal {S}}=\{\{1,2,3\},\{2,4\},\{3,4\},\{4,5\}\}}. איחוד של כל הקבוצות ב-{\displaystyle {\mathcal {S}}} מכיל את כל האלמנטים ב-{\displaystyle {\mathcal {U}}}. לעומת זאת כיסוי הקבוצות הקטן ביותר עבור מקרה זה יהיה: {\displaystyle SETCOVER=\{\{1,2,3\},\{4,5\}\}}.

הצגה כבעיית תכנון ליניארי בשלמים
--------------------------------

ניתן להציג את בעיית כיסוי קבוצות כבעיית תכנון ליניארי בשלמים כך:

|  |  |
| --- | --- |
| מזער את {\displaystyle \sum \_{S\in {\mathcal {S}}}x\_{S}} | (מזער את מספר הקבוצות) |
| כאשר {\displaystyle \sum \_{S\colon e\in S}x\_{S}\geqslant 1} לכל {\displaystyle e\in {\mathcal {U}}} | (כל איבר ב-{\displaystyle {\mathcal {U}}} מכוסה על ידי קבוצה אחת לפחות) |
| {\displaystyle x\_{S}\in \{0,1\}} לכל {\displaystyle S\in {\mathcal {S}}} | ({\displaystyle x\_{S}=1} אם S איבר בכיסוי ו-{\displaystyle x\_{S}=0} אם לא) |

אלגוריתם חמדני
--------------

הדרך הפשוטה ביותר לבצע את זה היא על ידי אלגוריתם קירוב חמדני. באלגוריתם זה בונים תת-קבוצה של {\displaystyle {\mathcal {S}}} כדלקמן: מתחילים מקבוצה ריקה ומצרפים לה מדי צעד איבר מ-{\displaystyle {\mathcal {S}}} (שהוא למעשה תת-קבוצה של {\displaystyle {\mathcal {U}}}) המגדיל ככל האפשר (בשלב הנוכחי) את מספר האיברים באיחוד האיברים שכבר נבחרו (מוסיפים את האיבר שיכסה כמה שיותר איברים מ-{\displaystyle {\mathcal {U}}} שעדיין לא כוסו). האלגוריתם משיג יחס קירוב של {\displaystyle H(n)} (כלומר הוא מוצא פתרון שקטן מ-{\displaystyle H(n)} פעמים גודל הכיסוי האופטימלי). כאשר {\displaystyle H(n)=\sum \_{k=1}^{n}{\frac {1}{k}}\leq \ln {n}+1} הוא המספר ההרמוני ה-n-י. ו-n הוא גודל הקבוצה שאותה צריך לכסות, כלומר {\displaystyle |{\mathcal {U}}|=n}. למעשה ניתן להוכיח שהאלגוריתם משיג יחס קירוב של {\displaystyle ln(n')-ln(ln(n'))+\Theta (1)} כאשר {\displaystyle n'} הוא גודל האיבר הגדול ביותר ב-{\displaystyle {\mathcal {S}}} (כיוון שכל איבר ב-{\displaystyle {\mathcal {S}}} הוא למעשה תת-קבוצה של {\displaystyle {\mathcal {U}}}).

לחלופין, ניתן למצוא קירוב טוב לפתרון בהסתמך על תכנון ליניארי בשילוב עם תהליך של עיגול מקרי.

קישורים חיצוניים
----------------

ויקישיתוף מדיה וקבצים בנושא **בעיית כיסוי קבוצות** בוויקישיתוף

הערות שוליים
------------

1. ↑  Vijay V. Vazirani, Approximation Algorithms, 2001 doi: 10.1007/978-3-662-04565-7
2. ↑  Korte & Vygen 2012, p. 414.
3. ↑  **אלגוריתמים**, 2013, עמ' 21-22
4. ↑  Chvatal V. A Greedy Heuristic for the Set-Covering Problem, **Mathematics of Operations Research**, Vol. 4 No. 3, 1979, עמ' 233-235
5. ↑  Petr Slavík, A tight analysis of the greedy algorithm for set cover, **STOC '96**, 1996, עמ' 435–441 doi: 237814.237991