遗传算法编程
解决如下问题:
m
a
x
F
(
x
)
=
x
⋅
sin
(
3
π
x
)
max\quad F(x)= x\cdot \sin (3\pi x)
maxF(x)=x⋅sin(3πx)
s
.
t
.
x
∈
[
−
1
,
2
]
s.t. \ x\in \left [-1,2 \right ]
s.t. x∈[−1,2]
前言
一个手动计算的遗传算法示例用以理解遗传算法全过程:手动模拟计算二元函数最大值。
遗传算法的基本步骤:在开始进行遗传算法之前需要定义编码方式、种群规模、迭代次数、选择策略、变异概率、交叉概率以及适应度函数等基本参数。实际编程过程中按步骤分多个子函数展开,大致流程为:定义基本参数—>基因编码——>种群初始化——>选择——>复制——>交叉重组——>变异——>解码—>更新种群—>选择——>···—>满足迭代次数—>得到最终结果。
Main
Initialization
Selection
Code
Crossover
Mutation
Decode
Result
选择基本参数不同优化结果不同;每次的优化结果都不同。
代码流程图
仅展示了核心代码的流程,对于输入输出及图形展示等部分未显示在此图中。