目录

回溯法和分支限界区别

回溯法和分支限界区别

回溯法和分支限界法区别

结论

方法解空间搜索方式存储结点的数据结构结点存储性质常用应用
回溯法深度优先活结点的所有可行结点被遍历后才能出栈找出满足条件的所有解
分支限界法广度优先队列每个结点只有一次成为活结点机会找出满足条件的一个解或者特定意义的最优解

举例说明(0-1背包)

相同点

两者都是在树状的解空间上求解 ,回溯法找出满足条件的所有解,通过约束函数和限界函数可以找到问题的最优解,同时分支限界法主要应用于找满足条件的一个解或者最优解。

区别

搜索策略
  • 回溯法采用深度优先搜索的策略
  • 分支限界法采用广度优先的搜索策略
结点存储的数据结构
  • 回溯法使用栈来进行结点的存储
  • 分支限界法使用队列进行结点的存储
结点存储性质
  • 回溯法只有在所有子节点都被遍历之后才出栈
  • 分支限界法中每个结点只被访问一次

因为博主写也只是在学习过程中做个人总结,所以难免可能会有错误的地方,欢迎大家一起交流、讨论。如果有幸解决了您的一些疑问,本人不胜感激!