反向跟踪算法设计技术定义

时间:2012-05-02 11:47:47

标签: algorithm backtracking

我正在阅读有关回溯算法设计技术的内容。提到如下。

  

回溯是对蛮力方法的改进,其中   系统地搜索所有问题的解决方案   可用选项。它是通过假设解决方案来实现的   由向量(v1,v2,...,vm)表示的值和遍历,   以深度第一的方式,向量的域直到   找到解决方案。

我对上述文字的质疑如下。

  1. 作者对解决方案的意思是用向量表示吗?

  2. 作者对载体的含义是什么意思?

  3. 感谢您澄清。

1 个答案:

答案 0 :(得分:3)

让我们以八皇后问题为例。

解决方案是8个位置的向量,每个位置1个。向量属于空间:([0,7]x[0,7])^8。这是一个非常大的空间,因此回溯算法将使用以下条件:“没有女王应该检查另一个女王”,以限制到一个较小的域' (解空间向量存在的([0,7]x[0,7])^8子空间)。

在这种情况下,算法将通过尝试第一个女王的允许值之一来创建解向量,给出向量:[ (0,0), X, X, X ...]。然后使用条件,它将限制应搜索第二个位置的子空间,并继续这样做,直到找到合适的向量。

深度优先意味着在移动到解决方案[ (0,1), X, X, X ...]的域之前,算法将耗尽[ (0,0), X, X, X ...]

定义的域中的所有潜在向量