【问题标题】:Optimisation with matlab - particleswarm / genetic algorithm使用matlab进行优化-particlewarm /遗传算法
【发布时间】:2020-06-10 01:12:42
【问题描述】:

我正在尝试使用粒子群/遗传算法来解决最大值问题。但是,该功能不断给我最小值。如何更改它以找到最大值。

我的简单代码如下:

options = optimoptions('particleswarm','Swarmsize',100);

[x2,fval2] = particleswarm(Rmodel.predictFcn,nvar,lb,ub,options);

Rmodel 是一个线性回归模型。我只是用它来测试。

【问题讨论】:

    标签: matlab optimization genetic-algorithm particle-swarm


    【解决方案1】:

    来自https://se.mathworks.com/help/gads/particleswarm.html

    x = particleswarm(fun,nvars) 试图找到一个向量x 实现 fun 的局部最小值。 nvars 是尺寸(设计数量 变量)的fun

    我无法访问全局优化工具箱来测试particlewarm 函数,但如果我理解正确,您只需要翻转函数,而不是寻找Rmodel.predictFcn 的最小值,而是寻找最小值-Rmodel.predictFcn(注意减号)。

    【讨论】:

    • 我以前试过这个,但它给了我未定义的一元运算符'-'用于'function_handle'类型的输入参数。
    【解决方案2】:

    没关系,我找到了。在matlab中,不能简单的使用-Rmodel.predictFcn。

    您需要定义一个函数处理程序。 例如 invPredict = @(x) -Rmodel.predictFcn(x)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-03
      • 1970-01-01
      • 2015-02-18
      • 2013-07-02
      • 2016-09-13
      • 2018-06-25
      相关资源
      最近更新 更多