Jmetal 4+ 使用指南三 使用Jmetal进行试验

Jmetal 4+ 使用指南三

使用Jmetal进行试验

Experimentation with jMetal

觉得有用的话,欢迎一起讨论相互学习~

我的微博我的github我的B站

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

链接如下

Jmetal 4+ 使用指南一

Jmetal 4+ 使用指南二

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

NSGA-II入门

​多目标优化拥挤距离计算

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

  • 在我们的研究工作中,当我们要评估多目标元启发式算法的性能时,通常会将其与其他算法进行一系列基准问题benchmark problems 的比较。 选择要应用的测试套件test suit和质量指标quality indicator后,我们对每个实验进行了多次独立运行,然后我们分析了结果
  1. 使用相关的Setting对象对算法的参数进行设置。
  2. 对问题进行设置,例如:DTLZ问题默认是3个目标,WGF问题默认是两个目标,如果想要更改这些设定,就要改变设定。
  3. 执行一系列的独立实验
  4. 分析数据,JMetal可以设置Latex 表格和R语句来表示结果和统计信息。
  • 要执行这些步骤,我们使用从jMetal 2.0中第一次引入的jmetal.experiments包,本章主要致力于解释这个包的用法。
    • 首先,我们描述jmetal.experiments.Settings类的结构以及如何将其用于配置NSGA-II。
    • 然后,我们分析jmetal.experiments.Main类。
    • 最后,我们用两个示例说明jmetal.experiments.Experiment类的用法。

The jmetal.experiments.Settings Class

  • 引入experiments包的初衷是因为在传统方法中一般使用main方法对算法进行调用,例如使用NSGA-II_main class 中的main函数。如果想使用不同的参数,则需要每次在运行的时候进行修改。这很麻烦,我们想要使用更简单的方法重用这些设置。
  • 为解决此问题,我们采用了另一种方法来定义类中的元启发式方法的配置,该类将包含默认设置并允许对其进行修改。 清单4.1包含jmetal.experiment.Settings类的代码。 该类的主要特点是:

  • 通过Problem 对象,problem name对象,true Pareto Front 对象对Settings类进行设置。
  • 可以使用构造函数的方法(第22-24行),也可以使用setProblem()的方法单独进行设置。(第51-52行)
  • 第31行留了一个configure()虚类,可以在Settings的子类中进行实现
  • 第36行使Setting类可以使用HashMap的方式传递算法的超参。

An example of Setting class: NSGA-II

  • 以jmetal.experiments.settings包中NSGAII Settings类作为例子来说明Setting类的使用,
NSGAII Settings类的初衷
  • 初衷特别简单,就是想要去掉NSGA-II_main类中的参数设置,其他的算法也一样,通过Setting的方式,去掉main类中的参数设置。

结构

  • 第20-37行是构造函数,将参数用于构造这个类。
  • 我们强制要求参数必须为public,并且其名称必须以下划线_结尾。

实现Settings虚类中 configure()虚类

  • 以下实现了在NSGAII中的参数配置,可以发现,基本上和NSGA-II_main 中参数设置的代码相同。
  • 为了修改特定的参数,我们使用Java HashMap对象。 该映射由对(键,值)组成,其中键和值是字符串。 这个想法是,在 Setting 的子类中定义的状态变量将用作属性对象中的键。 如前所述,这些变量必须是Public变量,并且其标识符必须以下划线 _ 字符结尾。

通过HashMap修改算法参数

  • 下图中简要介绍了使用HashMap修改NSGA-II算法的参数的示例

The jmetal.experiments.Main class

  • 关于Main class 的使用和Jmetal 4+ 使用指南二基本相同,唯一区别在于需要事先指定算法 如NSGA-II
  • 可以传入一个参数, NSGA-II(算法名)
  • 两个参数 NSGA-II (算法名)+ problem name (benchmark name)
  • 三个参数 NSGA-II (s算法名) + problem name (benchmark name) + True PF 只有这种情况可以计算各种指标 IGD GD HV

使用IDEA传入参数

  • 算法 + benchmark name + True PF
  • NSGAII ZDT3 "C:\Users\HP\Desktop\ZDT3.pf"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值