主要内容

选择和输出

使用默认选项运行ga

要使用默认选项运行遗传算法,请调用遗传算法与语法

[x,fval] = ga(@fitnessfun, nvars)

的输入参数遗传算法

  • @fitnessfun-计算适应度函数的文件的函数句柄。计算目标函数解释如何写入此文件。

  • 据nvar-适应度函数的自变量个数。

输出参数为

  • x——最后一点

  • fval-适应度函数的值x

有关附加输入和输出参数的描述,请参见的参考页遗传算法

可以运行中描述的示例最小化Rastrigin的功能从命令行输入

rng (1,“旋风”%的再现性定义Rastrigin的函数Rastriginsfcn = @(pop)10.0 * size(pop,2) + sum(pop .^2 - 10.0*cos(2*pi.*pop),2);[x, fval] = ga (rastriginsfcn, 2)

这将返回

优化终止:适应度值的平均变化小于options.FunctionTolerance。X = -1.0421 -1.0018 fval = 2.4485

在命令行设置选项

您可以指定可用的任何选项遗传算法通过选项作为的输入参数遗传算法使用语法

[x, fval] = ga (@fitnessfun,据nvar ,[],[],[],[],[],[],[], 选项)

此语法不指定任何线性等式、线性不等式或非线性约束。

您创建选项使用函数optimoptions

选择= optimoptions (@ga);

这将返回选项使用其字段的默认值。遗传算法如果不将选项作为输入参数传入,则使用这些默认值。

每个选项的值存储在的字段中选项,如选项。PopulationSize.您可以通过输入显示这些值中的任何一个选项后跟一个句号和字段名。例如,要显示遗传算法的种群大小,输入

选项。PopulationSize
当numberOfVariables <= 5时ans = '50, else = 200'

创建选项与默认值不同的字段值,例如设置PopulationSizeOne hundred.而不是它的默认值50——输入

选择= optimoptions (“遗传算法”“PopulationSize”, 100);

这就产生了选项所有值都设置为默认值,除了PopulationSize,设置为One hundred.

如果你现在进入,

ga (@fitnessfun,据nvar ,[],[],[],[],[],[],[], 选项)

遗传算法运行遗传算法,种群大小为One hundred.

如果您随后决定更改另一个字段选项,如设置PlotFcn@gaplotbestf,绘制每代最佳适应度函数值,调用optimoptions与语法

选择= optimoptions(选项,“PlotFcn”, @plotbestf);

的所有字段的当前值选项除了PlotFcn,修改为@plotbestf.请注意,如果省略输入参数选项optimoptions重置PopulationSize设置为默认值。

您也可以设置两者PopulationSize而且PlotFcn只需一个命令

选择= optimoptions (“遗传算法”“PopulationSize”, 100,“PlotFcn”, @plotbestf);

额外的输出参数

要获得关于遗传算法性能的更多信息,您可以调用遗传算法与语法

[x,fval,exitflag,output,population,scores] = ga(@fitnessfcn, nvars)

除了x而且fval,这个函数返回以下附加的输出参数:

  • exitflag-算法终止原因对应的整型值

  • 输出-包含每一代算法性能信息的结构

  • 人口——最后的人口

  • 分数——最后的分数

看到遗传算法有关这些参数的更多信息参考页。

另请参阅

相关的话题

Baidu
map