このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
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
gaoptimset を使用して、値がデフォルトに設定された ga のオプション構造を作成します。
options = gaoptimset(@ga)
options = struct with fields:
PopulationType: 'doubleVector'
PopInitRange: []
PopulationSize: 'auto'
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 で指定された値であることに注意してください。
入力引数
gaoptimset の出力などの構造体として指定される最適化オプション。
データ型: struct
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 で並列処理を使用する方法を参照してください。 |
|
| 関数がベクトル化されるかどうかを指定します。ベクトル化と並列化オプション(ユーザー関数評価)と適応度関数をベクトル化するを参照してください。 オプション構造の場合は、値 |
|
出力引数
最適化オプション。構造体として返されます。
バージョン履歴
R2006a より前に導入オプションを設定する場合、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 Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)