このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
オプションと出力
デフォルトオプションで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
リファレンス ページを参照してください。