一、算法说明
八皇后问题的描述:在8*8的棋盘内使 8 个皇后棋子无冲突地摆放。在国际象棋中,皇后的移动方式为横竖交叉的,所以在一个皇后的水平、竖直以及45° 的方向上都不能出现皇后。如下图:(使用特殊符号代替皇后)
——————————————————————————————————————————————————————————————————
二、算法分析
1、这里使用回溯法来解决这个问题,就是确定了解空间树的组织结构后,从开始结点(即根节点)开始,以深度优先的方式对整个解空间树进行搜索。
2、要使用回溯法求解八皇后问题首先要构建一颗解空间树,通过探索这棵解空间树来得到八皇后问题的一个解或多个解。如下图:
3、该解空间树为第一个皇后在第一个位置的摆法的解空间树,第一个皇后还有 7 中摆法。所以八皇后可以构建 8 棵解空间树。通过探索每棵解空间树,可以探索出第一个皇后布局之后的所有解。
4、通过上图,解空间树的第一个皇后在第一个位置时的结构。可以将第一个皇后看作根节点,该结点可以派生出 8 个结点,每个结点表示了第一个皇后位置不变的情况下第二个皇后可能出现的位置。可以看出第二层中第一个结点的摆放不符合问题的要求,这里以虚线画出,