回溯算法

树和图的深度优先,广度优先遍历所使用的也是回溯法,在动态规划中采用暴力递归解决01背包问题时候也归位回溯法。

 

回溯法核心思想:

  回溯法的基本思想就是在问题的解空间(问题所有备选解所组成的集合)中不断的尝试,如果发现无法尝试就回退到上一步继续尝试直到找到问题的解为止。

  

 

  迷宫问题:站在迷宫入口,要走出迷宫。最容易想到的就是不断的尝试,先选择一条路走做好标记然后一直走下去,那么会有三种结果,1.顺利走出去 2.进入了思路 3.走到之前有标记的路。

  问题2和3 可以使用相同的方法去处理,那就是退回到前一个路口去,然后寻找下一条路继续走,如果退回到前一个路口发现所有的可能性都尝试了一遍了,那么这时候就退回到更前一个路口,这样一直不停的尝试,如果这个迷宫有解,就一定能找到出口的路线。

 

上图路线:

  走到12发现12和13是不通的,那么就退回到8,8和9是相通的。

posted @ 2019-05-12 10:38  songguojun  阅读(69)  评论(0编辑  收藏  举报