בעיית הסכומים החלקיים

בעיית הסכום החלקי שואלת: נתונה קבוצת מספרים. האם יש תת־קבוצה לא ריקה שסכומה הוא אפס? לדוגמה: בקבוצה {-7, -3, -2, 8, 5} יש את התת־קבוצה {-2, -3, 5} שסכומה הוא אפס.

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

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

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

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

תגובות גולשים

התגובה תפורסם באתר לאחר אישור המערכת

עדיין אין תגובות. היה הראשון להגיב!