Jmetal 4+ 使用指南五 使用Jmetal进行试验-Running the experiments

2021-05-10 16:03:55 浏览数 (1)

Experimentation with jMetal

本文以Jmetal官网文档为基础,结合自身理解

链接如下

Jmetal 4 使用指南一

Jmetal 4 使用指南二

Jmetal 4 使用指南三

Jmetal 4 使用指南四

  • 如果你还不了解NSGA-II可以参考

NSGA-II入门

多目标优化拥挤距离计算

多目标优化按支配关系分层实现

Running the experiments

  • 使用IDEA运行NSGAIIStudy.java文件
  • 此时会生成如下的文件夹以及内容
  • 其中data中包含有各种算法得到的原始数据,包括各种指标,每次运行得到的决策变量值和目标函数值
  • 其中各种tex文件可以使用WinEdit打开,运行即可Ctex安装与运行Ctex入门指南笔记 列表、表格、公式与图片

R脚本的运行

需要安装R语言和Rstudio

  • 运行以下语句即可
代码语言:javascript复制
Rscript ZDT.HV.Boxlplot.R
Rscript ZDT.HV.Wilcox.R
Rscript ZDT.EPSILON.Boxplot.R
Rscript ZDT.EPSILON.Wilcox.R

注意绝对路径的使用

exp.experimentBaseDirectory_ 务必使用绝对路径

这是因为相对地址在我目前的环境下win10 R下读不出来,因此此处换成绝对地址。在java环境中这种写法是正确的的,但是在R语言的环境中,这是有错误的 有两个地方

代码语言:javascript复制
write("", "./log/NSGAIIStudy/R/Problems.SPSILON.Wilcox.tex",append=FALSE)
resultDirectory<-"./log/NSGAIIStudy/data"

一个是上面的tex文件的地址,一个是下面的resultDirectory 而在Jmetal4 的code中:

  • "./log/NSGAIIStudy/R/Problems.SPSILON.Wilcox.tex" 对应着jmetal/experiments/util/RWilcoxon.java中的texFile 而String texFile = rDirectory "/" prefix "." experiment.indicatorList_[indicator] ".Wilcox.tex";因此,需要更改rDirectoryrDirectory = experiment.experimentBaseDirectory_ "/" rDirectory;因此,需要更改experiment.experimentBaseDirectory_experiment.experimentBaseDirectory_是在NSGAIIStudy中赋的值,因此在NSGAIIStudy中,应该修改 exp.experimentBaseDirectory_ = "./log/" exp.experimentName_;为绝对路径,而不是相对路径。此处修改为我本机的绝对路径exp.experimentBaseDirectory_ = "D:/Code/Coding/Constrained multiobjective/jmetal4.5.2/log/" exp.experimentName_;
  • 使用Rstudio打开Problems.EPSILON.Wilcox.R,并在Terminal中输入语句Rscript Problems.EPSILON.Wilcox.R
  • 则此时文件夹下出现同名的tex文件,使用WinEdit即可进行编译
  • 结果发现SBX中的交叉概率对NSGAII算法的性能没有明显性的影响。

0 人点赞