注:原论文使用的是DE,我这里用的是GA\EO的一些思想取替换DE,GA与DE原理一样,因此不影响
GitHub链接:https://github.com/425776024/MOEAD
不过自己实现中发现,坑点至少有2个:
1.如何生成均匀权向量,这个在Mean_Vector_Utils.py文件中已经实现,可以直接用,大致是用一个拔插法的思想,我的另一个帖子也说了下怎么生成的一个效果:MOEAD算法中均匀权向量的实现—Python。
2.如何产生下一代解y,这个处理的不好几乎做不到论文中那样完美的Pareto前沿面效果,论文中也只是说了一句话:产生新解o(╥﹏╥)o,我这里用了当目标优化的遗传GA加极值优化EO产生下一代,效果尚可,2个30维函数的目标联合优化,只需要100代,1-2秒钟左右即可找到较完美的解,3目标的DTLZ1的pareto前沿形状找的很完美,但是解还是差太多,可是是哪里出了问题。持续改进中。
代码结构:
problem:求解问题函数目录
vector_csv_file:求解问题的均匀权向量生成目录
ZDT1:
ZDT2:
ZDT4: