רדוקציה מחלוקה לאריזת פחים ואיתור מחסום ה־3/2
מיפוי שאלת חלוקה שווה לפחים בקיבולת S/2, כליאת האופטימום בין 2 ל־3, וקריאת קבוע אי־הקירוב המוחלט.
שאלה
הקלט לבעיית אריזת הפחים (BIN-PACKING) הוא פריטים וקיבולת פח , והמבוקש הוא המספר הקטן ביותר של פחים בקיבולת שמכילים את כל הפריטים. בצעו רדוקציה מ־PARTITION אל הבעיה הזו בעזרת כאשר , הוכיחו שהמופעים הנוצרים הם תמיד בעלי אופטימום או , והסיקו שאף אלגוריתם פולינומי אינו משיג יחס קירוב מוחלט קטן מ־ אלא אם . נסחו במדויק על איזה יחס המחסום חל.
דרישות קדם
נדרשת שליטה בהגדרות היחידה ובניתוח אורכי קידוד. יש להבחין בין טענה מותנית, רדוקציה ואלגוריתם, ובין יחס קירוב מוחלט ליחס קירוב אסימפטוטי.
רמז 1
בקיבולת שני הפחים של אריזה חוקית בשני פחים מלאים עד הסוף, בלי שום מקום פנוי.
רמז 2
באריזת First-Fit, כל שני פחים יחד מכילים יותר מ־.
רמז 3
אם האופטימום מקבל רק את הערכים ו־, יחס קטן ממש מ־ מפריד ביניהם מתוך שלמות המספרים בלבד.
חלוקה → אריזת פחים ומחסום ה־3/2
פתרון מלא
הרדוקציה. בהינתן רב־קבוצה של מספרים שלמים חיוביים עם , מטפלים תחילה בשני מקרי קצה. אם אי־זוגי אין חלוקה שווה, ואם קיים הפריט הזה אינו יכול להיכלל בחלק שסכומו ; בשני המקרים מחזירים מופע "לא" קבוע. אחרת מחזירים את מופע האריזה עם אותם פריטים, קיבולת ותקציב של פחים. חישוב והשוואתו לכל דורשים מספר פולינומי של פעולות בינאריות, ואף מספר אינו גדל, ולכן המיפוי פולינומי.
נכונות. סכום הפריטים הוא . אם מתחלקת לשני חלקים שסכום כל אחד , כל חלק הוא בדיוק פח מלא, ולכן שני פחים מספיקים. להפך, אם שני פחים בקיבולת מכילים פריטים שסכומם , אף פח אינו יכול לשאת פחות מ־ בלי לדחוף את השני מעל , ולכן כל אחד נושא בדיוק ושני הפחים מציגים חלוקה שווה. לכן
הפער. בכל מופע שהרדוקציה מייצרת האופטימום נמצא בקבוצה .
חסם תחתון: סכום הפריטים הוא , ולכן פח אחד לעולם אינו מספיק ומתקיים , עם שוויון בדיוק כאשר קיימת חלוקה.
חסם עליון: מריצים First-Fit. נקבע שני פחים בפלט שלו, ויהי הפריט הראשון שהוכנס לפח . ברגע שהוכנס , פח כבר היה קיים ו־ לא נכנס אליו, ולכן תכולת פח באותו רגע ועוד עלו על . תכולה לעולם אינה קטנה, ולכן העומסים הסופיים מקיימים . אילו First-Fit היה משתמש בארבעה פחים או יותר, זיווג ו־ היה נותן עומס כולל גדול מ־, בסתירה לכך שסכום הפריטים הוא בדיוק . לכן First-Fit משתמש בשלושה פחים לכל היותר ומתקיים .
המחסום. נניח שקיים אלגוריתם פולינומי בעל יחס קירוב מוחלט , כלומר הוא מחזיר לכל היותר פחים בכל מופע. נריץ אותו על מופע שנוצר מ־PARTITION. אם אז מחזיר לכל היותר פחים; מספרי פחים הם שלמים ואף אלגוריתם אינו טוב מהאופטימום, ולכן הוא מחזיר בדיוק . אם אז מחזיר לפחות . קריאת מספר הפחים המוחזר מכריעה אפוא את PARTITION בזמן פולינומי, ו־PARTITION היא NP-שלמה, ולכן . בניסוח נגדי: אלא אם , לאף אלגוריתם פולינומי אין יחס מוחלט קטן מ־.
זוג מופעים מחושב. ניקח , הרב־קבוצה שמייצרת הרדוקציה מ־Subset Sum ל־Partition. כאן , , והקבוצות ו־ מסתכמות שתיהן ל־, ולכן . נשנה פריט אחד, , ונקבל עם ו־, שבו אין כלל תת־קבוצה שסכומה ; חיפוש ממצה על כל השמות ששת הפריטים לפחים מאשר . First-Fit בסדר הכתוב מחזיר עומסים שסכומי הזוגות שלהם הם , כולם מעל — בדיוק תכונת הזוגות שאוסרת פח רביעי.
מה בכל זאת מנצח. המחסום חל על היחס המוחלט בלבד, והעובדות הבאות מתקיימות לצידו בלי שום סתירה.
- First-Fit משתמש בלכל היותר פחים, משום ששני פחים מלאים עד חצי לכל היותר היו סותרים את תכונת הזוגות, ולכן לכל היותר פח אחד ריק בחציו. היחס האסימפטוטי ההדוק שלו הוא . הוא אינו הליך הכרעה: על בסדר הכתוב הוא פותח שלושה פחים אף ש־.
- First-Fit-Decreasing מקיים , והיחס המוחלט שלו הוא בדיוק . הוא נוגע במחסום ואינו חוצה אותו. על הוא אכן מוצא את האריזה האופטימלית ו־.
- קיימת סכמת קירוב אסימפטוטית: לכל יש אלגוריתם פולינומי שאורז ב־ פחים. אלגוריתם קרמרקר–קארפ אורז ב־ פחים.
אף אחת מההבטחות האסימפטוטיות אינה סותרת את מחסום ה־, משום ששתיהן מתירות איבר חיבורי ששולט דווקא על המופעים הזעירים שהרדוקציה מייצרת, שבהם . המשפט "אי אפשר לקרב אריזת פחים מתחת ל־" בלי המילה מוחלט הוא אפוא שגוי.
נקודות בדיקה
בדקו שהוכחתם את שני הכיוונים, שכל ענף או מכונה עוצרים, ושגודל הפלט וזמן הבנייה פולינומיים באורך הקלט. בדקו בנוסף שמקרי הקצה אי־זוגי ו־ נענים לפני הפעלת המיפוי, ושכל טענת קירוב מציינת על איזה יחס היא חלה.
טעויות נפוצות
- הסקה שאריזת פחים אינה ניתנת לקירוב מתחת ל־ גם במובן האסימפטוטי; סכמת הקירוב האסימפטוטית וקרמרקר–קארפ מפריכות את הקריאה הזו.
- שכחת התנאי , שמותיר פריט שאינו נכנס לשום פח.
- שימוש ב־ בלבד בלי להוכיח , שהוא מה שהופך את הפער לדו־ערכי.
- התייחסות ל־First-Fit כאל הליך הכרעה ל־PARTITION משום שהוא מקיים .
מקורות ואימות
- Garey-Johnson, SR1 (bin packing)
- Lecture 9 First-Fit questions in data/canonical_questions.json
- הערת כיסוי הקורפוס: שיעור 9 שואל ישירות על First-Fit לאריזת פחים (CQ-0199, CQ-0211, CQ-0212, CQ-0224); מחסום ה־ עצמו הוא חומר ספרי לימוד ואינו מופיע בסיכום הממוזג.
- מיפוי קטלוג:
data/exercises.json; הניסוח והפתרון עצמאיים; הגשות אישיות אינן מקור סמכות.
הערת מקור וביטחון
התרגיל הוא סינתזה מקורית. רמת הביטחון משקפת אימות של הטענה המתמטית מול מקורות ספרי הלימוד המפורטים לעיל; מקורות הקורס משמשים רק כאשר זוהה כיסוי ישיר. כל מספר שמוצג חושב מחדש בחיפוש ממצה לפני שנכתב.