【问题标题】:matlab GA optimization weird behaviormatlab GA优化奇怪的行为
【发布时间】:2017-11-25 22:54:43
【问题描述】:

我是优化工具箱的新用户,我从一个简单的示例开始。 我做了一个函数:

function [ output ] = testGA( input )
output = 2*input^2 + 4*input + 3;
end

这是我运行优化的脚本:

OptFun = @testGA;
numvars = 1;
[x fval] = ga(OptFun, numvars);

而且它完全找不到最小值:

x = -1.002
fval = 1

我错过了什么吗? 另外,我如何获取有关它执行的所有迭代的信息?

谢谢你, 圭多

【问题讨论】:

    标签: matlab optimization genetic-algorithm


    【解决方案1】:

    你定义的函数的最小值是-1,对应的函数值为1,所以我不会说“完全找不到最小值”。要了解迭代次数、最小化类型等,您可以通过以下方式使用 ga 的输出:

     [x,Fval,exitFlag,Output] = ga(OptFun, numvars)
    

    我建议您查看函数 ga https://fr.mathworks.com/help/gads/examples/genetic-algorithm-options.html 的文档,其中解释了算法的工作原理以及如何更改最小化参数。希望对您有所帮助!

    【讨论】:

    • 我是个白痴,我正在绘制一个不同的函数。哈哈。然而,输出函数并没有真正提供太多信息......我如何告诉 GA 进行特定的代数?一代规模有多大?我想控制这些设置...
    • Lol no pb,再次在fr.mathworks.com/help/gads/examples/… 的“修改停止条件”部分中,您可以找到如何控制默认为 100 的迭代次数。可以在函数 ga opts = optimoptions(opts,'MaxGenerations',150,'MaxStallGenerations', 100); 的选项中指定。在“指定人口选项”部分,您可以找到如何更改人口选项。祝你好运!
    猜你喜欢
    • 1970-01-01
    • 2010-11-16
    • 2012-08-17
    • 1970-01-01
    • 2015-04-15
    • 1970-01-01
    • 2019-01-01
    • 2021-02-17
    • 1970-01-01
    相关资源
    最近更新 更多