分支限界法和回溯法区别

我认为最重要的区别在于分支限界法可以选择搜索方向(优先队列式分支限界法)。回溯法只能漫无目的地搜索。而队列式(FIFO)分支限界法和回溯法并无差异。
对于布线问题。适合用分支限界法的原因在于目标节点B所在的解空间树中的深度不确定。如果用回溯法,则可能搜到很深才能找到B,但是别的路径上的B其实没那么深。但是用分支限界法广度搜索,则能找到深度最浅的哪个B。

回溯法:深度优先搜索。适合找到一个可行解就停止搜索。如果为了找到最优解,则回溯法需要搜索整棵树。

分支限界法:广度优先搜索。在找最优解的时候,可以通过限界判断减少需要检查的子问题。虽然回溯法也可以通过剪支函数排处一部分不合适的子问题。但是广度优先搜索可以在第一时间排除掉本层不适合的子问题。而在深度优先搜索的过程中,则可能需要在更深层次才能排处掉不合适的子问题(因为深度优先无法和本层的其他节点的价值做对比。)

posted @ 2022-11-19 17:15  没有任何出路  阅读(1058)  评论(0)    收藏  举报