千家信息网

Python中怎么实现动态规划

发表于:2024-10-23 作者:千家信息网编辑
千家信息网最后更新 2024年10月23日,今天就跟大家聊聊有关Python中怎么实现动态规划,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。动态规划动态规划的关键:在于大问题的最优解由对
千家信息网最后更新 2024年10月23日Python中怎么实现动态规划

今天就跟大家聊聊有关Python中怎么实现动态规划,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

动态规划

动态规划的关键:在于大问题的最优解由对应的更小规模问题的最优解递推而来

针对博物馆大盗问题,将问题函数化: m(i, w)
  • i(1<=i<=5):表示前i个宝贝

  • w(1<=w<=20):重量不超过w

  • m(i, w) :前i个宝贝总重不超过w的最大价值是多少

函数的意义:前1个宝物重量不超过w的最大价值,前2个宝物重量不超过w的最大价值……前5个宝物重量不超过w的最大价值。问题的规模逐渐增大,从最小规模一直推导到目标规模的最优解

动态规划:从最小规模最优解推导到目标规模问题的最优解

m(i, w)要得到最大价值,那它如何计算呢?

既然规模是从小到大,那么就要讨论第i个宝贝能否加入到上一个规模中

  • 若第i个宝贝太重了加不进去,则m(i, w)=m(i-1, w)

  • 若第i个宝贝可以加进去,则m(i, w)=m(i-1, w-wi)+vi

从上述两个结果中取较大的

算法设计:两重循环,i从1加到5的同时w从1加到20

过程中你会发现后面的m(i, w)可以通过前面已经计算过的结果直接得到

递归解法

递归的方法要显得自然通俗一点

  • 基本结束条件:宝贝为空或背包承重为

  • 递归最大的问题在于会有许多的重复,故需要记录中间结果

  • 规模减小方向:从宝物集合中逐个去掉(偷走)宝物,递归调用

tuple()方法

用于将列表、区间等转换为元组

a = [1, 2]b = {'1':2, '2':3}print(tuple(a))print(tuple(b))
(1, 2)('1', '2')

看完上述内容,你们对Python中怎么实现动态规划有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

规模 最大 宝贝 问题 动态 规划 价值 宝物 重量 递归 内容 结果 最小 函数 方法 目标 较大 通俗 从小到大 两个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库怎么计算员工平均工资 软件开发和电气自动化的区别 山西pdu服务器专用电源厂 hk3220服务器价格 怎样给学生补充网络安全法 华为服务器天津专卖云服务器 华为电脑服务器地址是什么意思 糖霜下载软件开发 当前云服务器数量 怎么学好嵌入式软件开发 网络安全专家队伍 互联网科技峰会活动创始人 数据库培训能抵税吗 腾讯云服务器购买 消防站软件开发 上海标准网络技术服务哪家好 电大数据库应用技术性考1 网络安全靠人民主题的手抄报 云计算 服务器集群 网络技术员自我鉴定 通信网络安全防护标准 数据库怎么计算员工平均工资 南沙软件开发哪家专业 网络安全苏州微软招聘信息 李小军县委网络安全和信息化 网络技术入门经典教程 广东大数据软件开发多少钱 上海标准网络技术服务哪家好 毕节服务器显卡费用 交易型数据库哪家有实力
0