算法复习 - 回溯法

1. 回溯法定义:
主要思想,每次只构造一个分量,然后按照下面的方法来评估这个部分构造解。如果这个构造解可以继续构造而不违反问题的约束,我们就接受对解的下一个分量所做的第一个合法选择。如果下一个分量违反问题约束,就不必对剩下的任何分量进行任何选择。这种情况下,该算法进行回溯。
2 . 基本思想:

  1. 针对所给问题,定义问题的解空间。
  2. 确定易于搜索的解空间结构。
  3. 以dfs遍历解空间,使用剪枝函数,避免无效搜索。
    特征:在任何一个状态空间树的情况下,算法只保留从根节点到当前节点的路径。
    模板:
    在这里插入图片描述
  4. 实例分析:
    4皇后问题:任何+两个皇后既不能同行也不能同列,也不能位于同一对角线上。
    在这里插入图片描述
    我们先从一个空的状态空间树入手,把第一个皇后放在第一行第一列,然后把第二个皇后放在第二行第一列,违反问题约束 ,这条路报废,接着
    往下走一个状态空间树,也就是第二行第二列,同样不行,因为处于同一对角线上,接着往下走一个状态空间树,第二行第二列,发现可行,接着往下走一行,发现无论第三个怎么放都违反问题约束,于是回溯到第二个皇后,到第二行第四列。就是不断
    往下走,有可行状态空间树,就大胆往下走,没有就回头,浪子回头金不换!‘详细分析看图解:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值