第5章 算法设计基本方法2.ppt
《第5章 算法设计基本方法2.ppt》由会员分享,可在线阅读,更多相关《第5章 算法设计基本方法2.ppt(80页珍藏版)》请在优知文库上搜索。
1、2023-11-15第5 章算法设计基本方法22023-11-15例:0-1背包问题n设有3种物品,背包容量40公斤。物品1的重量30公斤,价值150元;物品2的重量20公斤,价值80元;物品3的重量10公斤,价值70元。2023-11-15000030150301502080005023000402205023060300301503015020801070101111110000000-1背包问题的解空间(状态树)背包问题的解空间(状态树)能优化能优化吗?吗?2023-11-15n“通用解题法”,是带优化的穷举法。n按深度优先策略,从根结点出发搜索解空间树。n对任意结点,先判断该结点是否包
2、含问题的解。n若肯定不包含,则跳过对以该结点为根的子树的搜索,逐层向其祖先结点回溯;n否则,进入该子树,继续按深度优先搜索策略搜索。n解为叶子结点n这种以深度优先方式系统搜索问题解的算法称为回溯法,它适用于求解组合数较大的问题2023-11-15n在回溯法中,并不是先构造出整棵状态空间树,再进行搜索,而是在搜索过程,逐步构造出状态空间树,即边搜索,边构造;n回溯法求问题的所有解时,要回溯到根,且根结点的所有子树都被搜索遍才结束。n在它求问题的一个解时,只要搜索到问题的一个解就结束。2023-11-15回溯法n回溯法的使用1、确定问题状态结构;2、分析问题状态空间树;3、确定深度搜索与回溯规则;
3、4、确定解状态判别规则;2023-11-15回溯法的算法框架回溯法的算法框架5.2.1 问题的解空间问题的解空间5.2.2 回溯法的基本思想回溯法的基本思想5.2.3 递归回溯递归回溯5.2.4 迭代回溯迭代回溯5.2.5 示例示例2023-11-15 复杂问题常常有很多的可能解,这些可能解复杂问题常常有很多的可能解,这些可能解构成了问题的解空间。解空间也就是进行穷举的构成了问题的解空间。解空间也就是进行穷举的搜索空间,所以,搜索空间,所以,解空间中应该包括所有的可能解空间中应该包括所有的可能解解。确定正确的解空间很重要,如果没有确定正。确定正确的解空间很重要,如果没有确定正确的解空间就开始搜
4、索,可能会增加很多重复解,确的解空间就开始搜索,可能会增加很多重复解,或者根本就搜索不到正确的解。或者根本就搜索不到正确的解。5.2.1 问题的解空间问题的解空间 2023-11-15 对于任何一个问题,可能解的对于任何一个问题,可能解的表示方式表示方式和它相应的和它相应的解释解释隐隐含了解空间及其大小。含了解空间及其大小。例如,对于有例如,对于有n个物品的个物品的0/1背包问题,其可能解的表示方背包问题,其可能解的表示方式可以有以下两种:式可以有以下两种:(1)可能解由一个不等长向量组成,当物品)可能解由一个不等长向量组成,当物品i(1in)装入背包装入背包时,解向量中包含分量时,解向量中包
5、含分量i,否则,解向量中不包含分量,否则,解向量中不包含分量i,当,当n=3时,其解空间是:时,其解空间是:(),(1),(2),(3),(1,2),(1,3),(2,3),(1,2,3)(2)可能解由一个等长向量)可能解由一个等长向量x1,x2,xn组成,其中组成,其中xi=1(1in)表示物品表示物品i装入背包,装入背包,xi=0表示物品表示物品i没有装入背包,没有装入背包,当当n=3时,其解空间是:时,其解空间是:(0,0,0),(0,0,1),(0,1,0),(1,0,0),(0,1,1),(1,0,1),(1,1,0),(1,1,1)2023-11-15 为了用回溯法求解一个具有为了
6、用回溯法求解一个具有n个输入的问题,个输入的问题,一般情况下,将其可能解表示为满足某个约束条件一般情况下,将其可能解表示为满足某个约束条件的等长向量的等长向量X=(x1,x2,xn),其中分量,其中分量xi(1in)的的取值范围是某个有限集合取值范围是某个有限集合Si=ai1,ai2,airi,所有,所有可能的解向量构成了问题的可能的解向量构成了问题的解空间解空间。2023-11-15 问题的解空间一般用问题的解空间一般用解空间树解空间树(Solution Space Trees,也称状态空间树)的方式组织,也称状态空间树)的方式组织,树的根结点位于第树的根结点位于第1层,表示搜索的初始状态,
7、层,表示搜索的初始状态,第第2层的结点表示对解向量的第一个分量做出层的结点表示对解向量的第一个分量做出选择后到达的状态,第选择后到达的状态,第1层到第层到第2层的边上标出层的边上标出对第一个分量选择的结果,依此类推,从树的对第一个分量选择的结果,依此类推,从树的根结点到叶子结点的路径就构成了解空间的一根结点到叶子结点的路径就构成了解空间的一个可能解。个可能解。2023-11-15对于对于n=3的的0/1背包问题,其解空间树如下图所示,背包问题,其解空间树如下图所示,树中的树中的8个叶子结点分别代表该问题的个叶子结点分别代表该问题的8个可能解。个可能解。(依编号顺序搜索)对物品对物品1的选择的选
8、择对物品对物品3的选择的选择对物品对物品2的选择的选择11111100000001123457811121415310692023-11-155.2.2 回溯法的基本思想回溯法的基本思想n从根结点出发,按照深度优先策略遍历解从根结点出发,按照深度优先策略遍历解空间树,搜索满足约束条件的解。空间树,搜索满足约束条件的解。n先判断结点对应的部分解是否满足先判断结点对应的部分解是否满足约束条约束条件件,或者是否超出,或者是否超出目标函数目标函数的界,即判断的界,即判断该结点是否该结点是否包含包含问题的(最优)解。问题的(最优)解。n如果肯定不包含,则跳过对以该结点为根如果肯定不包含,则跳过对以该结点
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 算法设计基本方法2 算法 设计 基本 方法