我正在閱讀Anany Levtin的算法設計和分析簡介中的跟蹤算法設計技術。Back-tracking設計技術的一般定義
我很難理解反向跟蹤算法的通用定義,並將其映射到4皇后問題。
爲了從更一般的 透視回溯算法設計技術,最回溯算法符合下列 描述。
一個回溯算法的輸出可被認爲是n元組 (X1,X2,X3,...,xn)映射,其中每個座標xi是一些 有限線性有序集Si的元素。例如,對於n皇后 問題,每個Si是整數1到n的集合。元組可能需要滿足一些額外的約束條件(例如,在n皇后問題中的非攻擊性需求)。
例如,對於4王后問題每個Si的集合{1,2,3,4}
甲反向跟蹤算法生成顯式或implicityly,一個 狀態空間樹,其節點代表部分構造元組 具有由 算法的早期動作定義的第一個「i」座標。如果這樣的元組(x1,x2,x3,... xi)不是解,則算法找出Si + 1中與(x1,x2,x3 ... xi)的值 一致的下一個元素,和問題約束,並將其作爲其(i + 1)st座標添加到元組中。如果這樣的元素不存在,算法回溯考慮xi的下一個值,以及 等等。
我上面的文字問題是
什麼是筆者的「背跟蹤算法生成明示或implicityly,狀態空間樹,它的節點代表部分地與第一構造元組的意思如果這樣一個元組(x1,x2,x3,... xi)不是一個解,那麼算法會在Si + 1中找到下一個元素 ,它與(x1,x2,x3 ... xi)的值以及問題約束,並將其作爲第(i + 1)個座標添加到元組中。「 ?
具體來說,算法作者所指的是Si + 1中的下一個元素?
請用四皇后問題解釋上述說法。
如果元素不存在,算法回溯到考慮xi的下一個值?請用4皇后問題來解釋這個問題。
謝謝!