背包问题:三种动态规划解法及其逐步减少空间复杂度
发布时间
阅读量:
阅读量
共有五件物品标号分别为1至5,请计算每件物品的质量参数及最优组合方案
具体来说
每件物品的质量参数包括其重量及对应的价值数值
第一件物质量数为2单位
第二件物质量数也为2单位
第三件物质量数则达到6单位
第四件物质量数则为5单位
第五件物质量数最后确定为4单位
对应的价值数值分别为
第一件物质量值为6单位
第二件物质量值则定为3单位
第三件物质量值最高达5单位
第四件物质量值则为4单位
第五件物质量值同样定为6单位
假设有一个可承载重量不超过10单位的背包
请计算出最优装包方案以实现总价值最大化
背包问题是典型的动态规划实例,在其规律性较强的基础上多采用自底向上的策略。具体而言,该方法通常会将复杂的大规模问题分解为小规模的问题逐步解决,并将其结果存储起来,最终进而推进至较大的规模。
一种解法:其时间和空间复杂度均为O(n^2)的解法,在获得最大价值的情况下具体拿取了哪些物品?
这里dp[i][j]的含义是:在只有i个物品,最大容量为j时,能获得的最大价值
def bag(weight, value, max_W):
N = len(weight)
V = max_W
dp = [[0 for i in range(V+1)] for j in range(N+1)]
for i in
全部评论 (0)
还没有任何评论哟~
