系列文章目录
前情回顾
搜索算法——爬山算法
前言
提示:这里可以添加本文要记录的大概内容:
前文介绍了搜索算法中的爬山算法,这篇文章我们来看一下爬山法的具体应用——八皇后问题和八数码问题
提示:以下是本篇文章正文内容,下面案例可供参考
一、八皇后问题
问题描述
有一个8*8的棋盘,现在要将八个皇后放到棋盘上,要求满足:对于每一个皇后,在自己所在的行、列、两个对角线都没有其他皇后
求解——爬山法
搜索算法结题的过程,就是将问题转化为状态空间图,然后通过特定的遍历算法求出符合要求的解。关键在于状态的构造。
对于八皇后问题,我们将状态设置为皇后之间的碰撞度N。如果两个皇后之间不满足上面的规则,我们就说这一对皇后是冲突的。碰撞度N就是冲突的皇后对数。
图中为初始状态的摆放位置,一共有17对冲突的皇后,N=17
在达到合理的安放顺序之前,我们可以移动皇后,从而使得状态