我正在阅读有关回溯算法设计技术的内容。提到如下。
回溯是对蛮力方法的改进,其中 系统地搜索所有问题的解决方案 可用选项。它是通过假设解决方案来实现的 由向量(v1,v2,...,vm)表示的值和遍历, 以深度第一的方式,向量的域直到 找到解决方案。
我对上述文字的质疑如下。
作者对解决方案的意思是用向量表示吗?
作者对载体的含义是什么意思?
感谢您澄清。
答案 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 ...]