RobustConvexOptimization

RobustConvexOptimization[f,ForAll[pars,pcons,vcons],vars]

パラメータ的な制約 pcons を満足するパラメータ pars の可能なすべての値について制約 vcons を満足する vars についての f の最小値を与える vars の値を求める.

RobustConvexOptimization[,"prop"]

解のどの特性"prop"を返すかを指定する.

詳細とオプション

  • ロバスト最適化は最悪な場合の最適化としても知られている.
  • ロバスト最適化は,一般に,パラメータ制約があるパラメータによって表される不確かさのもとで最適化問題を解く際に使われる.
  • ロバスト最適化は,与えられた最適条件には可能なすべてのパラメータ値で達することができるという意味で,最も保守的な解を与える.
  • ロバスト最適化は,以下の問題を解くロバストなミニマイザ を求める.
  • 最小化
    ただし
  • ロバストミニマイザ は,パラメータ集合内のすべての について を満足する.
  • ロバスト最小値 は,パラメータ集合内のすべての について を満足する.
  • pcons または vcons には,線形等式制約 または が含まれるかもしれない.
  • RobustConvexOptimization[f,cons,vars,pars]を使うこともできる.制約条件 cons は純粋にパラメータ的な制約条件 とパラメータ に依存する変数の制約条件に自動的に分離される.この形式はParametricConvexOptimizationと互換である.
  • ロバスト最適化問題は,可解のあるいは凸最適化で近似可能な問題の型にはめられる場合は扱いやすいと考えられる.扱いやすさは変数制約 のタイプとパラメータ制約 のタイプの組合せに依存する.
  • 次の変数制約とパラメータ制約の組合せが扱いやすいと考えられる.
  • 変数制約パラメータ制約
    TemplateBox[{{{a, ., x}, +, b}}, Norm]<=c(theta).x+d(theta)
    TemplateBox[{{{{a, (, theta, )}, ., x}, +, {b, (, theta, )}}}, Norm]<=c.x+d
    TemplateBox[{{{{a, (, {theta, _, l}, )}, ., x}, +, {b, (, {theta, _, l}, )}}}, Norm]<=c(theta_r).x+d(theta_r)
    a_0(theta)+a_1(theta) x_1+...+a_k(theta) x_k>=_(TemplateBox[{n}, SemidefiniteConeList])0
  • 一般に,変数制約 の形の円錐制約に変換される.ただし,は,"NonNegativeCone""NormCone""SemidefiniteCone"のいずれかであり,のパラメータに対する依存関係はアフィンでなければならない.
  • 目的関数 がパラメータに依存する,あるいは非線形である場合は,追加的な変数 が導入され,エピグラフ変換によって,問題が目的変数 と追加的な制約条件 を持つようになる.
  • 変数指定とパラメータ指定の varspars は,それぞれ,以下のいずれかの形で変数とパラメータを与える要素のリストでなければならない.
  • v次元が推測される変数か名前が のスカラーパラメータ
    vReals実数のスカラー変数
    vIntegers整数のスカラー変数
    vComplexes複素数のスカラー変数
    v幾何学領域 に制限されるベクトル変数
    vVectors[n,dom]あるいはTemplateBox[{}, Complexes]^nのベクトル変数
    vMatrices[{m,n},dom]あるいはTemplateBox[{}, Complexes]^(m x n)の行列変数
  • 使用可能な解の特性"prop"には以下がある.
  • "PrimalMinimizer" を最小化する変数値のリスト
    "PrimalMinimizerRules" を最小化する変数 vars={v1,}の値
    "PrimalMinimizerVector" を最小化するベクトル
    "PrimalMinimumValue"最小値
    {"prop1","prop2",} いくつかの解の特性
  • 次は,使用可能なオプションである.
  • MaxIterationsAutomatic使用する最大反復数
    Method Automatic使用するメソッド
    PerformanceGoal$PerformanceGoal最適化するパフォーマンスの局面
    Tolerance Automatic内部比較の許容度
  • オプションMethodmethod を使って使用するメソッドが指定できる.以下は使用可能なメソッドである.
  • Automaticメソッドを自動的に選択する
    "CuttingSet"CuttingSet法を使う
    "PolyhedralApproximation"線形制約集合がある近似"NormCone"制約
    "SCS"SCS(錐ソルバの分割)ライブラリ
    "CSDP"CSDP(COIN半定値計画)ライブラリ
    "DSDP"DSDP(半定値計画)ライブラリ
  • いくつかの扱いにくいロバストな最適化問題も,ほぼCuttingSet法で解くことができる.

例題

すべて開くすべて閉じる

  (2)

制約条件 に従う についてのロバストミニマイザを求める:

ロバストミニマイザはのすべてのについて制約条件を満足する:

変数の制約条件に従う についてのロバストミニマイザを求める:

ロバストミニマイザはすべての α[-.5,.5]についての制約条件集合の共通(緑)の部分である:

スコープ  (29)

基本的な用法  (15)

のとき,すべての について, についての に従うロバストなミニマイザを求める:

区間内のすべての について, についての に従うロバストなミニマイザを求める:

となるようなすべての について, に従う についてのロバストなミニマイザを求める:

のとき,すべての について に従う についてのロバストなミニマイザを求める:

明示的なForAllなしで代替構文を使う:

この構文をParametricConvexOptimizationで直接使っての特定の値を試してみる:

VectorLessEqualを使っていくつかのLessEqual不等式制約を一度に表す:

v<= を使ってコンパクトな形でベクトル不等式を入力する:

スカラー不等式を使った同等の形:

VectorGreaterEqualを使っていくつかのGreaterEqual不等式制約を一度に表す:

v>= を使ってベクトル不等式をコンパクトな形で入力する:

スカラー不等式とベクトル不等式を組み合せて制約条件を指定する:

スカラー不等式を使った同等の形:

ベクトル変数とベクトル不等式を使って問題を指定する:

であるすべてのについて,制約条件 に従って関数 を最小化する:

Indexedを使ってベクトル変数の成分(例:TemplateBox[{x, 1}, IndexedDefault])にアクセスする:

制約条件のパラメータ方程式を使って目的関数と制約条件の係数を指定する:

であるすべての について,制約条件 に従って関数 を最小にする:

必要なときは,Vectors[n,Reals]を使ってベクトル変数の次元を指定する:

NonNegativeReals (TemplateBox[{}, NonNegativeReals])を使って非負の制約条件を指定する:

ベクトル不等式を使った同等の形:

NonPositiveReals (TemplateBox[{}, NonPositiveReals])を使って非正の制約条件を指定する:

Intervalを使って境界を指定する:

パラメータがグループ化され変数に割り当てられたときに,Evaluateを使ってForAllの第1引数が確実に評価されるようにする:

線形変数制約  (5)

区間[0,2]内のすべての について, に従う についてのロバストなミニマイザを求める:

[0,2]内のすべての についての制約条件 とは,数学的には を意味する.従って,この問題は以下と等しい:

区間で制限されるすべてのについて,変数の制約条件 に従って についてのロバストなミニマイザを求める:

の極値に設定されたミニマイザと変数制約を可視化する.緑で示されているパラメータ の可能なすべての値に対して実行可能であるの集合は,パラメトリック実行可能領域の交点である:

区間に制約されるすべてのについて,変数制約条件 に従う についてのロバストなミニマイザを求める:

ミニマイザ,パラメータ の極値についての変数制約集合,実行可能領域(緑で表示)を可視化する:

であるすべてのについて,変数制約 に従う についてのロバストなミニマイザを求める:

ミニマイザ,パラメータ の極値についての変数制約集合,実行可能領域(緑で表示)を可視化する:

であるすべてのについて,変数制約 に従う についてのロバストなミニマイザを求める:

パラメータの極値 について,行列が半正定値になるような の範囲を求める:

を変化させて生成された領域の共通部分で形成されたミニマイザと実行可能領域(緑で表示)を可視化する:

NormCone変数制約  (7)

であるすべての についての変数制約上の についてのロバストミニマイザを求める:

の極値に設定されたミニマイザと変数制約を可視化する.パラメータ の可能なすべての値に対して実行可能なの集合は,全実行可能領域の共通部分(緑色で表示)である:

であるすべての についての変数制約上の についてのロバストなミニマイザを求める:

ミニマイザ,パラメータ の極値に設定された変数制約,実行可能領域(緑色で表示)を可視化する:

であるすべての についての変数制約上の についてのロバストなミニマイザを求める:

ミニマイザ, の極値についての変数制約集合,実行可能領域(緑で表示)を可視化する:

であるすべての についての変数制約 上の についてのロバストなミニマイザを求める:

ミニマイザ, の極値についての変数制約集合,実行可能領域(緑で表示)を可視化する:

であるすべての についての変数制約 上の についてのロバストなミニマイザを求める:

であるすべての についての変数制約上の についてのロバストなミニマイザを求める:

ミニマイザ, の極値についての変数制約集合,実行可能領域(緑で表示)を可視化する:

であるすべての についての変数制約上の についてのロバストなミニマイザを求める:

ミニマイザ, の極値についての変数制約集合,実行可能領域(緑で表示)を可視化する:

SemidefiniteCone変数制約  (2)

であるすべての についての変数制約に従う についてのロバストな近似ミニマイザを求める:

ミニマイザ,パラメータ の極値についての変数制約集合,実行可能領域(緑で表示)を可視化する:

であるすべての についての変数制約に従う についてのロバストな近似ミニマイザを求める:

ミニマイザ,パラメータ の極値についての変数制約集合,実行可能領域(緑で表示)を可視化する:

オプション  (3)

Method  (2)

Method"CuttingSet"を使ってロバストな対応部分が扱いにくい問題を解く:

パラメータの2つの極値についてのミニマイザと変数制約集合を(緑で示された)実行可能領域と一緒に可視化する.

Method"PolyhedralApproximation"を使って"NormCone"制約を線形化する.こうすることで,他の方法では扱いにくいロバストな対応部分を使った近似解の問題が可能になる:

パラメータの2つの極値について,ミニマイザと変数制約集合を可視化する:

Tolerance  (1)

Toleranceの設定を小さくするとより厳密な結果が与えられる:

この問題に対する厳密値は の設定で求まる:

Toleranceの設定値を変えて誤差を計算する:

許容値に対する最小値の誤差の変化を可視化する:

アプリケーション  (14)

幾何学問題  (2)

サブサークルの集合を囲い込む最小な円の中心 と半径 を求める:

サブサークルは,不確かさの円板の中心である点によって表される:

目的は,制約条件 に従って半径 を最小化することである:

円板の中心と半径は次のようになる:

結果をプロットする:

不確かさが楕円でモデル化されるときの,半径がで中心がの2つの円板の最短距離を求める:

を円板1と円板2に関連付けられた点とする.目的は に従ってを最小化することである:

中心と半径が不確かな2つの円板の最短距離は以下のようになる:

2つの点の位置を不確かな円板のいくつかの極端な例と一緒に可視化する:

データフィッティング問題  (3)

区間の不確かさに従って,応答があるデータのロバストな線形フィットを求める:

目的は,区間の不確かさ に従って入出力間の誤差を最小にすることである:

ロバストなフィット y=m x+b の傾き m と切片 b を求める:

データの単純な最小二乗フィットを計算する:

不確かさの100の可能な実現のためのフィットモデルを求める:

ロバストフィット(黒),単純フィット(緑),データで,フィットモデルの包絡線を表示する:

出力に区間の不確かさが含まれる離散データに三次曲線をフィットする:

DesignMatrixを使って入力行列を構築する:

目的は区間の不確かさ に従って入出力間の誤差を最小にすることである:

各基底に関連付けられた係数を求める:

不確かさの可能な100の実現についてのフィットモデルを求める:

フィットモデルの包絡線を,ロバストなフィット(黒)およびデータとともに表示する:

ロバストなフィット(黒)と平均モデル(赤)をノイズのない厳密解と比較する:

ロバストなフィットは平均モデルよりも誤差が大きくなる傾向がある:

測定のインスタンス(入力)が不確かな範囲にある離散データに三次曲線をフィットする:

入力行列で区間の不確かさ に従って係数を求める:

入力ノイズのランダムなインスタンスから生成された包絡線を使用して,ロバストなフィットを表示する:

ロバストなフィット(黒)と平均モデル(赤)をノイズのない厳密解と比較する:

製造問題  (3)

2つの異なる原材料 から活性剤を抽出する際の不確かさを考慮して利益を最大化するためにある会社が製造する2つの薬剤 の最適な組合せを求める.医薬品の単位あたりの収益は以下の通りである:

同社は1000kgの原材料しか保管できない:

2つの薬の製造には90から100時間の人的資源が必要である.同社の人的資源は2000時間分しかない:

2つの薬を製造するのに40から50時間の機械時間が必要である.同社の機械時間は800時間しかない:

2つの薬を製造するための運用コストはそれぞれ700と800である.キログラムあたりの原材料費はそれぞれ100と199.9である:

同社の総予算は$100,000である:

同社は数単位の薬を製造しなければならず,したがってある程度の原材料を購入しなければならない:

2つの原材料から抽出される活性剤の量は,それぞれg/kgおよびg/kgの原材料である.2つの薬はそれぞれ0.5g /単位と0.6g /単位の活性剤を必要とする:

目的は,購入コストと運用コストを最小限に抑えながら収益を最大化することである:

薬品の最適な組合せは以下の通りである:

不確かさを考慮した収益は以下のようになる:

この問題のパラメトリック関数を構築する:

原材料に活性剤の変動がない場合は,2番目の原材料が優先される:

不確かさを含まない収益は以下のようになる:

不確かさを考慮すると収益が最大で6%減少する:

ロバストな解は,原材料から抽出される活性剤の量が最も少ないという最悪のシナリオに対応する:

ロバストな解を使用する利点を確認するために,原材料と活性剤の不確かさをパラメータとして使ってパラメトリック関数を生成する:

名目上の結果,つまり を使用して原材料を購入した場合,原材料から抽出できる活性剤の量によっては,利益が21%減少する可能性がある:

原材料がロバストな結果を使用して購入された場合,つまり,の場合,利益は最大6%減少する可能性がある:

2番目の原材料から抽出できる活性剤の関数として利益をプロットする:

製造入力に不確かさがある企業の利益を最大化する製造製品の組合せを求める.同社は3つの製品を製造している.理想的な条件下では,単位あたりの収益,単位あたりのコスト,最大容量は次の式で与えられる:

各製品は4台の機械を使用して作られる.機械が各製品に費やす時間は次の通りである:

市場の変動のために,製品の各単位によって生成される収益は5ドル減少する可能性がある:

機械のダウンタイムを考慮すると,製造能力は製品ごとに5ユニット減少する可能性がある:

各機械は週に最大2400分実行できる.機械が稼働していない場合,稼働状態に戻るまでに最大120分かかる:

4台の機械のいずれかを修理するためのコストは,各製品のコストを1単位あたり5ドル増加させる:

利益は収益からコストを引いたものに製品 の単位数 を掛けたものに等しくなる:

すべての変数制約を収集する:

すべてのパラメータ制約を収集する:

すべてのパラメータ指定を収集する:

目的は,収益を最大にすることである.最適な製品の組合せは以下で与えられる:

さまざまなパラメータを変更するためのパラメトリック関数を作成する:

最良のシナリオでは,収益の減少や機械のダウンタイムは発生せず,以下のようになる:

最悪のシナリオは,RobustConvexOptimizationによって得られた結果に対応する:

価格と供給の変動に応じて3つの製品 を販売する会社の利益を最大化する製造製品の組合せを求める.

単位あたりの価格変動を考慮した単位あたりの収益は以下の通りである:

この工場は100日しか稼働しない.理想的には,各単位の製造に2,4,5日かかるが,予期しない遅延により製造時間が1日長くなる可能性がある:

各製品には金と錫が含まれている.各単位で使用可能な金と錫は,それぞれおよびである:

製品が製造された場合,会社は各製品のセットアップ費用を負担する:

セットアップ費用が比較的高いため,一部の製品を全く製造しないことが望ましい場合がある.を,製品 が製造されている場合は ,それ以外の場合は となる決定変数とする.制限 は他の制約よりも のサイズを制限することなく,が0の場合は も0であることを保証する:

目的は収益を最大にすることである:

すべての変数制約を収集する:

パラメータ制約を収集する:

パラメータ指定を収集する:

最適な組合せは以下で与えられる:

さまざまなパラメータを変えるためのパラメトリック関数を構築する:

結果は以下で与えられる最悪ケースのシナリオと一致する:

構造最適化問題  (1)

バネの剛性と平衡長の両方が製造上の不確かさの影響を受ける各リンクの端に垂直荷重がかかった状態で,のバネリンクによって形成される吊り下げチェーンの形状を求める.目的はリンクの位置 を求めることである:

重力による位置エネルギーは である.ただし, は両端の垂直荷重, は重力である:

伸縮によるバネリンクの張力による位置エネルギーは である.ここで,はバネリンク の伸縮,はバネの不確かな剛性であり,はバネの理想的な剛性である.を使用してエネルギーを に変換する:

変換のために,追加的な制約条件 を加えなければならない:

リンクチェーンの端は(0,0)(2,-1)に固定されている:

各リンクは制約条件 を満足しなければならない.ただし,は不確かさ に従う各バネの静止長である:

設計定数パラメータは以下の通りである:

最終的な目的関数は,最小化する必要がある重力とバネの位置エネルギーの合計である:

各バネリンクの端点を求める:

結果のバネチェーンの形状を可視化する:

伸びはリンクチェーンの端のリンクで最大になる.伸びが最小なのはリンク12である:

ポートフォリオの最適化  (2)

平均リターンに不確実性がある場合にリスクを最小限に抑えながらリターンを最大化するために,市場のボラティリティの影響を受ける可能性のある20の候補株から投資する6つの株の最適な組合せを見付ける.株式 の期待収益値 および株式 間の共分散は次の通りである:

市場の変動のために各株式の平均収益値は不確実性 の影響を受ける:

を株式 への総投資の割合とする.リターンは で与えられる:

リスクはで与えられる:

ならばその株を買うことになる決定ベクトルであるとすると,6つの株を選択しなければならない:

投資 の割合は0より大きく合計で1でなければならない:

リスクを最小にしてリターンを最大にする株の最適な組合せを求める:

最も安全な株の組合せは以下の通りである:

それぞれの株に対する投資割合は以下の通りである:

安全なリスクとリターンは以下の通りである:

さまざまなパラメータを変更するためのパラメトリック関数を作成する:

最も安全で最適な株式の組合せは,不確実性のランダムなインスタンスを持つ最適な株式と比較して,最小のリスクとリターンを提供する:

平均リターンと共分散の両方に不確実性がある場合に,リスクを最小化しながらリターンを最大化するためのに6つの株に投資する資本の分布を見付ける.株 の期待収益値 および株 間の共分散は次の通りである:

市場の変動のために,各株式のリターン値は不確実性 の影響を受ける:

を株式 への総投資の割合とする.リターンは で与えられる:

共分散は有限のデータ集合から抽出され,不確実性 の影響を受ける:

リスクは で与えられる. はリスク回避パラメータである:

目的は,指定されたリスク回避パラメータ のリスクを最小限に抑えながらリターンを最大にすることである:

投資 の割合は0より大きく合計で1でなければならない:

一連のリスク回避パラメータのリターンと対応するリスクを計算する:

リスク回避パラメータ を大きくすると,リスクを減らすための株式の分散に繋がる:

施設の場所問題  (1)

ある会社が新しい工場を開設したいと考えている.工場には5つの倉庫からの原材料が必要である.新しい工場と倉庫の間の,の間で変動する単位距離あたりの輸送コストは次の通りである:

を工場と倉庫 の間の距離とする.目的は を最小化することである:

5つの倉庫 は以下にある:

新たな工場 となるような位置になければならない:

新規工場と倉庫の間の最適な距離を求める:

新規工場の場所は輸送コストが高い倉庫に近い:

分類問題  (2)

2つの点集合 を分離する線分 を求める.ただし, は区間の不確かさである:

分離するために,集合1は を,集合2は を満足しなければならない:

目的はを最小化することである.これによって の間の最大の厚さが得られる:

分離線は次の通りである:

分類器を各点のボックスの不確かさとともに可視化する:

ボックスの不確かさを大きくすると分類器が実行不可能になる:

不確かさが大きくなった集合を可視化すると,2つの集合に不確かさのボックスが重なるいくつかの点があることが分かる:

2つの3Dの点集合 を分離する二次多項式を求める.ただし, は不確かさの区間である:

DesignMatrixを使って2つの集合のために二次多項式データ行列を構築する:

分離するためには,集合1は を,集合2は を満足しなければならない:

を最小化することで分離多項式を求める:

2つの点集合を分離する多項式は以下で与えられる:

2つのデータ集合を分離する多項式をプロットする:

考えられる問題  (1)

問題の中には,ForAllの第1引数が評価されないために失敗するものがある:

Evaluateを使って ForAllの第引数が確実に評価されるようにする:

Wolfram Research (2020), RobustConvexOptimization, Wolfram言語関数, https://reference.wolfram.com/language/ref/RobustConvexOptimization.html.

テキスト

Wolfram Research (2020), RobustConvexOptimization, Wolfram言語関数, https://reference.wolfram.com/language/ref/RobustConvexOptimization.html.

CMS

Wolfram Language. 2020. "RobustConvexOptimization." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/RobustConvexOptimization.html.

APA

Wolfram Language. (2020). RobustConvexOptimization. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/RobustConvexOptimization.html

BibTeX

@misc{reference.wolfram_2024_robustconvexoptimization, author="Wolfram Research", title="{RobustConvexOptimization}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/RobustConvexOptimization.html}", note=[Accessed: 24-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_robustconvexoptimization, organization={Wolfram Research}, title={RobustConvexOptimization}, year={2020}, url={https://reference.wolfram.com/language/ref/RobustConvexOptimization.html}, note=[Accessed: 24-November-2024 ]}