博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
-------------初识----------动态规划。--------------------------------------------
阅读量:5735 次
发布时间:2019-06-18

本文共 766 字,大约阅读时间需要 2 分钟。

定义:把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法——动态规划。

动态规划一般可分为线性动规,区域动规,树形动规,背包动规四类。

思想:动态规划思想设计的算法从整体上来看基本都是按照得出的关系式进行递推,这种递推相对于计算机来说,只要设计得当,效率往往是比较高的,这样在时间上溢出的可能性不大,而相反地,动态规划需要很大的以存储中间产生的结果,这样可以使包含同一个子问题的所有问题共用一个子问题解,从而体现动态规划的优越性,但这是以牺牲空间为代价的,为了有效地访问已有结果,数据也不易压缩存储,因而空间矛盾是比较突出的。另一方面,动态规划的高时效性往往要通过大的测试数据体现出来(以与作比较),因而,对于大规模的问题如何在基本不影响运行速度的条件下,解决空间溢出的问题,是动态规划解决问题时一个普遍会遇到的问题。

方法:一个思考方向是尽可能少占用。如从结点的上考虑,仅仅必不可少的内容,以及数据存储范围上精打细算(按位存储、压缩存储等)。当然这要因问题而异,进行分析。另外,在实现动态规划时,一个我们经常采用的方法是用一个与结点数一样多的数组来存储每一步的决策,这对于倒推求得一种实现最优解的方法是十分方便的,而且处理速度也有一些提高。但是在内存空间紧张的情况下,我们就应该抓住问题的主要矛盾。省去这个存储决策的数组,而改成在从最优解逐级倒推时,再计算一次,选择某个可能达到这个值的上一阶段的状态,直到推出结果为止。这样做,在程序编写上比上一种做法稍微多花一点时间,运行的时效也可能会有一些(但往往很小)的下降,但却换来了很多的空间。因而这种思想在处理某些问题时,是很有意义的。

转载于:https://www.cnblogs.com/A-FM/p/4998136.html

你可能感兴趣的文章
“Roma225”网络间谍活动:利用RevengeRAT瞄准意大利汽车行业
查看>>
智能合约从入门到精通:Lib工具库(一)
查看>>
MySQL+第三方软件备份
查看>>
iOS开发一款小巧简洁的日历控件
查看>>
教程:一起学习Hystrix--Hystrix常用场景--降级(回退)
查看>>
用户审计
查看>>
编译安装iftop
查看>>
Linux基础:vmware下安装centos7虚拟机
查看>>
2019年unity3d从入门到精通必看
查看>>
Angular、React、Vue三选一,前端工程师更青睐使用哪款框架?
查看>>
在mysql中实现字段记录修改时间而不是插入时间
查看>>
对话RoboCup 2019主席Claude Sammut教授:系统的可靠性比单一的卓越零件更为重要
查看>>
《柳叶刀》:人工智能可识别九类急性脑CT异常
查看>>
badge 提示消息的视图
查看>>
Java从入门到精通的学习建议
查看>>
默认路由
查看>>
Spring Boot 整合 mybatis-plus
查看>>
霸主地位被撼动?Java程序员靠什么逆风翻盘?
查看>>
大数据教程(7.5)hadoop中内置rpc框架的使用教程
查看>>
springMvc配置
查看>>