文章目录

  • ​​1 基本概念​​
  • ​​2 基本步骤​​
  • ​​3 流程图​​
  • ​​4 遗传编码​​
  • ​​5 适应度函数​​
  • ​​6 基本遗传操作​​
  • ​​7 示例​​

1 基本概念

4 遗传算法(11.2)_遗传算法


2 基本步骤

4 遗传算法(11.2)_人工智能_02


3 流程图

4 遗传算法(11.2)_遗传算法_03


4 遗传编码

常用的遗传编码算法有二进制编码、实数编码和字符编码等。

4 遗传算法(11.2)_遗传算法_04


4 遗传算法(11.2)_遗传算法_05

示例:在八皇后问题中,个体可由一个【长度为8,各个位置是从1到8】的串表示,每个数字代表了在8列棋盘中皇后的摆放的【行】位置。如下:

4 遗传算法(11.2)_AI_06


5 适应度函数

一般要求适应度函数非负。

4 遗传算法(11.2)_八皇后问题_07


4 遗传算法(11.2)_遗传算法_08


4 遗传算法(11.2)_遗传算法_09


4 遗传算法(11.2)_八皇后问题_10


示例:八皇后问题

在适应度函数中,更好状态值的适应度函数值更大。在八皇后问题中,可以规定适应度函数为不攻击的皇后的对数。所以问题的最优解的适应度值为28。

4 遗传算法(11.2)_AI_11


可以这么算:

7 + 6 + 5 + 4 + 3 + 2 + 1 = 28

[ 8 * (8 - 1)] / 2 = 28


6 基本遗传操作

4 遗传算法(11.2)_遗传算法_12


4 遗传算法(11.2)_遗传操作_13


4 遗传算法(11.2)_八皇后问题_14


4 遗传算法(11.2)_人工智能_15


4 遗传算法(11.2)_八皇后问题_16


4 遗传算法(11.2)_遗传操作_17


4 遗传算法(11.2)_遗传算法_18


4 遗传算法(11.2)_遗传算法_19


4 遗传算法(11.2)_遗传操作_20


示例:八皇后问题中,假设当前四个状态值为24、23、20、11。在遗传算法中,被选到的用来生成后代的个体的概率直接与适应度函数值大小挂钩,在原始数据之后的数字是每个个体的适应度值占总适应度和的百分比。如下:

4 遗传算法(11.2)_AI_21


4 遗传算法(11.2)_遗传操作_22


7 示例

4 遗传算法(11.2)_人工智能_23

4 遗传算法(11.2)_AI_24

4 遗传算法(11.2)_八皇后问题_25


4 遗传算法(11.2)_AI_26


4 遗传算法(11.2)_遗传算法_27


4 遗传算法(11.2)_遗传算法_28


4 遗传算法(11.2)_AI_29


4 遗传算法(11.2)_AI_30


4 遗传算法(11.2)_AI_31


4 遗传算法(11.2)_八皇后问题_32


END