我已经按照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中实现这三个函数?
关于模型的背景信息:我需要优化的模型由三个可能的部分组成,这些人可能会或可能不会采用某种行为(一部分人刚刚了解了创新,一部分人打算使用创新,一部分人已经在使用创新)。采用基于时间和空间离散智能体的模型模拟了采用的扩散过程。
提前感谢您的帮助!
发布于 2018-07-22 21:50:01
可以将三个适应度函数定义为f(x1)、f(x2)和f(x3)。在您提供的代码中,作者定义了各种成本函数,如DifferentialEvolution.java文件中的schwefel问题。您需要根据您的目标为DE的每个个体计算三个适应值。因为你有多个目标,所以你应该计算你的3目标问题的帕累托最优。下面的链接可能会给你一些提示:
https://stackoverflow.com/questions/43843321
复制相似问题