- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
状态压缩动态规划中的状态及时间
局部极小值 而我们按照上述的放置方式后会出现新的问题,就是如何保证我们放完后所有的数后X一定是局部最小值呢? 那就是让X在其周边的格子之前被放置一个数。这点并不是非常令人费解。 局部极小值 如右图(红色的都是已经放置了数的格子),下一步我们放置8(有7个格子已经放过了)的话,能放置的只能是所有的黑色的X或者白色的格子。 局部极小值 综上我们可以得到一组状态f[i][j](i表示我们已经放置了数的个数,而j则是我们已经放置的X的集合),其中的值自然就是方案了。 右图即可表示为f[7][011010] (011010自然就是X的取舍情况)。 局部极小值 上述状态转移的话只要分两种情况就可以了。 一是在X上放数 二是在非X的可行格子放数 当前状态为f[7][011010] 在X上放数的话选择有三种且分别推导到f[8][num2] (num2为111010、011110、011011的表示)。 在白色格子放的话有4*7-17-7=4种选择但只能推导到f[7][011010]的状态 局部极小值 局部极小值 至此,套用刚刚的状态并使用容斥原理就可以解决问题了。 状态压缩动态规划中的状态与时间 江苏省大丰中学 韩旭 概述 随着社会的发展以及社会生产技术的变革,世界也在从工业化转向信息化。与之而来的也就是信息学的快速发展,即其在生产生活中的大范围运用。但是很多的实际问题到目前为止并没有太多十分有效的算法,也就是无法在多项式时间复杂度内得出结果,但却依然需要快速解决,状态压缩的概念也就被引入进来并用以解决特定的一定范围内的问题。然而繁琐的状态压缩方法以及冗余的状态表述依然是制约效率的因素之一。于是去重消冗与改变状态来提高时空效率也就是我们需要做的,通过下面题目的分析,希望能对大家起到抛砖引玉的作用。 (ps:这里是废话) 状态压缩动态规划的基本概念 大家对这些东西一定非常了解,在此不做过多赘述。 因此 直接跳过 刚才扯了一会淡,现在才是正文开始 状态压缩动态规划的局限性 状态压缩的作用无非是将原本分散的状态集约化、符号化、有序化,所以很多时候其状态数目依然是指数级别的。同时,状态之间复杂的关系使得两两状态之间的转移也受到影响。 简而言之,状态压缩动态规划的状态与转移使得它只能处理数据在一个比较小的范围内的问题。 解决之道 总的来说我们并没有能彻底解决上述问题完美办法,我们能做的无非是进行一些枝枝末末的优化。 常见的优化方法有以下几种: 改善状态及转移 选用不同的压缩方式 引入位运算进行常数优化 解决之道 引入位运算进行常数优化是非常普遍的做法,在此也不做过多的讨论。 而减少重复状态、简化转移以及选用不同的压缩方式是我今天主要的讨论对象。 迷宫改造 【问题描述】 给定一个n行m列的迷宫,相邻的两个单元之间存在一堵墙或者一扇门,墙是不可逾越的,而门是双向的且可以任意通过。现已知不多于三对的起始点与终点,要求让尽量少的墙变为门后使得没对起始点与终点之间联通,且每对起点与终点之间的路径只能不断向右向下蔓延。(3=N,M=20) 迷宫改造 样例输入:样例输出: 4 4 4 5 SESE 1 1 1 2 SSS 2 1 3 1 ESEE 2 2 3 2 4 2 4 3 1 4 2 4 3 2 1 4 3 1 2 4 2 3 1 4 4 迷宫改造 样例图示 迷宫改造 分析: 题目的数据范围很容易让我们联系到状态压缩动态规划上,实际上此题的状态也是容易想到的。 所有的路径都是由上向下的,并且最多只有3个人,所以最直观的想法就是自上向下拓展这些人的路径并且记录下每个人路径的位置以便拓展。 迷宫改造 此时我们可以得到这样的一种状态: opt[i][j][s1][s2][s3]表示所有人的路径已经延伸到第i行的第1~j列或者是第i-1行的第j~m列,且三个人的路径分别到达这轮廓线上的第s1、s2、s3个格子时的最优解。 迷宫改造 如右图的状态就可以表示为(5,3,3,6,8) 迷宫改造 这样的话状态数可以看成是N*M*(M+1)^3的,因为对于每个状态opt[i][j][s1][s2][s3]我们只需要拓展处在(i,j)这个格子里的路径向右或者是向下,因而每个状态的转移可以看做是O(1)的。 N*M*(M+1)^3最大为3704400。所以理论上这种状态压缩的方式是可以解决问题的。 迷宫改造 但是 上述方法我实
您可能关注的文档
最近下载
- 训练基地信息化系统维保项目方案投标文件(技术方案).doc
- 人教版道德与法治三年级上册第5课《 走近科学家》第2课时 他们离我们并不遥远 教学课件.pptx VIP
- 黄浦区卢湾中学能源审计报告.pdf VIP
- HDJH30-120J型架桥机说明书.doc
- 5.2用圆设计图案(表格式)教学设计 人教版六年级上册数学.docx VIP
- 航空集装器知识 .pdf VIP
- SHT-3012-2011 石油化工金属管道布置设计规范.pdf VIP
- AI赋能教育的思考与应用 教师培训课件.pptx VIP
- sfz jd2015数据库数据真实性鉴定.pdf VIP
- 公司中层领导人员任职回避和公务回避管理实施细则.docx VIP
文档评论(0)