Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

optimwarmstart

ウォーム スタート オブジェクトの作成

説明

ws = optimwarmstart(x0,options) は、options で示したソルバーで使用するウォーム スタート オブジェクト ws を作成します。ウォーム スタート オブジェクトを使用する例は、quadprog のウォーム スタートを参照してください。

ws = optimwarmstart(x0,options,Name,Value) は、名前と値の引数を使用して、ws にメモリ範囲を組み込みます。メモリ範囲はコードを生成する場合にのみ使用します。

すべて折りたたむ

quadprog の既定のウォーム スタート オブジェクトを作成します。

x0 = [1 3 5];
options = optimoptions('quadprog','Algorithm','active-set');
ws = optimwarmstart(x0,options)
ws = 

  QuadprogWarmStart with properties:

          X: [3×1 double]
    Options: [1×1 optim.options.Quadprog]

    Code generation limitations

コード生成のためにメモリ制限をもつ lsqlin ウォーム スタート オブジェクトを作成します。

x0 = [1 3 5];
options = optimoptions('lsqlin','Algorithm','active-set');
ws = optimwarmstart(x0,options,...
    'MaxLinearEqualities',30,...
    'MaxLinearInequalities',5)

ws = LsqlinWarmStart with properties X and Options and a link "Code generation limitations"

Code generation limitations リンクをクリックして、メモリ設定を確認します。

  MaxLinearEqualities: 30 
MaxLinearInequalities: 5 

入力引数

すべて折りたたむ

初期点。実数配列として指定します。この点は ws.X に保存されます。

例: 10*rand(5,1)

データ型: double

最適化オプション。optimoptions の出力として指定されます。少なくとも、サポートされているソルバー (lsqlin または quadprog) と、Algorithm'active-set' を指定しなければなりません。たとえば、quadprog ソルバーを指定する場合は次のコードを入力します。

options = optimoptions('quadprog','Algorithm','active-set');

これらのオプションは ws.Options に保存されます。

名前と値のペアの引数

引数 Name,Value のオプションのコンマ区切りペアを指定します。Name は引数名、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

例: ws = optimwarmstart(x0,options,'MaxLinearEqualities',30,'MaxLinearInequalities',5) は、線形等式の最大数として 30 を、線形不等式の最大数として 5 を指定します。

線形等式制約の最大数。正の整数として指定します。等式制約に十分なメモリを割り当てるには、コードの実行全体における等式制約の最大数を指定します。

この引数は、動的メモリ割り当てを行わないコード生成にのみ使用します。この引数と 'MaxLinearInequalities' を両方とも使用しなければなりません。

この引数の値は ws.MaxLinearEqualities に保存されます。

例: 25

データ型: double

線形不等式制約の最大数。正の整数として指定します。不等式制約に十分なメモリを割り当てるには、コードの実行全体における不等式制約の最大数を指定します。

この引数は、動的メモリ割り当てを行わないコード生成にのみ使用します。この引数と 'MaxLinearEqualities' を両方とも使用しなければなりません。

この引数の値は ws.MaxLinearInequalities に保存されます。

例: 25

データ型: double

出力引数

すべて折りたたむ

ウォーム スタート オブジェクト。LsqlinWarmStart オブジェクトまたは QuadprogWarmStart オブジェクトとして返されます。ウォーム スタート オブジェクトを使用する例は、quadprog のウォーム スタートを参照してください。

ws には次の読み取り専用プロパティがあります。

  • X — 初期点

  • Options — 最適化オプション

  • MaxLinearEqualities — コード生成における線形等式の最大数

  • MaxLinearInequalities — コード生成における線形不等式の最大数

ws のプロパティを変更するには、optimwarmstart を呼び出してオブジェクトを再作成します。

アルゴリズム

ウォーム スタート オブジェクトは、前回解いた問題のアクティブな制約のリストを維持します。ソルバーは、アクティブな制約情報を可能な限り多く引き継いで、現在の問題を解きます。前回の問題と現在の問題が違いすぎる場合、アクティブ セットの情報は再利用されません。この場合、ソルバーは効率的にコールド スタートを実行して、アクティブな制約のリストを再構築します。

拡張機能

R2021a で導入