这是一种用于求解组合优化问题的排除非解的搜索算法。类似于回溯法,分枝定界法在搜索解空间时,也经常使用树形结构来组织解空间。然而与回溯法不同的是,回溯算法使用深度优先方法搜索树结构,而分枝定界一般用宽度优先或最小耗费方法来搜索这些树。因此,可以很容易比较回溯法与分枝定界法的异同。相对而言,分枝定界算法的解空间比回溯法大得多,因此当内存容量有限时,回溯法成功的可能性更大。
算法思想:分枝限界(branch and bound)是另一种系统地搜索解空间的方法,它与回溯法的主要区别在于对E-节点的扩充方式。每个活节点有且仅有一次机会变成E-节点。当一个节点变为E-节点时,则生成从该节点移动一步即可到达的所有新节点。在生成的节点中,抛弃那些不可能导出(最优)可行解的节点,其余节点加入活节点表,然后从表中选择一个节点作为下一个E-节点。从活节点表中取出所选择的节点并进行扩充,直到找到解或活动表为空,扩充过程才结束。
有两种常用的方法可用来选择下一个E-节点(虽然也可能存在其他的方法):
1)先进先出(FIFO)即从活节点表中取出节点的顺序与加入节点的顺序相同,因此活
节点表的性质与队列相同。
2)(优先队列)最小耗费或最大收益法在这种模式中,每个节点都有一个对应的耗费或收益。如果查找一个具有最小耗费的解,则活节点表可用最小堆来建立,下一个E-节点就是具有最小耗费的活节点;如果希望搜索一个具有最大收益的解,则可用最大堆来构造活节点表,下一个E-节点是具有最大收益的活节点。
(简答题)
简述分支限界法及其算法思想。
正确答案
答案解析
略
相似试题
(简答题)
用分支限界法设计算法的步骤是什么?
(单选题)
关于回溯算法和分支限界法,以下()是不正确描述。
(简答题)
试比较回溯法与分支限界算法,分别谈谈这两个算法比较适合的问题?
(填空题)
分支限界法是一种既带有()又带有()的搜索算法。
(简答题)
常见的两种分支限界法的算法框架是什么?
(单选题)
回溯算法和分支限界法的问题的解空间树不会是()
(简答题)
简述分支限界法与回溯法的异同。
(填空题)
分支限界法主要有()分支限界法和()分支限界法。
(单选题)
在分支限界算法中,根据从活结点表中选择下一扩展结点的不同方式可有几种常用分类,以下()描述最为准确。