之前完成了导入JMetal到自己的工程这一步。
在开始我们研究的问题之前,我们先对JMetal的源代码一个全局的认识。
JMetal很好地利用了面向对象的特性,对所有的优化问题做了高度的抽象,建议有空认真阅读源代码。core 中的类是整个JMetal的基础类,非常重要。比如,所有的算法都继承于的Algorithm类。
encodings 是编码的方法,就是启发式算法中的各种解的表示方法。
experiments 这里面给出利用JMetal做实验的一些示例代码。
metaheuristics里面包含了各种最新的优化算法的实现,可以非常方便地做对照实验。
operators 是优化算法里面的各种操作,比如遗传算法需要交叉、变异、选择,也可以自定义操作。
problems 包括多目标的一些经典的问题,广泛应用于各种多目标论文中对照实验,比如WFG,DTLZ还收录了CEC2009的测试集。
qualityIndicator 里面是对各种解的一些质量评估的方法。包括Spread, Epsilon, HyperVolume这些经典的指标。
最后的util类,包含很多实用的算法类,比如求解向量的距离,排序等等,如果能够用上可以节约很多时间。
以后用到再更新。