このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
オプションと出力
デフォルトオプションで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コマンドラインでのオプションの設定
gaで利用可能なオプションのいずれかを指定するには、optionsをgaの入力引数として次の構文で渡します。
[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 が作成され、PopulationSize は 100 に設定されます。
今入力すると、
ga(@fitnessfun,nvars,[],[],[],[],[],[],[],options)
ga は、母集団サイズ 100 で遺伝的アルゴリズムを実行します。
その後、optionsの別のフィールドを変更する場合、例えば、PlotFcnを各世代における最適な適応度関数の値をプロットする@gaplotbestfに設定する場合、次の構文でoptimoptionsを呼び出します。
options = optimoptions(options,'PlotFcn',@plotbestf);これにより、PlotFcn を除く options のすべてのフィールドの現在の値が保持されます。PlotFcn は @plotbestf に変更されます。入力引数 options を省略すると、optimoptions によって PopulationSize がデフォルト値にリセットされることに注意してください。
PopulationSizeとPlotFcnの両方を1つのコマンドで設定することもできます
options = optimoptions('ga','PopulationSize',100,'PlotFcn',@plotbestf);
追加の出力引数
遺伝的アルゴリズムのパフォーマンスに関する詳細情報を取得するには、次の構文でgaを呼び出すことができます。
[x,fval,exitflag,output,population,scores] = ga(@fitnessfcn, nvars)
この関数は、x と fval に加えて、次の追加の出力引数を返します。
exitflag— アルゴリズムが終了した理由に対応する整数値output— 各世代におけるアルゴリズムのパフォーマンスに関する情報を含む構造体population— 最終母集団scores— 最終スコア
これらの引数の詳細については、ga リファレンス ページを参照してください。