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