[toc]
graph TD
ga1[GA1 遗传算法类]
ga1out[GA1 的初始化方法]
bound[boundaryList 初始化种群的边界]
help[辅助类help 内含具体问题的适应度计算方法]
output[output,输出最终解方法]
generate[generate方法,决定了哪种GA]
update[updatePop,子代种群更新方法]
risk[Risk类,包含CPA计算方法]
ga1 --> ga1out
ga1 --> output
ga1 --> generate
generate --> update
ga1out --> bound
ga1out --> help
help --> risk
- 初始化种群
- 评估适应度函数
- 在达到结束条件之前
- 选择一定量的种群作为下一代的父代(根据适应度函数)
- 交叉操作
- 变异操作
- 更新种群
- 输出结果
- 根据边界列表初始化种群
- 在达到结束条件之前
- 通过交叉操作产生部分子代
- 通过变异操作产生部分子代
- 根据适应度函数更新和选择算子更新种群,恢复种群数目
- 输出结果
- 尽量减少成员变量的数目,增加基类的可扩展性
- 为每个个体设计结构体,提高程序可读性
- 初始化种群
- 评估适应度函数
- 在达到结束条件之前
- 非支配排序
- 拥挤度计算
- 选择操作
- 交叉操作
- 更新种群
- 输出结果
- 初始化种群,这里的种群结构体在基本结构体上增加了适应度列表,用于存放多目标适应度值,同时重写了计算适应度值的函数
- 为了方便程序的扩展性这里创建一个用于船舶避碰轨迹优化的辅助类
- 该扩展类包含了计算安全性,合规性以及经济性的适应度函数值的静态成员函数
- 在到达终止条件之前,执行:
- 交叉操作
- 变异操作
- 非支配排序
- 需要增加个体结构体的被支配数和支配集合成员变量
- 更新种群
- 拥挤度计算
直接设计成静态的