主要内容

选项和输出

使用默认选项运行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.4385

在命令行中设置选项

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

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

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

您创建选项使用函数optimoptions

选项= optimoptions(@ga);

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

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

选项。PopulationSize
ans = '当numberOfVariables <= 5时为50,否则为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-算法终止原因对应的整数值

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

  • 人口-最终人口

  • 分数-最终比分

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

另请参阅

相关的话题