רדוקציה מ־Subset Sum ל־Partition
איזון תת־קבוצה מול המשלימה בלי להניח שהיעד הוא מחצית הסכום.
מקורות מטלות
מופעים קשורים בבחינות ובמטלות
הקישורים מציינים התאמה רעיונית או גרסה קרובה; רק קבוצות שמסומנות כחזרה מדויקת במפת השאלות נחשבות לכפילויות.
שאלה
עבור שלמים חיוביים ויעד , בצעו רדוקציה מ-SUBSET-SUM ל-PARTITION. טפלו במקרה , והגדירו PARTITION כחלוקת הרב־קבוצה לשני חלקים שווי־סכום. הוכיחו נכונות וגודל קידוד פולינומי.
דרישות קדם
נדרשת שליטה בהגדרות היחידה ובניתוח אורכי קידוד. יש להבחין בין טענה מותנית, רדוקציה ואלגוריתם.
רמז 1
נסמן ונוסיף מספרים היוצרים היסט מתאים.
רמז 2
הזוג נותן סכום כולל .
רמז 3
שני המספרים החדשים אינם יכולים להיות באותו צד.
סכום תת־קבוצה → חלוקה
פתרון מלא
נסמן . אם , נחזיר מופע לא קבוע, למשל . אחרת, עבור , נחזיר
סכום כל המספרים הוא , ולכן בכל חלוקה שווה סכום כל צד .
אם תת־קבוצה מקורית סכומה , נשים אותה יחד עם ונקבל . שאר המספרים המקוריים יחד עם נותנים .
להפך, שני המספרים החדשים אינם יכולים להיות באותו צד, כי סכומם . לכן הם מופרדים. בצד המכיל , סכום המספרים המקוריים חייב להיות בדיוק , וזו תת־קבוצה פותרת.
את מחשבים בחיבורים בינאריים פולינומיים. המספרים החדשים לכל היותר , ו- פולינומי באורך הקלט, ולכן גם אורך הפלט פולינומי. יש לשמר ריבוי של ערכים שווים. במקרה התשובה המקורית כן בגלל הקבוצה הריקה, ולכן אפשר להחזיר מופע כן קבוע ולהימנע מהכנסת אפס כאשר ההגדרה דורשת חיוביות.
נקודות בדיקה
בדקו שהוכחתם את שני הכיוונים, שכל ענף או מכונה עוצרים, ושגודל הפלט וזמן הבנייה פולינומיים באורך הקלט.
טעויות נפוצות
- הוספת בלי טיפול בסימן.
- אי־הוכחת הפרדת המספרים החדשים.
- מדידת גודל לפי ערך ולא מספר ביטים.
מקורות ואימות
- 2026 transcript 15
- Garey-Johnson, SP12
- הערת כיסוי הקורפוס: אין כיסוי ישיר בסיכום הממוזג.
- מיפוי קטלוג:
data/exercises.json; הניסוח והפתרון עצמאיים; הגשות אישיות אינן מקור סמכות.
הערת מקור וביטחון
התרגיל הוא סינתזה מקורית. רמת הביטחון משקפת אימות של הטענה המתמטית מול מקורות ספרי הלימוד המפורטים לעיל; מקורות הקורס משמשים רק כאשר זוהה כיסוי ישיר.