- 1
- 0
- 约1.76万字
- 约 83页
- 2017-08-19 发布于北京
- 举报
1、分支限界法的基本思想 六、分支限界法 分支限界法类似于回溯法,也是一种在问题的解空间树上搜索最优解的算法。二者的主要区别是:回溯法主要是用来找全部的解,而分支限界法的目标常常是找出一个最优解。 由于分支限界法与回溯法的目标不同,就带来了在空间树中搜索的方式的不同。我们知道,回溯法采用的是深度优先探索,而分支限界法常用的探索方式有两种: 1)普通队列式(FIFO); 2)优先队列式 下面分别以0-1背包问题为例来介绍其探索思想。 五、回溯算法 N=3,C=32,W[]={16,15,15} V[]={45,25,25}的0-1背包问题回溯算法求解示意: 重/值 16/45 15/25 15/25 C=30 0/0 16/45 31/70 0/0 16/45 31/70 16/45 15/25 30/50 15/25 0/0 15/25 0/0 1、分支限界法的基本思想:0-1背包问题 46/95 31/70 显然,全部的解空间树是一棵满二叉树(完全二叉树) 1 2 3 4 6 7 8 9 10 11 12 5 13 14 15 30/50 五、回溯算法 1、分支限界法的基本思想:0-1背包问题 3 2 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 1 7 6 5 4 15 14 13 12 11 10 9 8 [log2x]=1 物品1 物品2 物品3 [log2x]=2 [log2x]=3] N件物品需要多少个单元? 其中哪些是叶结点? 五、回溯算法 分支,限界: 0/0 16/45 31/70 0/0 16/45 31/70 16/45 15/25 30/50 15/25 0/0 15/25 0/0 1、分支限界法的基本思想:0-1背包问题 46/95 31/70 1 2 3 4 6 7 8 9 10 11 12 5 13 14 15 重/值 16/45 15/25 15/25 C=30 重/值 16/45 15/25 15/25 C=30 0/0/0 16/45/1 31/70/2 16/45/2 31/70/3 16/45/3 0/0/1 15/25/2 30/50/3 15/25/3 0/0/2 六、分支限界法 2、分支限界法的算法演示:0-1背包问题(普通队列式) 0/0/0 16/45/1 0/0/1 16/45/2 15/25/2 0/0/2 最后一层无子分支 当前的加剩余的未超过已求出的 重/值 16/45 15/25 15/25 C=30 0/0/0 16/45/1 31/70/2 16/45/2 31/70/3 16/45/3 0/0/1 15/25/2 30/50/3 15/25/3 0/0/2 六、分支限界法 2、分支限界法的算法演示:0-1背包问题(优先队列式) 0/0/0 16/45/1 0/0/1 16/45/2 15/25/2 0/0/2 六、分支限界法 3、分支限界法运用示例 布线问题—在如图所示的电路板中,设计一条A到B的最短的路线 B A 六、分支限界法 3、分支限界法运用示例 布线问题--设计一条A到B的最短的路线 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 B -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 A -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 2 1 2 1 1 2 2 3 3 3 4 4 4 4 4 5 5 5 6 6 6 7 7 7 7 8 8 8 8 8 8 9 9 9 9 9 10 10 10 10 10 10 10 11 11 11 11 11 11 12 12 12 12 13 13 13 13 13 13 14 14 14 14 14 14 15 15 15 15 15 16 16 16 16 16 17 17 17 六、分支限界法 3、分支限界法运用示例--布线问题(续) 我们用一个二维数组grid[][]来存贮电路板的相关 信息,比如:-1表示边界;0表示未布线;-2、-3、-4……表示已布的线;1、2、3、4……用来标识
原创力文档

文档评论(0)