算法分析与设计【5】回溯法

思想

回溯算法实际上类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。

  • 解空间:解决一个问题的所有可能的决策序列构成该问题的解空间
  • 可行解:解空间中满足约束条件的决策序列称为可行解
  • 最优解:约束条件下,使得问题的目标达到最优的可行解称为最优解
    在这里插入图片描述

适用条件

在这里插入图片描述

步骤

  • 针对问题定义解空间
  • 确定易于搜索的解空间结构
  • 深度优先搜索解空间,并且通过剪枝函数避免无效搜索

影响算法复杂度的因素

  • 约束条件的个数
  • 计算约束函数的时间
  • 计算上界函数的时间

经典案例

在这里插入图片描述

1、N皇后问题

在这里插入图片描述
在这里插入图片描述

2、图着色问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、0-1背包问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考

mooc 算法设计与分析

猜你喜欢

转载自blog.csdn.net/qq_34391511/article/details/106568082