ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

範囲制約

上限と下限は、解 x の成分を制限します。

最適解の位置の範囲を知っている場合は、これらの範囲を明示的に問題の式に含めることで、より速く信頼できる解を得ることができます。

範囲は x と同じ長さのベクトルとして、または x と同じ要素数の行列として与えます。

  • 特定成分に下限がない場合は、範囲として -Inf を使用します。同様に、上限がない場合は Inf を使用します。

  • 片側の範囲 (上限または下限) しかない場合は、他方を記述する必要はありません。たとえば上限がない場合は、Inf のベクトルを指定する必要はありません。

  • n 個の成分のうち最初の m 個のみが範囲をもつ場合は、範囲を含む長さ m のベクトルを指定するだけで済みます。ただし、このショートカットではソルバーで警告が発生します。

たとえば、範囲が次であると仮定します。

x3 ≥ 8
x2 ≤ 3

制約ベクトルは以下のように記述します。

l = [-Inf; -Inf; 8]
u = [Inf; 3] (警告をスロー) または u = [Inf; 3; Inf]

ヒント

メモリの使用量を減らしソルバーを高速化するには、大きな任意の境界の代わりに Inf または -Inf を使用します。詳細は、任意の大きな境界値の代わりに Inf を使用を参照してください。

範囲制約に勾配を与える必要はありません。ソルバーが自動的に勾配を計算します。範囲はヘッシアンに影響を与えません。

より複雑な範囲の例については、線形計画法の設定、ソルバーベースを参照してください。

関連するトピック