【问题标题】:reflection and symmetry in back tracking queens回溯皇后中的反射和对称性
【发布时间】:2014-11-24 08:04:32
【问题描述】:

我正在阅读 Anany Levition 的算法设计和分析简介中的回溯算法。

以下是我所指的页面。

http://books.google.co.in/books?id=mXA_r6mb-s8C&pg=PA399&lpg=PA399&dq=there+are+several+tricks+that+might+reduce+the+size+of+state-space+tree&source=bl&ots=hMb30M4m_2&sig=2ZIT49KTcztgBAVizbssfjYH_Yk&hl=en&sa=X&ei=OeNyVK-CE8fnuQTdnYCACw&ved=0CBwQ6AEwAA#v=onepage&q=there%20are%20several%20tricks%20that%20might%20reduce%20the%20size%20of%20state-space%20tree&f=false

这里作者提到如下。

有几个技巧可能有助于减小状态空间树的大小。一是利用组合问题中经常出现的对称性。例如,n-queens 问题的棋盘有几个对称性,因此可以通过反射或旋转从其他解中获得一些解。这意味着,特别是,我们不需要考虑第一个皇后在最后一层(n/2)列中的放置,因为第一个皇后在正方形(1,i)中的任何解决方案,天花板(n/2)

我对上述文字的问题是

  1. 作者利用组合问题中经常出现的对称性是什么意思?

  2. 作者在上述上下文中所说的反射是什么意思?

  3. 在上面给出的示例中,作者所说的以下语句是什么意思“我们不需要考虑第一个皇后在最后一层 (n/2) 列中的位置,因为第一个皇后在正方形 (1, i), 上限(n/2)

【问题讨论】:

  • 这意味着在 (1,8) 有一个皇后的棋盘与在 (8,1) 有一个皇后的棋盘是对称的,你不需要探索这两种解决方案.
  • @amit 请求详细说明

标签: algorithm backtracking n-queens


【解决方案1】:

我将尝试通过示例回答问题的简化变体,这是相同的皇后问题,但在 4x4 板上。

问题的一种可能解决方案是 (1,2), (2,4), (3,1),(4,3)

_  _  Q  _
Q  _  _  _ 
_  _  _  Q
_  Q  _  _

另一种解是(2,1), (4,2), (1,3), (4,3):

_  Q  _  _
_  _  _  Q
Q  _  _  _
_  _  Q  _

但是,通过生成一个解决方案,我可以立即创建另一个解决方案,无需继续搜索,只需遍历女王的坐标。

同样的事情反过来说。如果我发现没有以皇后开头的解决方案(1,1), (2,1), (_,_), (_,_)

Q  Q  _  _
_  _  _  _
_  _  _  _
_  _  _  _

我也可以预先修剪所有以皇后 (1,1),(1,2),(_,_),(_,_) 开头的解决方案:

Q  _  _  _
Q  _  _  _
_  _  _  _
_  _  _  _

利用这个问题的对称属性,每当我回溯并修剪一个不成功的分支时,我实际上也可以与他一起修剪其他对称分支。

【讨论】:

  • 感谢您的详细解释。但是我很难理解上述 n=4 的概括。这里作者提到我们不需要考虑第一个皇后在最后一层(n / 2)列中的位置,即在这个例子中n = 4,即3和4,因为任何第一个皇后在正方形的解决方案(1 ,i), celing(n/2)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-27
  • 2013-02-02
  • 2020-07-04
  • 2020-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多