主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

选项和输出

使用默认选项运行 ga

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

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

ga 的输入参量是

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

  • nvars - 适应度函数的独立变量的数量。

输出参量为

  • x - 最终点

  • fval - x 处的适应度函数值

有关其他输入和输出参量的描述,请参阅 ga 的参考页。

您可以通过输入以下命令从命令行运行 最小化拉斯特里金函数 中描述的示例

rng(1,'twister') % For reproducibility
% Define Rastrigin's function
rastriginsfcn = @(pop)10.0 * size(pop,2) + sum(pop .^2 - 10.0*cos(2*pi.*pop),2);
[x,fval] = ga(rastriginsfcn,2)

这将返回

Optimization terminated:
 average change in the fitness value less than options.FunctionTolerance.

x =
   -1.0421   -1.0018

fval =
    2.4385

在命令行设置选项

您可以使用以下语法将 options 作为输入参量传递给 ga,从而指定 ga 可用的任何选项

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

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

您使用函数 optimoptions 创建 options

options = optimoptions(@ga);

这将返回 options 及其字段的默认值。如果您不传入选项作为输入参量,ga 将使用这些默认值。

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

options.PopulationSize
ans =

'50 when numberOfVariables <= 5, else 200'

要创建具有与默认值不同的字段值的 options(例如将 PopulationSize 设置为 100,而不是其默认值 50),请输入

options = optimoptions('ga','PopulationSize',100);

这将创建 options,其中除 PopulationSize 设置为 100 外,所有值均设置为默认值。

如果您现在输入,

ga(@fitnessfun,nvars,[],[],[],[],[],[],[],options)

ga 运行种群规模为 100 的遗传算法。

如果您随后决定更改 options 中的另一个字段,例如将 PlotFcn 设置为 @gaplotbestf,以绘制每一代的最佳适应度函数值,请使用以下语法调用 optimoptions

options = optimoptions(options,'PlotFcn',@plotbestf);

这将保留 options 的所有字段的当前值,但 PlotFcn 除外,因为它已更改为 @plotbestf。请注意,如果省略输入参量 optionsoptimoptions 会将 PopulationSize 重置为其默认值。

您还可以使用单个命令同时设置 PopulationSizePlotFcn

options = optimoptions('ga','PopulationSize',100,'PlotFcn',@plotbestf);

附加输出参量

要获取有关遗传算法性能的更多信息,可以使用以下语法调用 ga

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

除了 xfval 之外,此函数还返回以下附加输出参量:

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

  • output - 包含有关每代算法性能的信息的结构体

  • population - 最终种群

  • scores - 最终得分

有关这些参量的更多信息,请参阅 ga 参考页。

另请参阅

主题