python学习之动态规划解决博物馆大盗问题

Posted 今夜月色很美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习之动态规划解决博物馆大盗问题相关的知识,希望对你有一定的参考价值。

# 宝物的重量和价值
tr = [None, {'w': 2, 'v': 3}, {'w': 3, 'v': 4},
      {'w': 4, 'v': 8}, {'w': 5, 'v': 8},
      {'w': 9, 'v': 10}
      ]

max_w = 20

# 初始化二维表格m{(i, w)}
m = {(i, w): 0 for i in range(len(tr)) for w in range(max_w + 1)}

for i in range(1, len(tr)):
    for w in range(1, max_w + 1):
        if tr[i]['w'] > w:
            m[(i,w)] = m[(i - 1, w)]
        else:
            m[(i,w)] = max(m[(i-1),w], tr[i]['v'] + m[(i - 1, w - tr[i]['w'])])

# 输出结果
print(m[(len(tr)-1, max_w)])
print(m)

以上是关于python学习之动态规划解决博物馆大盗问题的主要内容,如果未能解决你的问题,请参考以下文章

机器学习笔记(21):强化学习之动态规划

算法学习之动态规划(求矩阵连乘最小相乘次数)

动态规划ybt1301 大盗阿福

学习之DP问题动态规划(DP)之数组问题

动态规划学习之数字三角形

动态规划学习之LeetCode数组区间相关的题目(303413)