例2 八皇后问题
八皇后问题用一句话来描述,就是:找到所有在8*8的国际象棋棋盘上放置8枚皇后棋子并且满足任意两枚皇后不会互相攻击的方案
我们先来看一下国际象棋的棋盘:
棋盘是由8×8等于64个方格组成。棋子是放在方格中的,而不是像中国象棋或者围棋那样放在横线和纵线的交叉点上。上图中的棋子就是皇后,如果有其他棋子与皇后在同一行、同一列或者同一对角线(包含两个方向的对角线)上,都会被皇后攻击到。也就是上图中黑点表示出的位置
8皇后的要求是在棋盘上放置8枚皇后,并且互相不能攻击到。因为要求不能攻击到就意味着每一行和每一列都至多有一枚皇后,所以在棋盘上放置8枚皇后已经是皇后数量的上限
下面这张图展示了8皇后问题的一个解:
八皇后是这样一类的问题的典型:我们要解决一个问题,需要若干个步骤。每一个步骤都需要我们从若干个决策或者说是方向中选择一个来执行。一个步骤的选择结果会影响之后的步骤能做哪些决策。经过若干步骤之后,我们会到达一个终结状态。终结状态可能是成功解决了问题,那么我们发现了问题的一个解;也可能是没有解决问题,但是后面无路可走了,那么说明说我们之前做的决策有错误