美文网首页
回溯法初探(一)

回溯法初探(一)

作者: 岳林安 | 来源:发表于2017-11-05 16:54 被阅读0次

 回溯法是的应用范围很广,主要用于数据量不是很大的暴力求解问题,比如"图的m着色问题","八皇后问题"。                            

  回溯法的主要思想,简单来说就是"能进就进,进不了就换,换不了就退",用迷宫的形式来讲解回溯法的思想十分形象,探索迷宫时要先向前走一步,之后再判断走的对不对,在实际的回溯算法中一般是要先判断当前的状态是否符合约束条件,如果符合,就向前走,不符合那就换个方向或是换条路。

在使用回溯法时,一般分为递归算法与非递归算法,两种方法各有利弊,递归算法最主要的缺点就是对空间的消耗很大,但是代码简洁,思路简单,而非递归算法则恰恰相反,根据我自学的经验,我认为在初学时不妨先用递归算法入门,先将思路搞清楚,在熟练后再去尝试非递归算法。)

用回溯法解题大致分为以下几个步骤:

1.明确解向量

回溯法的解一般都可以用  x={x[1],x[2]...x[n]}表示,比如在图的3着色问题中,用1,2,3分别表示三种不同的颜色,图的区域有5个地方,则x[i]=1表示i区域涂色为"1"颜色,其中1<=i<=5。

2.明确解空间

解空间主要对应的是子集树和排列树,依据题意进行选择。(根据题意画个图,就知道了)

3.明确约束条件

所谓约束条件就是判断你是否能在"迷宫"中继续前进的条件,是回溯算法的核心。

4.明确限界条件

主要在求最优解时使用,通过进一步的限制,完成剪枝,从而提高效率。举一个简单的例子,假如之前的运算中已经算出当前的最优解为10,而在回溯中,发现"迷宫"走到一半就已经是11>10了,那就没有必要在往下走,这样就节省了时间。

相关文章

  • 回溯法初探(一)

    回溯法是的应用范围很广,主要用于数据量不是很大的暴力求解问题,比如"图的m着色问题","八皇后问题"。 ...

  • N皇后

    回溯法核心代码: n皇后问题回溯法

  • 算法08-回溯法:面试最常见问题

    算法08-回溯法:面试最常见问题 一、介绍 回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜...

  • 简单的谈谈dfs

    简单的说回溯法,递归就是将函数负责几遍。那么回溯法就是将for循环复制几遍。回溯法框架 为什么要把list的最后一...

  • 小朋友学经典算法(14):回溯法和八皇后问题

    一、回溯法 回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步...

  • 回溯法与分支限界法

    回溯法与分支限界法 时间 2016-03-24 标签 搜索 回溯法 1、概念 回溯算法实际上一个类似枚举的搜索尝...

  • LeetCode之回溯算法

    回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。因为回溯的本质是穷举,穷...

  • 算法理论 | 回溯法

    回溯法 回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并...

  • 回溯法——矩阵中的路径

    回溯法回溯法可以看成蛮力法的升级版,它从解决问题每一步的所有可能选项里系统地选择出一个可行的解决方案。回溯法非常适...

  • 算法的设计思想2

    4,回溯法 回溯法是一种优化的穷举法。所谓穷举法就是穷举问题的所有可能性,直到发现解决问题的最佳解为止。回溯法会有...

网友评论

      本文标题:回溯法初探(一)

      本文链接:https://www.haomeiwen.com/subject/bidanttx.html