בעיית Knapsack

פריט 1:
פריט 2:
פריט 3:
פריט 4:
ערך | נפח

נוסחה אינדוקטיבית (הרעיון):

T[i,w] = הערך המקסימלי מ-i הפריטים הראשונים, עם נפח w
לכל w — אין פריטים:  T[0,w] = 0
נפח התרמיל 0:  T[i,0] = 0
אם wi > w:  T[i,w] = T[i−1, w]
אם wi ≤ w:  T[i,w] = max(T[i−1, w], vi+T[i−1, w−wi])

פריטים נבחרים

פריטviwi
⚠️ עץ הרקורסיה גדול מאוד (יותר מ-150 קריאות). הסימולציה תוצג, אך ייתכן שהעץ יהיה צפוף. מומלץ לבחור פחות פריטים או נפח קטן יותר לצפייה נוחה.
אלגוריתם רקורסיבי
תכנות דינאמי
קריאה ראשונה (טרם הושלמה)
קריאה פעילה
קריאה חוזרת (מחושבת שוב!)
תנאי בסיס / הושלמה

תיאור השלב

לחץ על "הבא" להתחלת הסימולציה

האלגוריתם הרקורסיבי

c2: T[i-1,w]
c1: T[i-1,w-wi]
ערך נוכחי
חושב
תוצאה T[n,W]
מסלול בחירה

תיאור השלב

לחץ על "הבא" להתחלת הסימולציה

האלגוריתם