您的位置:首页 > 其它

JMetal使用小记

2016-01-01 02:55 363 查看
为了接下来在做MOEA算法对比的时候更加遍历,使用一个集成的可以更方便的评价算法的平台是非常有必要的,要么自己去写,要么用现成的,各有各的好处,如今我选择了JMetal,选择他主要基于我对Java比较熟悉,能够看懂和修改代码,其实这个玩意很简单,仔细一看他的结构就知道,并且还给了足够的manual来阐述如何使用,非常方便。如果只是跑一个实验,比如跑NSGAII在3个目标的DTLZ1问题上,那么这个就更简单了,今天我想说的是,比如我想使用NSGAII来跑DTLZ1的3,4,5,10,20等这些目标的结果,那么怎么办?其实在NSGAIIStudy的例子中可以看出来了,能够修改一下就可以用,主要修改的地方在:

algorithm[i] = new NSGAII_Settings(problemName).configure(parameters[i]);

这个代码的地方,是生成一个NSGAII_Settings的类,然后调用configure的方法返回一个algorithm。其实在初始化NSGAII_Setting的时候,就包含了对problem的定义,这个时候只传入了problem的名字,比如我传入的是DTLZ1,那么就使用DTLZ1,而目标数量是用的默认的3,那么如果我想改怎么办?很easy,打开这个NSGAII_Setting方法,加入一个构造函数,就好了

public NSGAII_Settings(String problem, int numberOfVariables, int numberOfObjectives)

以上就可以了。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: