回溯法

作者: 老羊_肖恩 | 来源:发表于2017-11-09 15:25 被阅读21次

  回溯法是一种通过不断尝试获得问题解的办法。“回溯”的含义是发现当前已经不满足求解的条件时,则采用“回溯”的方式,尝试其他的方法对问题求解,这种尝试的过程也是一种不断枚举的过程。
  回溯法进行尝试的过程并不是漫无目的穷举的过程,它在选择求解目标的过程中会利用当前条件与目标的最优匹配进行尝试,即使当前尝试失败,也可以回溯到上一步继续选择最后匹配选择进行。
  回溯法在所有的解空间中,按照深度优先原则进行尝试,从初始状态不断深入到各个解空间中,过程如下:

  1. 对需要解决的问题,确定问题的解空间,确保在解空间的范围内存在最优解。
  2. 确定回溯法的尝试规则及路径寻找的方式,以减少不必要的计算。

  回溯法解题步骤:

  1. 针对所给问题,确定问题的解空间:首先应明确定义问题的解空间,问题的解空间应至少包含问题的一个(最优)解。
  2. 确定结点的扩展搜索规则
  3. 以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。

  回溯法的基本行为是搜索,搜索过程使用剪枝函数来为了避免无效的搜索。剪枝函数包括两类:1. 使用约束函数,剪去不满足约束条件的路径;2.使用限界函数,剪去不能得到最优解的路径。问题的关键在于如何定义问题的解空间,转化成树(即解空间树)。解空间树分为两种:子集树和排列树。两种在算法结构和思路上大体相同。

相关文章

  • N皇后

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

  • 简单的谈谈dfs

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

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

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

  • 回溯法与分支限界法

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

  • LeetCode之回溯算法

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

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

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

  • 算法的设计思想2

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

  • 算法理论 | 回溯法

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

  • 78. Subsets

    经典的回溯法

  • 491. Increasing Subsequences

    典型的回溯法

网友评论

      本文标题:回溯法

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