2024-10-06 13:51:41 发布
网友
我正在Matlab中进行多目标优化,并使用优化工具箱中的fiminimax。我想知道fminimax是否应用帕累托优化,如果没有,为什么?另外,你能推荐一个在Matlab或Python中使用Pareto的多目标优化包吗?在
fiminimax
fminimax
对于python,DEAP可能就是您要查找的对象。大量的documentation有很多真实的例子,还有一个非常有用的googlegroups论坛。它实现了两个健壮的MO算法:NSGA-II和SPEA-II。在
编辑(按要求)
我在硕士论文中使用了DEAP,所以我会告诉你我们是如何使用Pareto最优性的。设置DEAP非常简单,正如您将在示例中看到的那样。以this one为起点。这是short version,它使用内置的算法和运算符。阅读这两个,然后遵循这些指导原则。在
由于OneMax的例子是单目标的,所以它没有使用MO算法。但是,它们很容易实现:
return sum(individual), numpy.std(individual)
weights
1.0
halloffame
我希望这有帮助。考虑到还有一个完整的、更高级的NSGA2示例可用here。在
对于^{}和{a2},它看起来像answer is no。然而,遗传算法求解器^{},是基于Pareto集的,尽管我不确定它是否是您想要使用的multi-objective optimization function。gamultiobj实现NGSA-II进化算法。还有一个this package,它在C语言中用Matlab mex接口实现了强化帕累托进化算法2(SPEA-II)。它有点旧,所以你可能想重新编译它(如果你不在32位的Windows上,你无论如何都需要重新编译)。在
gamultiobj
mex
对于python,DEAP可能就是您要查找的对象。大量的documentation有很多真实的例子,还有一个非常有用的googlegroups论坛。它实现了两个健壮的MO算法:NSGA-II和SPEA-II。在
编辑(按要求)
我在硕士论文中使用了DEAP,所以我会告诉你我们是如何使用Pareto最优性的。设置DEAP非常简单,正如您将在示例中看到的那样。以this one为起点。这是short version,它使用内置的算法和运算符。阅读这两个,然后遵循这些指导原则。在
由于OneMax的例子是单目标的,所以它没有使用MO算法。但是,它们很容易实现:
return sum(individual), numpy.std(individual)
的方法就可以了。在weights
参数,使其与返回的n元组相匹配。正浮动意味着最大化,负浮动意味着最小化。您可以使用任何实数,但为了简单起见,我将坚持使用1.0
和{halloffame
参数从^{我希望这有帮助。考虑到还有一个完整的、更高级的NSGA2示例可用here。在
对于^{} 和{a2},它看起来像answer is no。然而,遗传算法求解器^{} ,是基于Pareto集的,尽管我不确定它是否是您想要使用的multi-objective optimization function。
gamultiobj
实现NGSA-II进化算法。还有一个this package,它在C语言中用Matlabmex
接口实现了强化帕累托进化算法2(SPEA-II)。它有点旧,所以你可能想重新编译它(如果你不在32位的Windows上,你无论如何都需要重新编译)。在相关问题 更多 >
编程相关推荐