起因
- 今天写了一个很大的bug
- 具体是,使用的框架
jmetal在初始化种群的时候没有将个体的变量保持在一定的范围内。于是我使用这种不太好的初始化解的方案生成了初始种群。例如第一维度需要控制在[0-1]之间,但是统一空间的范围在[-50.50]。 - 在评价这种有部分维度越界的种群后,我在未来的改进中意识到这个问题,于是再后来的代码将其约束到可行的范围内。
- 在生成子代解的时候需要从父代解即初始解中的评价函数中挑选好的个体。但是很明显,现在的个体表现是错误的。
bad ending
具体表现是重新评价初始解时得到的表现竟然不一样 ,很明显我忽略了曾经在评价后对解的决策空间进行过调整!
happy ending
- 解决方案就是,对于父代解集,要在调整好决策变量后再进行评价,要不然其中的目标函数,拥挤距离和邻居关系其实都是有问题的!!
本文参与
腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-26,如有侵权请联系
cloudcommunity@tencent.com 删除