1. 问题描述:
八皇后问题是由国际象棋棋手马克斯·贝瑟尔于1848年提出的问题,是回溯算法的典型案例。该问题表述为:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同行、同—列或向—斜线上,问有多少种摆法。而N皇后问题从八皇后问题衍生而来,棋盘的格数不再固定为8,而是可以取任意值,相应的求解难度也随着数据范围增大而迅速增加。
2. 问题初步分析与算法概要
N皇后问题可以分为两种问题:(1)需要求出N皇后问题的所有解 (2)只需求出一组解 。 其实,能求出所有解的算法几乎一定可以求出一组解,但是只能求一组可行解的算法不一定能求出所有解哦~
这里可能会出现许多陌生了名字,不过不用担心~ 下面会一一解释哒~
根据上面的框架,我们不难看出蛮力法、回溯法、试探-回溯法两种问题都适用,而随机法和遗传算法是求不出所有可行解的。