在回溯算法中,我们同时使用广度优先搜索和深度优先搜索。即使在分支界限算法中,我们也会使用广度优先搜索和深度优先搜索以及最小代价搜索。
那么何时使用回溯算法,何时使用分支界限算法呢?
使用分支界限算法是否会降低时间复杂度?
分支界限算法中的最小代价搜索是什么?
在回溯算法中,我们同时使用广度优先搜索和深度优先搜索。即使在分支界限算法中,我们也会使用广度优先搜索和深度优先搜索以及最小代价搜索。
那么何时使用回溯算法,何时使用分支界限算法呢?
使用分支界限算法是否会降低时间复杂度?
分支界限算法中的最小代价搜索是什么?
回溯法
分支定界法
回溯法是解离散约束满足问题(CSP)的通用概念,它使用DFS。一旦到达一个清楚无法构造解决方案的点,就会返回到上次有选择的地方。这样,它迭代所有可能的解决方案,有时可能会提前中止。
分支限界法(Branch-and-Bound,简称B&B)是解离散有约束优化问题(COP)的概念。它们类似于CSP,但除了具有约束条件外,还有一个优化准则。与回溯法不同,B&B使用广度优先搜索。
名字中的“限界”部分指的是B&B修剪可能解的空间的方式:它得到一种启发式,获得一个上界。如果无法改进,就可以丢弃子树。
除此之外,我看不出与回溯法的区别。
网络上有其他答案提出了非常不同的说法: