メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

オプションと出力

デフォルトオプションでgaを実行する

遺伝的アルゴリズムをデフォルトオプションで実行するには、次の構文でgaを呼び出します。

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

gaへの入力引数は

  • @fitnessfun —適応度関数を計算するファイルへの関数ハンドル。目的関数を計算する はこのファイルの書き込み方法を説明しています。

  • nvars —適応度関数の独立変数の数。

出力引数は

  • x — 最終ポイント

  • fvalxにおける適応度関数の値

追加の入力引数と出力引数の説明については、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

コマンドラインでのオプションの設定

gaで利用可能なオプションのいずれかを指定するには、optionsgaの入力引数として次の構文で渡します。

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

この構文では、線形等式、線形不等式、または非線形制約は指定されません。

関数 optimoptions を使用して options を作成します。

options = optimoptions(@ga);

これは、フィールドのデフォルト値を持つ options を返します。入力引数としてオプションを渡さない場合、ga はこれらのデフォルト値を使用します。

各オプションの値は、options.PopulationSize などの options フィールドに保存されます。options に続けてピリオドとフィールド名を入力すると、これらの値を表示できます。例えば、遺伝的アルゴリズムの母集団の大きさを表示するには、次のように入力します。

options.PopulationSize
ans =

'50 when numberOfVariables <= 5, else 200'

デフォルトとは異なるフィールド値を持つoptionsを作成するには、例えば、PopulationSizeをデフォルト値50ではなく100に設定するには、次のように入力します。

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

これにより、PopulationSize を除くすべての値がデフォルトに設定された options が作成され、PopulationSize100 に設定されます。

今入力すると、

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

ga は、母集団サイズ 100 で遺伝的アルゴリズムを実行します。

その後、optionsの別のフィールドを変更する場合、例えば、PlotFcnを各世代における最適な適応度関数の値をプロットする@gaplotbestfに設定する場合、次の構文でoptimoptionsを呼び出します。

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

これにより、PlotFcn を除く options のすべてのフィールドの現在の値が保持されます。PlotFcn@plotbestf に変更されます。入力引数 options を省略すると、optimoptions によって PopulationSize がデフォルト値にリセットされることに注意してください。

PopulationSizePlotFcnの両方を1つのコマンドで設定することもできます

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

追加の出力引数

遺伝的アルゴリズムのパフォーマンスに関する詳細情報を取得するには、次の構文でgaを呼び出すことができます。

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

この関数は、xfval に加えて、次の追加の出力引数を返します。

  • exitflag — アルゴリズムが終了した理由に対応する整数値

  • output — 各世代におけるアルゴリズムのパフォーマンスに関する情報を含む構造体

  • population — 最終母集団

  • scores — 最終スコア

これらの引数の詳細については、ga リファレンス ページを参照してください。

参考

トピック