我有一个动态编程问题。我正在尝试在python中找到一个解决背包问题的适当解决方案。
附加要求:
因此,我想放入背包S元素以找到重量不超过最大重量的最有价值的子序列。 每个元素都有(值,权重),其中值是一个数字,权重是一个非负整数。 Maxweight是一个非负整数。
示例:
def knapsack_variant(items, maxweight, S=-1, topN=10):
"""
>>> items = [(4, 12), (2, 1), (6, 4), (1, 1), (2, 2)]
>>> maxweight = 15
>>> S = 4
>>> topN = 3
>>> knapsack_variant(items, maxweight, S, topN)
(11, [(2, 1), (6, 4), (1, 1), (2, 2)])
next two solutions
"""