重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

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)可以通过前面已经计算过的结果直接得到

Python中怎么实现动态规划

Python中怎么实现动态规划

Python中怎么实现动态规划  
 

递归解法

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

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

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

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

Python中怎么实现动态规划

  

tuple()方法

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

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

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


文章标题:Python中怎么实现动态规划
文章链接:http://cqcxhl.com/article/pgihig.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP