תרגיל

אימות ופתרון מופע Subset Sum

שימוש נכון באורך קלט בינרי והוכחת נוסחת תכנות דינמי.

מקורות מטלות

הכנה איכותית למבחן ופתרונות קהילתיים — נוי 2025פתרון קהילתיפתרון מטלה 4 - סיבוכיות.pdfAssignment 4הכנה איכותית ופתרון קהילתי — אינו מקור רשמי

שאלה

למספרים חיוביים a1,…,am,Ta_1,\ldots,a_m,T, נגדיר D(i,t)D(i,t) כאמת אם תת־קבוצה של ii המספרים הראשונים מסתכמת ל-tt. גזרו נוסחה, פתרו את {3,5,6,11},T=14\{3,5,6,11\},T=14, והסבירו מדוע האלגוריתם פסאודו־פולינומיאלי.

רמז 1

פתרון אינו כולל את aia_i, או כולל אותו ונעזר בסכום קודם t−ait-a_i.

רמז 2

בטבלה עמודה לכל מספר עד TT, בעוד שלקידוד בינרי של TT נדרשים רק Θ(log⁡T)\Theta(\log T) ביטים.

פתרון מלא

מאתחלים D(0,0)=trueD(0,0)=\text{true} ו-D(0,t)=falseD(0,t)=\text{false} עבור t>0t>0. לכל i≥1i\ge1,

D(i,t)=D(i−1,t)∨(t≥ai∧D(i−1,t−ai)).D(i,t)=D(i-1,t)\lor\bigl(t\ge a_i\land D(i-1,t-a_i)\bigr).

שני המקרים מחלקים בדיוק את תתי־הקבוצות לפי השאלה אם הן כוללות את aia_i, ולכן הנכונות נובעת באינדוקציה.

במופע הנתון 3+5+6=143+5+6=14, ולכן D(4,14)D(4,14) אמת, ושחזור נותן את {3,5,6}\{3,5,6\}.

בטבלה (m+1)(T+1)(m+1)(T+1) תאים וזמן המילוי O(mT)O(mT). זה פולינומיאלי בערך המספרי TT, אך TT עלול להיות מעריכי באורך הקידוד הבינרי שלו. לכן אין בכך הוכחה ש-SUBSET-SUM הבינרית ב-P. השייכות ל-NP נובעת בנפרד מתעודת ביטים וחיבור בינרי פולינומיאלי.

נקודת בדיקה

״פסאודו־פולינומיאלי״ מתאר תלות בערכים המקודדים; אין פירושו זמן מעריכי בכל מופע.

הערת מקור

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

טעויות נפוצות

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

מקורות ואימות

  • 2026 transcript 15
  • Garey-Johnson, SP13
  • הערת כיסוי הקורפוס: אין כיסוי ישיר בסיכום הממוזג.
  • מיפוי קטלוג: data/exercises.json; הניסוח והפתרון עצמאיים; הגשות אישיות אינן מקור סמכות.
בנייה מודרכת

תכנות דינמי ל־Subset Sum

שלב 1 מתוך 6
A = {3, 5, 6, 11} · יעד T = 14
i / סכום
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
0 פריטים
✓
·
·
·
·
·
·
·
·
·
·
·
·
·
·