3

我已经按照https://github.com/skarjoko/differential-evolution/blob/master/Main.java上的说明安装了差分进化 (DE) 优化器,并且只需在 eclipse 中运行代码就可以很好地轻松让我优化示例函数。

现在我的问题是:在默认模式下,DE 只运行一个奇异函数的优化(例如 f(x1) = y1 ),只抛出一个函数的值。

我需要优化的模型包含三个函数(例如 f(x1) = y1, f(x2) = y2, f(x3) = y3) ),我需要为每个函数分别设置一个值。我应该如何继续在 DE 中实现这三个功能?

关于模型的背景信息:我需要优化的模型由可能采用或可能不采用某种行为的人的三个可能部分组成(刚刚了解创新的部分人、打算使用创新的人的部分和一小部分已经使用创新的人)。采用的扩散是在基于时间和空间离散代理的模型中模拟的。

预先感谢您的帮助!

4

1 回答 1

1

您可以定义三个适应度函数为 f(x1)、f(x2) 和 f(x3)。在您提供的代码中,作者在 DifferentialEvolution.java 文件中定义了各种成本函数,例如 schwefel 的问题。您需要根据您的目标计算每个 DE 个体的三个适应度值。由于您有多个目标,因此您应该计算三目标问题的帕累托最优。以下链接可能会给您一些提示:

https://github.com/jMetal/jMetal

https://github.com/chen0040/java-moea

于 2018-07-22T13:50:00.610 回答