我正在阅读 Anany Levtin 的算法设计和分析简介中的回溯算法设计技术。
我很难理解回溯算法的通用定义并将其映射到 4 皇后问题。
对于从更一般的角度来看的回溯算法设计技术,大多数回溯算法符合以下描述。
回溯算法的输出可以被认为是一个 n 元组 (x1, x2, x3,...,xn),其中每个坐标 xi 是某个有限线性有序集合 Si 的一个元素。例如,对于 n 皇后问题,每个 Si 是整数 1 到 n 的集合。元组可能需要满足一些额外的约束(例如,n-queens 问题中的非攻击性要求)。
例如对于 4 个皇后问题,每个 Si 设置为 {1, 2, 3, 4}
回溯算法显式或隐式生成状态空间树,其节点表示部分构造的元组,其中第一个“i”坐标由算法的早期动作定义。如果这样的元组 (x1, x2, x3,.. xi) 不是一个解,算法会在 Si+1 中找到与 (x1, x2, x3...xi) 的值一致的下一个元素,并且问题约束并将其添加到元组中作为其 (i+1)st 坐标。如果这样的元素不存在,则算法回溯以考虑 xi 的下一个值,依此类推。
我对上述文字的问题是
作者的意思是“回溯算法显式或隐式生成状态空间树,其节点表示部分构造的元组,其中第一个“i”坐标由算法的早期动作定义。如果这样的元组(x1 , x2, x3,...元组作为它的 (i+1)st 坐标。" ?
具体来说,作者所说的算法在 Si+1 中找到下一个元素是什么意思?
请要求用 4 个皇后问题解释上述陈述。
如果元素不存在,算法回溯考虑下一个 xi 值?请用 4 个皇后问题解释这个语句。
谢谢!