ImageVerifierCode 换一换
格式:PPT , 页数:32 ,大小:361.50KB ,
资源ID:2664208      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2664208.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(状态压缩动态规划浅谈.ppt)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

状态压缩动态规划浅谈.ppt

1、状态压缩动态规划浅谈 郑 暾基础知识n n动态规划动态规划(dynamic programming)(dynamic programming)运筹学运筹学的一个分支,是求解决策过程的一个分支,是求解决策过程(decision(decision process)process)最优化的数学方法。最优化的数学方法。n n动态规划是对解最优化问题的一种途径、一种方动态规划是对解最优化问题的一种途径、一种方法,而不是一种特殊算法。其往往是针对一种最法,而不是一种特殊算法。其往往是针对一种最优化问题。由于各种问题的性质不同,确定最优优化问题。由于各种问题的性质不同,确定最优解的条件也互不相同,因而动态规

2、划的设计方法解的条件也互不相同,因而动态规划的设计方法对不同的问题,有各具特色的解题方法,而不存对不同的问题,有各具特色的解题方法,而不存在一种万能的动态规划算法,可以解决各类最优在一种万能的动态规划算法,可以解决各类最优化问题。化问题。基础知识n n一些常见术语:阶段,状态,决策n n和递推的区别:决策!基本知识n n一些必要性质:n n无后效性:对于状态,如果给定某一阶段的状态,则在这一阶段以后过程的发展不受这阶段以前各段状态的影响,所有各阶段都确定时,整个过程也就确定了。n n最优子结构性质:要求问题的最优策略的子策略也是最优。基本知识n n状态压缩动态规划的使用动机:n n一般的状态描

3、述不满足无后效性原则,或者保存的信息不足够进行决策。n n将当前一部分局面信息压缩存储,结合常见的一些局面描述,使得构成的状态满足无后效性原则基础知识n n名称:基于状态压缩的动态规划、集合动态规划。n n含义:以一个集合内的元素信息作为状态,状态总数为指数级别的动态规划。n n特点:n n1、本身要满足动态规划的性质:最优性原理、无后效性。n n2、数据某几维规模比较小。传统集合动态规划n n例题一:n n给定n个点的有向带权图,求一条经过每个点一次的回路,并要求权和最小。n n范围n=15。传统集合动态规划n n显然对于某一个中间状态,影响它的最后结果的仅仅是当前所在点以及之前已经经过的点

4、。而之前的路径行走情况与之后的解无关。n n状态Fi,opt,i表示当前所在点,opt是用2进制记录每个点是否已经经过。传统集合动态规划n n例题二:炮兵阵地(NOI2001)n n在N*M网格地图上部署炮兵部队。每个炮兵可以控制横纵2格范围。任意一对炮兵互相不能处于控制范围。n n地图上有些点不能部署部队。n nN=100;M=10。传统集合动态规划n n例题三:K-排列问题n n考虑一个1n的排列a1,a2,a3an,若max(abs(ai-i)=K,那么这个排列就称为K-排列。n n求n个数的K-排列的个数。n n范围:n=100,K=5传统集合动态规划n n例题四:生成树计数(NOI2

5、007)n n环状图,任意两个点距离不超过k则连边,求生成树个数。n nK=5实现n n插头法n n转移的复杂度降低n n时间复杂度降低传统集合动态规划n n例题 Another Chocolate Maniac(Sgu132)n n给定一个M*N的网格,网格中存在一些障碍物。在网格空地处放置最少的1*2的矩形块,使得网格中无法再放入1*2的矩形块。n n1=M=70n n1=N=7基于连通性的状态压缩动态规划n n在网格中寻找一条或多条路径(回路)满足一定的条件,求方案数或路径总长度最短。n n状态除了记录路径“出口”,还要记录其连通性。基于连通性的状态压缩动态规划n n例题一:Formul

6、a 1(Ural 1519)n n给你一个m*n的棋盘,有的格子是障碍,问共有多少条回路使得经过每个非障碍格子恰好一次n nm,n 12 基于连通性的状态压缩动态规划n n思想:状态压缩动态规划。n n一个单元格中可能出现的路径情况:实现细节n n总体实现:插头法总体实现:插头法n n实现方法:记忆化搜索实现方法:记忆化搜索n nFi,j,optFi,j,opt表示当前是表示当前是i i行行j j列,最后扫描的总共列,最后扫描的总共mm个个格子的状态为格子的状态为optopt的方案数。的方案数。n nOptOpt的记录:的记录:mm个格子向下伸出插头的情况,以及个格子向下伸出插头的情况,以及最

7、后一个格子向右伸出插头的情况。最后一个格子向右伸出插头的情况。n n插头记录:插头记录:0 0表示无插头,具体数字表示插头的属表示无插头,具体数字表示插头的属性(染色法记录属于第几个连通块,最小表示)。性(染色法记录属于第几个连通块,最小表示)。对于本题最多同时存在对于本题最多同时存在6 6个连通块的插头。个连通块的插头。实现细节n n转移:分类讨论插头方向。转移:分类讨论插头方向。n n1 1、当前格上方左方均有插头:只能将这两个连通、当前格上方左方均有插头:只能将这两个连通块连接。(块连接。(1 1种)种)n n2 2、当前格只有上方有插头:将这个插头向下向右、当前格只有上方有插头:将这个

8、插头向下向右延伸。(延伸。(2 2种)种)n n3 3、当前格只有左方有插头:将这个插头向下向右、当前格只有左方有插头:将这个插头向下向右延伸。(延伸。(2 2种)种)n n4 4、当前格周围无插头:若当前格为障碍物,则无、当前格周围无插头:若当前格为障碍物,则无插头,否则插入一个折线形插头。插头,否则插入一个折线形插头。实现细节n n合并连通块:合并连通块:n n对于第一种情况,需要合并连通块。若不加限制,对于第一种情况,需要合并连通块。若不加限制,则会计算出包含多条回路的情况。则会计算出包含多条回路的情况。n n限制:和并连通块时,若两个插头属于同一个连限制:和并连通块时,若两个插头属于同

9、一个连通块,则当且仅当在最后一个有效格子中可以将通块,则当且仅当在最后一个有效格子中可以将这两个插头连接。这两个插头连接。n n最后统计:计算到最后一个有效格子时,需要统最后统计:计算到最后一个有效格子时,需要统计答案。此时,要保证当前状态没有剩余的插头。计答案。此时,要保证当前状态没有剩余的插头。实现细节n n一些可能存在的问题:n n直接开数组用序列记录插头好还是把状态压缩后记录好?n n最小表示的如何实现?n n如何减小常数?实现细节n n一个优化:n n若当前格子连出的插头指向一个障碍物格子,可以直接剪枝。n n对有障碍的情况,能减少很多无效状态。基于连通性的状态压缩动态规划n n例题

10、二:Manhattan Writing(Japan2006)n nn*m网格有一些障碍,要求把两个2和两个3分别用折线连起来,总长度尽量小。n nn,m=9基于连通性的状态压缩动态规划n n主体思想与之前相同。n n不同点:n n需要专门两种属性记录与数2和数3的连通插头。n n无需考虑多余回路情况。(解肯定劣)状态压缩动态规划中的剪枝n n状态数是指数级别。n n最小表示以减少状态数。n n根据题目尽可能早地删去不可能成为最优的状态或不可行的状态。状态压缩动态规划中的剪枝n n例题:中国烟花例题:中国烟花 (zju2125zju2125)n n给你一个给你一个9*69*6的棋盘,棋盘的左边的

11、棋盘,棋盘的左边有有9 9根火柴,右边有根火柴,右边有9 9个火箭棋盘个火箭棋盘中的每一个格子可能是一个空格子中的每一个格子可能是一个空格子也可能是一段管道,管道的类型有也可能是一段管道,管道的类型有4 4种:种:L L型,一型,型,一型,T T型,十型。型,十型。n n给定棋盘的初始状态以及给定棋盘的初始状态以及X X,你的目,你的目标是旋转每个格子内的管道标是旋转每个格子内的管道0 0,9090,180180或或270270度,使得当点燃左边第度,使得当点燃左边第X X根根火柴后,被发射的火箭个数尽可能火柴后,被发射的火箭个数尽可能多。多。状态压缩动态规划中的剪枝n n状态:按照从左到右,

12、从上到下的顺序依次考虑每一个格子,记录每个插头是否已经点燃以及它们之间的连通情况。n n状态为:Fi,j,opt,fired表示转移完(i,j),最后扫描的总共10个插头的连通性为opt(把每个插头是否存在记录在opt中),10个插头是否被点燃的2进制数fired的状态能否达到。状态压缩动态规划中的剪枝n n转移:依次枚举每一个格子的旋转方式(最多4种),根据当前格子是否可以与上面的格子和左边的格子通过插头连接起来分情况讨论。n n状态数太多,直接做TLE。n n怎么办?状态压缩动态规划中的剪枝n n剪枝一:如果当前状态所有的插头全部都未被点燃,那么最后所有的火箭都不可能发射,所以这个状态可以

13、舍去。一个显然的剪枝,却能剪掉近乎一半的状态。n n剪枝二:如果轮廓线上有一个插头p,它没有被火柴点燃且没有其它的插头与它连通,那么这个插头可以认为是“无效”插头。这个状态可以剪枝。(必然存在不存在这个“无效”插头的状态)状态压缩动态规划中的剪枝n n剪枝三:对于一个格子(i,j)的两个状态(opt1,fired1)(opt2,fired2),如果第一个状态的每一个存在的插头在第二个状态中不仅存在而且都被点燃,那么第一个状态可以剪枝。(一个状态必然不比第二个状态优)n n剪枝四:边界状态,判断无效状态并剪枝。练习n nBetsy的旅行(USACO)n n给定一个N*N的网格(N=9),要求从左上角的格子走到左下角的格子,并且经过所有格子恰好一次。n n求Betsy能采用的路径方案数练习nYouth Hostel Dorm(Nwerc2007)n在一个n*m的网格旅馆中,边界上有唯一的门。除了门之外,其余的格子要么是空地,要么是床。一张床可访问到,当且仅当他相邻格子中有一个空地格子所在连通块是门所在的连通块,n问最多能访问到多少张床。n范围:n,m=8练习n nThe Floor Bricks(Pku2285)n n给定一个5行n列的空间,要求填入给定的m种方块(大小均不超过3*3)。n n求最少需要多少个方块。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1