分支限界法的优先队列方式求解
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
bestx:bestx[i]=1最优解中有物品i
物品 1 2 3 cp 48 30 30 cw 16 15 15 D cp/cw 3 2 2 H I
B E F
C G
J
K
L
M
N
O
分支限界法的优先队列方式求解0-1背包问题 cw=0 cp=0 up=90
1
cw=16 up=76 cp=48
0
cw=0 up=90 cp=0
A
B E F
C G
D
HIBiblioteka JKLM
N
O
分支限界法的优先队列方式求解 0-1背包问题
中国民航大学 计算机科学与技术学院 刘东楠 1505040
分支限界法的优先队列方式求解0-1背包问题
0-1背包问题:给定n种物品和一背包。物品i的重量是wi,其价值为vi,
背包的容量为c。问应如何选择装入背包中的物品,使得装入背包中的物品的 总价值最大?
解题步骤:
Step1:搜索解空间建立二叉树,从根节点A开始。 Step2:广度优先遍历二叉树,并用极大堆表示活节 点的优先级,选取扩展节点,找出可行解。 Step3:找出最优解。
在算法中,算法首先检查当前扩展 节点的左儿子的可行性。如果左儿 子节点是可行节点,则将它加入到 子集数和活节点优先队列中。当前 扩展节点的右儿子一定是可行节点, 仅当右儿子满足上界约束时才将它 加入子集数和活节点优先队列。 A
-搜索方法不同:
回溯法使用深度优先方法搜索,而分支限界一般用宽度优先或最佳优先方法来搜索。
-对扩展结点的扩展方式不同:
分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就 一次性产生其所有儿子结点。
-存储空间的要求不同:
分支限界法的存储空间比回溯法大得多,因此当内 存容量有限时,回溯法成功的可能性 更大。
0
cw=0 cp=0
up=90可行解
判断最优解:寻找up=cp的叶子,此时背包被完全装满,或者寻找cp和up差距最小的叶子。
分支限界法的优先队列方式求解0-1背包问题
算法对比:利用分支限界法求解0-1背包问题与回溯法的区别
-求解目标不同:
一般而言,回溯法的求解目标是找出解空间树中满足的约束条件的所有解,而分支限界法 的求解目标则是尽快的找出满足约束条件的一个解。
1
cw=31 无效解
0
cw=16 up=76 cp=48 cw=15 up=60
1
cp=30
0
cw=0 up=90 cp=0
1
cw=31 无效解
0
cw=16 cp=48 up=76可行解 cw=30 cp=60 up=60可行解
1 1 0
cw=15 cp=30 up=60可行解 cw=15 cp=30 up=60可行解
1
B
0
C
B C
分支限界法的优先队列方式求解0-1背包问题
应用实例:给定3种物品和一背包。物品重量是wi={16,15,15},其价值vi={48,30,30},
背包的容量为c=30。问应如何选择装入背包中的物品,使得装入背包中的物品的总价值最大?
参数解释:
cp:当前装包价值 cw:当前装包重量
A
vi 1 up:价值上界 up cp (C cw) wi 1
物品 1 2 3 cp 48 30 30 cw 16 15 15 D cp/cw 3 2 2 H I
B E F
C G
J
K
L
M
N
O
分支限界法的优先队列方式求解0-1背包问题 cw=0 cp=0 up=90
1
cw=16 up=76 cp=48
0
cw=0 up=90 cp=0
A
B E F
C G
D
HIBiblioteka JKLM
N
O
分支限界法的优先队列方式求解 0-1背包问题
中国民航大学 计算机科学与技术学院 刘东楠 1505040
分支限界法的优先队列方式求解0-1背包问题
0-1背包问题:给定n种物品和一背包。物品i的重量是wi,其价值为vi,
背包的容量为c。问应如何选择装入背包中的物品,使得装入背包中的物品的 总价值最大?
解题步骤:
Step1:搜索解空间建立二叉树,从根节点A开始。 Step2:广度优先遍历二叉树,并用极大堆表示活节 点的优先级,选取扩展节点,找出可行解。 Step3:找出最优解。
在算法中,算法首先检查当前扩展 节点的左儿子的可行性。如果左儿 子节点是可行节点,则将它加入到 子集数和活节点优先队列中。当前 扩展节点的右儿子一定是可行节点, 仅当右儿子满足上界约束时才将它 加入子集数和活节点优先队列。 A
-搜索方法不同:
回溯法使用深度优先方法搜索,而分支限界一般用宽度优先或最佳优先方法来搜索。
-对扩展结点的扩展方式不同:
分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就 一次性产生其所有儿子结点。
-存储空间的要求不同:
分支限界法的存储空间比回溯法大得多,因此当内 存容量有限时,回溯法成功的可能性 更大。
0
cw=0 cp=0
up=90可行解
判断最优解:寻找up=cp的叶子,此时背包被完全装满,或者寻找cp和up差距最小的叶子。
分支限界法的优先队列方式求解0-1背包问题
算法对比:利用分支限界法求解0-1背包问题与回溯法的区别
-求解目标不同:
一般而言,回溯法的求解目标是找出解空间树中满足的约束条件的所有解,而分支限界法 的求解目标则是尽快的找出满足约束条件的一个解。
1
cw=31 无效解
0
cw=16 up=76 cp=48 cw=15 up=60
1
cp=30
0
cw=0 up=90 cp=0
1
cw=31 无效解
0
cw=16 cp=48 up=76可行解 cw=30 cp=60 up=60可行解
1 1 0
cw=15 cp=30 up=60可行解 cw=15 cp=30 up=60可行解
1
B
0
C
B C
分支限界法的优先队列方式求解0-1背包问题
应用实例:给定3种物品和一背包。物品重量是wi={16,15,15},其价值vi={48,30,30},
背包的容量为c=30。问应如何选择装入背包中的物品,使得装入背包中的物品的总价值最大?
参数解释:
cp:当前装包价值 cw:当前装包重量
A
vi 1 up:价值上界 up cp (C cw) wi 1