首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Matlab的fminimax应用Pareto最优性吗?

Matlab的fminimax应用Pareto最优性吗?
EN

Stack Overflow用户
提问于 2013-11-04 19:47:18
回答 2查看 933关注 0票数 1

我在Matlab中进行多目标优化,并在优化工具箱中使用fiminimax。我想知道fminimax是否应用Pareto优化,如果没有,为什么?另外,你能建议一个在Matlab或Python中使用Pareto的多目标优化包吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-04 20:09:07

对于fminimaxfgoalattain,它看起来像答案是否定的。然而,遗传算法求解器gamultiobj是基于Pareto集的,尽管我不确定它是否是您想要使用的那种多目标优化函数gamultiobj实现了NGSA-II进化算法。还有一个这个包裹,它用Matlab mex接口在C中实现了增强的Pareto进化算法2(SPEA)。它有点老了,所以您可能想重新编译它(如果您不在Windows 32位上,无论如何都需要重新编译它)。

票数 0
EN

Stack Overflow用户

发布于 2014-05-31 17:30:10

对于python,德普可能是您正在寻找的对象。广泛的文档与许多现实生活的例子,和一个非常有用的谷歌团体论坛。它实现了两种鲁棒的MO算法:NSGA和SPEA.

编辑(应请求)

我在MSc论文中使用DEAP,所以我会让你知道我们是如何使用Pareto最优性的。设置DEAP是相当直截了当的,您将在示例中看到这一点。使用这一个作为起点。这是短版,它使用内置算法和运算符.阅读这两篇文章,然后遵循这些指导原则。

由于OneMax示例是单目标的,所以它不使用MO算法.但是,很容易实现它们:

  • 更改您的评估函数,以便它返回一个n元组和期望的分数。如果您也希望最小化标准偏差,那么类似于return sum(individual), numpy.std(individual)的东西就会起作用。
  • 另外,修改weights对象的base.Fitness参数,使其与返回的n元组匹配。正浮子意味着最大化,负浮点数表示最小化。您可以使用任何实数,但为了简单起见,我会坚持使用1.0-1.0
  • 将您的遗传操作符更改为cxSimulatedBinaryBounded()mutPolynomialBounded()selNSGA2(),分别用于交叉操作、突变操作和选择操作。这些是建议的方法,因为它们是由NSGA-II作者开发的。
  • 如果要在DEAP中使用嵌入式准备就绪算法之一,请选择MuPlusLambda()
  • 调用算法时,请记住将halloffame参数从HallOfFame()更改为ParetoFront()。这将返回所有非支配的个人,而不是最好的字典排序的“所有世代最好的个人”。然后,你可以解决你的帕累托阵线,如:加权和,自定义字典排序,等等。

我希望这能帮上忙。考虑到还有一个完整的、更高级的NSGA2示例可用这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19775809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档