このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
gaoptimset
(非推奨) 遺伝的アルゴリズムのオプション構造を作成する
gaoptimset
は推奨されません。代わりに optimoptions
を使用してください。詳細については、バージョン履歴を参照してください。
構文
説明
入力引数または出力引数のない gaoptimset
は、有効な値を含むオプションの完全なリストを表示します。通常、デフォルト値は括弧 {}
内に表示されます。
メモ
示されたデフォルト値は、すべての問題タイプに対するデフォルト値ではありません。更新されたリストについては、optimoptions('ga')
または optimoptions('gamultiobj')
を評価してください。
は options
= gaoptimset(Name,Value
)options
という名前の構造体を作成し、'Name1'
の値を Value1
に、'Name2'
の値を Value2
に設定するなどします。gaoptimset
は指定されていないオプションを []
に設定します。つまり、ソルバーはデフォルトのオプション値を使用します。オプション名は、名前を一意に定義するのに十分な先頭の文字のみを使用して指定できます。gaoptimset
はオプション名の大文字と小文字を無視します。たとえば、'Display'
、'display'
、'Disp'
は同等のオプション名です。
(入力引数なし) は、遺伝的アルゴリズムのオプションを含む options
= gaoptimsetoptions
という名前の構造体を作成します。この場合、gaoptimset
はすべてのオプション値を []
に設定し、デフォルト値を使用することを示します。
または options
= gaoptimset(@ga)
は、それぞれ options
= gaoptimset(@gamultiobj)ga
または gamultiobj
ソルバーの明示的なデフォルト値を持つオプションを含む options
構造を作成します。
は、指定されたオプションを指定された値に変更して、options
= gaoptimset(oldopts
,Name,Value
)oldopts
のコピーを作成します。
例
遺伝的アルゴリズムのオプションを表示
オプション構造内の ga
および gamultiobj
で使用可能なすべてのオプションを表示するには、入力引数または出力引数なしで gamultiobj
を実行します。
gaoptimset
PopulationType: [ 'bitstring' | 'custom' | {'doubleVector'} ] PopInitRange: [ matrix | {[-10;10]} ] PopulationSize: [ positive scalar ] EliteCount: [ positive scalar | {0.05*PopulationSize} ] CrossoverFraction: [ positive scalar | {0.8} ] ParetoFraction: [ positive scalar | {0.35} ] MigrationDirection: [ 'both' | {'forward'} ] MigrationInterval: [ positive scalar | {20} ] MigrationFraction: [ positive scalar | {0.2} ] Generations: [ positive scalar ] TimeLimit: [ positive scalar | {Inf} ] FitnessLimit: [ scalar | {-Inf} ] StallGenLimit: [ positive scalar ] StallTest: [ 'geometricWeighted' | {'averageChange'} ] StallTimeLimit: [ positive scalar | {Inf} ] TolFun: [ positive scalar ] TolCon: [ positive scalar | {1e-6} ] InitialPopulation: [ matrix | {[]} ] InitialScores: [ column vector | {[]} ] NonlinConAlgorithm: [ 'penalty' | {'auglag'} ] InitialPenalty: [ positive scalar | {10} ] PenaltyFactor: [ positive scalar | {100} ] CreationFcn: [ function_handle | @gacreationuniform | @gacreationlinearfeasible ] FitnessScalingFcn: [ function_handle | @fitscalingshiftlinear | @fitscalingprop | @fitscalingtop | {@fitscalingrank} ] SelectionFcn: [ function_handle | @selectionremainder | @selectionuniform | @selectionroulette | @selectiontournament | @selectionstochunif ] CrossoverFcn: [ function_handle | @crossoverheuristic | @crossoverintermediate | @crossoversinglepoint | @crossovertwopoint | @crossoverarithmetic | @crossoverscattered ] MutationFcn: [ function_handle | @mutationuniform | @mutationadaptfeasible | @mutationgaussian ] DistanceMeasureFcn: [ function_handle | {@distancecrowding} ] HybridFcn: [ @fminsearch | @patternsearch | @fminunc | @fmincon | {[]} ] Display: [ 'off' | 'iter' | 'diagnose' | {'final'} ] OutputFcns: [ function_handle | {[]} ] PlotFcns: [ function_handle | @gaplotbestf | @gaplotbestindiv | @gaplotdistance | @gaplotexpectation | @gaplotgenealogy | @gaplotselection | @gaplotrange | @gaplotscorediversity | @gaplotscores | @gaplotstopping | @gaplotmaxconstr | @gaplotrankhist | @gaplotpareto | @gaplotspread | @gaplotparetodistance |{[]} ] PlotInterval: [ positive scalar | {1} ] Vectorized: [ 'on' | {'off'} ] UseParallel: [ logical scalar | true | {false} ]
デフォルト以外の遺伝的アルゴリズムオプションを設定する
ga
のオプションを設定して、ポイント [1,1]
を含む開始集団を持ち、gaplotbestf
プロット関数を使用します。
options = gaoptimset('InitialPopulation',[1 1],... 'PlotFcns',@gaplotbestf);
指定されたオプションを使用して、この例を実行するときに使用できる関数 rastriginsfcn
の局所最小値を見つけます。
rng default % For reproducibility nvar = 2; A = []; b = []; Aeq = []; beq = []; lb = []; ub = []; nlconst = []; [x,fval] = ga(@rastriginsfcn,nvar,A,b,Aeq,beq,lb,ub,nlconst,options)
ga stopped because the average change in the fitness value is less than options.FunctionTolerance.
x = 1×2
0.0227 0.0656
fval = 0.9442
デフォルトの ga
オプションを作成する
gaoptimset
を使用して、値をデフォルトに設定して ga
のオプション構造を作成します。
options = gaoptimset(@ga)
options = struct with fields:
PopulationType: 'doubleVector'
PopInitRange: []
PopulationSize: '50 when numberOfVariables <= 5, else 200'
EliteCount: '0.05*PopulationSize'
CrossoverFraction: 0.8000
ParetoFraction: []
MigrationDirection: 'forward'
MigrationInterval: 20
MigrationFraction: 0.2000
Generations: '100*numberOfVariables'
TimeLimit: Inf
FitnessLimit: -Inf
StallGenLimit: 50
StallTest: 'averageChange'
StallTimeLimit: Inf
TolFun: 1.0000e-06
TolCon: 1.0000e-03
InitialPopulation: []
InitialScores: []
NonlinConAlgorithm: 'auglag'
InitialPenalty: 10
PenaltyFactor: 100
PlotInterval: 1
CreationFcn: []
FitnessScalingFcn: @fitscalingrank
SelectionFcn: []
CrossoverFcn: []
MutationFcn: []
DistanceMeasureFcn: []
HybridFcn: []
Display: 'final'
PlotFcns: []
OutputFcns: []
Vectorized: 'off'
IntegerTolerance: 1.0000e-05
UseParallel: 0
遺伝的アルゴリズムのオプションを変更する
反復表示を返す遺伝的アルゴリズム オプションを作成します。
oldopts = gaoptimset('Display','iter');
oldopts
を変更して、gaplotbestf
プロット関数と人口サイズ 250 を含めます。
options = gaoptimset(oldopts,'PlotFcns',@gaplotbestf,... 'PopulationSize',250)
options = struct with fields:
PopulationType: []
PopInitRange: []
PopulationSize: 250
EliteCount: []
CrossoverFraction: []
ParetoFraction: []
MigrationDirection: []
MigrationInterval: []
MigrationFraction: []
Generations: []
TimeLimit: []
FitnessLimit: []
StallGenLimit: []
StallTest: []
StallTimeLimit: []
TolFun: []
TolCon: []
InitialPopulation: []
InitialScores: []
NonlinConAlgorithm: []
InitialPenalty: []
PenaltyFactor: []
PlotInterval: []
CreationFcn: []
FitnessScalingFcn: []
SelectionFcn: []
CrossoverFcn: []
MutationFcn: []
DistanceMeasureFcn: []
HybridFcn: []
Display: 'iter'
PlotFcns: @gaplotbestf
OutputFcns: []
Vectorized: []
IntegerTolerance: []
UseParallel: []
遺伝的アルゴリズムのオプションを組み合わせる
遺伝的アルゴリズムのオプション セット oldopts
と newopts
を 2 つ作成します。反復表示と oldopts
の gaplotbestf
プロット関数を指定します。newopts
に表示なし、人口サイズ 300 を指定します。
oldopts = gaoptimset('Display','iter','PlotFcns',@gaplotbestf); newopts = gaoptimset('Display','off','PopulationSize',300);
これらのオプションを組み合わせると、newopts
が優先されます。
options = gaoptimset(oldopts,newopts)
options = struct with fields:
PopulationType: []
PopInitRange: []
PopulationSize: 300
EliteCount: []
CrossoverFraction: []
ParetoFraction: []
MigrationDirection: []
MigrationInterval: []
MigrationFraction: []
Generations: []
TimeLimit: []
FitnessLimit: []
StallGenLimit: []
StallTest: []
StallTimeLimit: []
TolFun: []
TolCon: []
InitialPopulation: []
InitialScores: []
NonlinConAlgorithm: []
InitialPenalty: []
PenaltyFactor: []
PlotInterval: []
CreationFcn: []
FitnessScalingFcn: []
SelectionFcn: []
CrossoverFcn: []
MutationFcn: []
DistanceMeasureFcn: []
HybridFcn: []
Display: 'off'
PlotFcns: @gaplotbestf
OutputFcns: []
Vectorized: []
IntegerTolerance: []
UseParallel: []
Display
オプションの値は newopts
で指定された値であることに注意してください。
入力引数
oldopts
— 最適化オプション
構造体
gaoptimset
の出力などの構造体として指定される最適化オプション。
データ型: struct
newopts
— 最適化オプション
構造体
gaoptimset
の出力などの構造体として指定される最適化オプション。空でない値を持つ newopts
のオプションは、次の構文で oldopts
の対応するオプションを上書きします。
options = gaoptimset(oldopts,newopts)
データ型: struct
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: options = gaoptimset('Display','off','PlotFcns',@gaplotbestf)
gaoptimset
は構造を作成します。次のオプション名の表では、指定されている場合は、説明の下部にある「オプション構造の場合」という語句の後の名前を使用します。最初にリストされている名前 (オプション) は optimoptions
関数であり、オプションを設定するための推奨関数です。たとえば、optimoptions
の非線形制約違反の許容値を指定するには 'ConstraintTolerance'
を設定しますが、gaoptimset
の場合は 'TolCon'
を設定します。
次の表では、
中括弧
{}
内の値はデフォルト値を示します。{}*
は、問題に線形制約があり、MutationFcn
に境界がある場合のデフォルトを表します。I* は、
ga
が整数制約のオプションを異なる方法で処理することを示します。この表記はgamultiobj
には適用されません。NM は、オプションが
gamultiobj
には適用されないことを示します。
optimoptions
は、斜体 でリストされているオプションを非表示にします。optimoptions で非表示になっているオプション を参照してください。
ga
と gamultiobj
のオプション
オプション | 説明 | 値 |
---|---|---|
ConstraintTolerance | 非線形制約に関する実現可能性を決定します。また、 オプション構造の場合は、 | 非負のスカラー | |
| 初期集団を作成する関数。組み込み作成関数または関数ハンドルの名前として指定します。人口オプションを参照してください。 |
|
| アルゴリズムが交差子を作成するために使用する関数。組み込みクロスオーバー関数または関数ハンドルの名前として指定します。クロスオーバーオプションを参照してください。 |
|
| 交差関数によって生成される、エリートの子供を除く次世代の人口の割合。 | 非負のスカラー | |
| 表示レベル。 |
|
| 個体間の距離の尺度を計算する関数。組み込みの距離測定関数または関数ハンドルの名前として指定します。値は、決定変数または設計空間 (遺伝子型) または機能空間 (表現型) に適用されます。デフォルトの オプション構造体の場合は、名前ではなく関数ハンドルを使用します。 |
|
| NM 現在の世代の何個体が次の世代まで生き残ることが保証されているかを指定する正の整数。 | 非負整数 | |
| NM 適合関数が | スカラー | |
| 適応度関数の値をスケーリングする関数。組み込みスケーリング関数または関数ハンドルの名前として指定します。 |
|
FunctionTolerance |
オプション構造の場合は、 | 非負のスカラー | |
| I* または、ハイブリッド関数とそのオプションを指定するセル配列。ga ハイブリッド機能を参照してください。
問題に整数制約がある場合は、ハイブリッド関数は使用できません。 ハイブリッド関数を使用する場合を参照してください。 | 関数名またはハンドル | または 1行2列のセル配列 | |
InitialPenalty | NM I* ペナルティパラメータの初期値 | 正のスカラー | |
| 遺伝的アルゴリズムのシードに使用される初期集団。最大 オプション構造の場合は、 | マトリックス | |
| 初期集団内の個体の範囲を指定する行列またはベクトル。 オプション構造の場合は、 | 行列またはベクトル | |
| 適応度を判断するために使用される初期スコア。最大 オプション構造の場合は、 | 単一目的の列ベクトル | 多目的の行列 | |
| アルゴリズムが停止するまでの最大反復回数。 オプション構造の場合は、 | 非負整数 | |
|
オプション構造の場合は、 | 非負の整数 | |
| NM オプション構造の場合は、 | 正のスカラー |
| アルゴリズムは、 オプション構造の場合は、 | 非負のスカラー | |
MigrationDirection | 移行の方向。移行オプションを参照してください。 |
|
MigrationFraction | 各サブ集団内で別のサブ集団に移動する個体の割合を指定する 0 から 1 までのスカラー。移行オプションを参照してください。 | スカラー | |
MigrationInterval | 個体がサブポピュレーション間で移動する間に発生する世代数を指定する正の整数。移行オプションを参照してください。 | 正の整数 | |
| 突然変異の子を生成する関数。組み込みのミューテーション関数または関数ハンドルの名前として指定します。突然変異のオプションを参照してください。 | 制約なしの |
| 非線形制約アルゴリズム。遺伝的アルゴリズムのための非線形制約ソルバーアルゴリズムを参照してください。 オプション構造の場合は、 |
|
|
オプション構造の場合は、 | 関数ハンドルまたは関数ハンドルのセル配列 | |
|
| スカラー | |
PenaltyFactor | NM I* ペナルティ更新パラメータ。 | 正のスカラー | |
| アルゴリズムによって計算されたデータをプロットする関数。組み込みのプロット関数の名前、関数ハンドル、または組み込みの名前または関数ハンドルのセル配列として指定します。プロット オプションを参照してください。 オプション構造の場合は、 |
|
PlotInterval | プロット関数の連続呼び出し間の世代数を指定する正の整数。 | 正の整数 | |
| 人口の規模。 | 正の整数 | |
| 人口のデータ型。混合整数問題の場合は |
|
| 交差および突然変異の子の親を選択する関数。組み込み選択関数または関数ハンドルの名前として指定します。
|
|
StallTest | NM テストタイプを停止します。 |
|
UseParallel | 適応度と非線形制約関数を並列に計算します。ベクトル化と並列化オプション (ユーザー関数評価)およびGlobal Optimization Toolbox で並列処理を使用する方法を参照してください。 |
|
| 関数がベクトル化されるかどうかを指定します。ベクトル化と並列化オプション (ユーザー関数評価)および適応度関数をベクトル化するを参照してください。 オプション構造の場合は、値 |
|
出力引数
options
— 最適化オプション
構造体
最適化オプション。構造体として返されます。
バージョン履歴
R2006a より前に導入R2018b: gaoptimset
は非推奨
オプションを設定する場合、gaoptimset
、psoptimset
、および saoptimset
関数は推奨されません。代わりに optimoptions
を使用してください。
optimoptions
と他の関数を使用する場合の主な違いは、 optimoptions
の最初の引数としてソルバー名を含めることです。たとえば、ga
で反復表示を設定するには、次のようにします。
options = optimoptions('ga','Display','iter'); % instead of options = gaoptimset('Display','iter');
その他の違いは、一部のオプション名が変更されたことです。optimoptions
では古い名前を引き続き使用できます。詳細については、R2016a のオプションの変更 を参照してください。
optimoptions
は他の関数に比べて次のような利点があります:
optimoptions
は、特にライブ エディターで、より優れた自動コード提案と補完を提供します。さまざまな関数の代わりに、単一のオプション設定関数を使用できます。
現時点では、gaoptimset
、psoptimset
、saoptimset
を削除する予定はありません。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)