一、爬山法
爬山法就是完全的贪心算法,每一步都选最优位置,可能只能得到局部最优解。本实验对普通爬山法进行了简单的优化,采用了传统爬山法的变种——随机重启爬山法,当爬山步数超过一定值时,会重新打乱棋盘,重新“爬山”。
- 适应度函数:冲突皇后的总对数
- “爬山”:每一步就是将棋盘的某一行的皇后移动到最优的位置,即该位置让冲突的皇后对数最少,即适应度函数值最小。
- “不断地爬山”: 循环对棋盘的每一行进行爬山直到该棋盘状态下适应度函数值为0。
爬山法基本算法框图如下:
核心代码实现如下:
爬山法就是完全的贪心算法,每一步都选最优位置,可能只能得到局部最优解。本实验对普通爬山法进行了简单的优化,采用了传统爬山法的变种——随机重启爬山法,当爬山步数超过一定值时,会重新打乱棋盘,重新“爬山”。
爬山法基本算法框图如下:
核心代码实现如下: