ParametricConvexOptimization

ParametricConvexOptimization[f,cons,vars,pars]

パラメータ pars の凸制約 cons に従って凸目的関数 f を最小化する変数 vars の値を求めるParametricFunctionオブジェクトを与える.

ParametricConvexOptimization[,"prop"]

ParametricFunctionオブジェクトが返すべき解の特性"prop"を指定する.

詳細とオプション

  • パラメトリック凸最適化はパラメータに依存する凸制約を使った凸関数の大域的非線形最適化である.与えられたパラメータ値について,大域的最適値が求められる.
  • パラメトリック凸最適化は,さまざまなパラメータ値についての最適化を行う際によく使われる.例として,最適値がどのようにパラメータに依存しているかの解析,ベクトル最適化についての最適値のパレート面の計算,確率的最適化のサンプリングメソッド等が挙げられる.
  • ParametricConvexOptimizationは結果をParametricFunctionオブジェクトによって与える.
  • が凹なら,ParametricConvexOptimization[-g,cons,vars,pars]を使って g が最大化できる.
  • パラメトリック凸最適化は,以下の問題を与えられたパラメータ に従って解く を求める.
  • 最小化
    制約条件
    ただしは凸関数(x 内)
  • の形の等式制約が cons に含まれることがある.
  • 制約条件 cons には,パラメータのみに依存する制約条件 が含まれることがある.これは,返されたParametricFunctionの領域を制約条件が満たされる範囲に制限するために使われる.
  • 結果のParametricFunctionオブジェクトのパラメータについての導関数は,可能な場合は記号と数値の混合感度法を使って計算される.
  • 変数およびパラメータの指定の vars および pars は,それぞれ次の形式のいずれかの変数またはパラメータを与える要素のリストでなければならない.
  • v名前が の次元が推定される変数またはスカラーのパラメータ
    vReals実スカラー変数
    vIntegers整数スカラー変数
    vComplexes複素スカラー変数
    v幾何学領域 に限定されたベクトル変数
    vVectors[n,dom]あるいはTemplateBox[{}, Complexes]^nにあるベクトル変数
    vMatrices[{m,n},dom]あるいはTemplateBox[{}, Complexes]^(m x n)にある行列変数
  • ParametricConvexOptimizationは,最小化問題を解くのに効率的なメソッドを自動的に見付けるために必要な変換を行う.
  • 解かれた主最小化問題には,ラグランジュ双対問題である関連する最大化問題がある.双対最大値は常に主最小値以下であるので,これによって下界が与えられる.双対マキシマイザは,最小値の制約条件における変化に対する感度を含む主問題についての情報を与える.
  • 次は,使用可能な解の特性"prop"である.
  • "PrimalMinimizer" を最小化する変数値のリスト
    "PrimalMinimizerRules" を最小化する変数 vars={v1,}の値
    "PrimalMinimizerVector" を最小化するベクトル
    "PrimalMinimumValue"最小値
    "DualMaximizer"双対問題を最大化するベクトル
    "DualMaximumValue"双対最大値
    "DualityGap"双対最適値と主最適値の差
    "Slack"不等式制約を等式制約に変換するベクトル
    "ConstraintSensitivity"
    制約摂動に対する の感度
    {"prop1","prop2",} いくつかの解の特性
  • 次は,使用可能なオプションである.
  • MaxIterationsAutomatic使用する反復の最大数
    MethodAutomatic使用するメソッド
    PerformanceGoal$PerformanceGoalパフォーマンスのどの面を最適化するか
    ToleranceAutomatic内部比較で使用する許容範囲
    WorkingPrecisionMachinePrecision内部計算に使う精度
  • オプションMethodmethod を使って使用するメソッドが指定できる.以下は,使用可能なメソッドである.
  • Automaticメソッドを自動的に選択する
    solver可能な場合は,解くために solver を使うように問題を変換する
    "SCS"SCS(錐ソルバの分割)ライブラリ
    "CSDP"CSDP(COIN半定値計画)ライブラリ
    "DSDP"DSDP(半定値計画)ライブラリ
  • 使用される2つの定式化が solver について文書化された定式化に対応するように,Methodsolver を使って特性のソルバを使うように指定できる.使用可能なソルバには,LinearOptimizationLinearFractionalOptimizationQuadraticOptimizationSecondOrderConeOptimizationSemidefiniteOptimizationConicOptimizationGeometricOptimizationがある.
  • デフォルトで,求まった解はParametricFunctionによってキャッシュされる.
  • メモリを節約するためにMethod{method, "ParametricCaching"None}を使って求まった解をキャッシュしないようにすることもできる.

例題

すべて開くすべて閉じる

  (2)

パラメトリック関数の最小値を制約集合上にプロットする:

線形制約条件に従ってTemplateBox[{{x, -, y}}, Abs]を最小化する:

スコープ  (32)

基本的な用法  (16)

に従ってパラメータ を最小化する:

とパラメータ に従って を最小化する:

とパラメータ に従って を最小化する:

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

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

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

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

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

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

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

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

制約条件 とパラメータ に従って関数 を最小化する:

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

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

とパラメータ に従って関数 を最小化する:

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

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

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

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

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

Vectors[n,Reals]を使ってベクトルパラメータを指定する:

パラメータについての条件を指定して実現可能性を確保する:

では制約条件は満足されない:

パラメータについての条件を指定して目的関数および/または制約条件が凸であることを確実にする:

パラメータについての追加的な条件なしでは,凸性は決定できない:

整数変数とパラメータ  (6)

Integersを使って整数領域の制約条件を指定する:

パラメータが最小値に依存する様子を可視化する:

Vectors[n,Integers]を使ってベクトル変数についての整数領域の制約条件を指定する:

NonNegativeIntegers ()を使って非負の整数領域制約条件を指定する:

NonPositiveIntegers ()を使って非正の整数領域制約条件を指定する:

Integersを使ってパラメータに対して整数領域を指定する:

パラメータに非整数値が使われるとメッセージが出される:

Vectors[n,Integers]を使ってベクトル変数パラメータに整数領域を指定する:

複素変数とパラメータ  (3)

Complexesを使って複素変数とパラメータを指定する:

複素変数と複素制約条件 で実数目的関数Re(z)を最小化する:

とする.制約条件を実数成分に展開すると以下が与えられる:

実数値目的関数をベクトルパラメータ theta in Vectors[2,R]で指定する:

で問題を解く:

Vectors[n,Complexes]を使って複素 次元ベクトル変数とパラメータを指定する:

パラメータ感度  (3)

パラメータについての最小値の導関数をプロットする:

最小二乗フィット係数のデータの外れ値に対する感度を求める:

フィット係数の剰余,傾き,切片{r,m,b}を測定値 の関数として与える関数を定義する:

データを最小二乗フィットとともに表示する:

最初に測定された値についての導関数を与え,それをデータ値について計算する関数を定義する:

5番目の測定値についての導関数を与え,それをデータ値について計算する関数を定義する:

フィットの感度は,5番目の値については最初の値についてよりもはるかに鈍い.

目的ベクトルの方向 の変化でミニマイザがどのように変化するかを示す:

についてのミニマイザのヤコビ行列を得る関数を定義する:

方向 のパラメータ化について考える. についての導関数は で与えられる:

ミニマイザと についての導関数ベクトルを のいくつかの値についての制約条件で定義された凸領域とともに表示する:

導関数ベクトルは境界の接線である.

主モデル特性  (2)

円板 上で,パラメータ についてCos(3α)x+Sin(2α)y を最小化する:

主ミニマイザを規則として得る:

主ミニマイザをベクトルとして得る:

ミニマイザの位置が によってどのように変化するかを示す:

主最小値を得る:

最小値を の関数としてプロットする:

エピグラフ変換を使って主最小値を主ミニマイザの一部として得る:

ミニマイザ における不等式 のスラックは で与えられる:

ミニマイザと円錐制約アフィンリストを抽出する:

スラックが を満足することを確認する:

双対モデル特性  (2)

,およびパラメータ に従って を最小化する:

双対問題は に従ってを最大化することである:

強双対性のために主最小値と双対最大値は一致する:

これは双対性ギャップが0であることと同じである.一般に,最適点において である:

双対最大値と双対マキシマイザを解の特性を使って得る:

"DualMaximizer"は以下で入手できる:

双対マキシマイザベクトル分割は双対円錐の数と次元をマッチする:

アプリケーション  (9)

反復最適化  (1)

領域 楕円 から点(1,2)までの距離が可能な限り小さくなるようなパラメータ を求める:

距離を の関数として表示する:

最短距離を求める:

最近点で求まった楕円を表示する:

円についての2点の位置を可視化する:

幾何問題  (2)

パラメータが最高で1,縦横比を として,長方形の面積を最大にする:

面積は関数の負の値で与えられる:

最大面積を の関数としてプロットする:

最大面積を最大にする:

当然のことながら,最良の形状は正方形である.関数の値が近似値であるため,最大値の近くで大幅な変動があるためにメッセージが出された点に注意のこと:

を中心とする半径1の2つの円板間の最小距離を求める.ただし, はベクトルパラメータである.を円板1上の点,を円板2上の点とする.目的は,制約条件に従ってを最小化することである:

例えば,なら:

次に,の任意のパラメータ値について,2つの円板間の最小距離をプロットする:

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

サンプル誤差 が正規分布に従っている場合の線形近似係数の近似分布を求める:

ParametricFunctionは,特定の誤差の例に対してフィット係数を与える:

サンプルを1000例生成する:

各例を正則化せずにフィット係数を計算し,係数の分布を求める:

分布の確率密度分布をデータのヒストグラムと共に表示する:

L1フィットと比較する:

非線形離散データへの フィットの剰余を最小化するガウスの幅パラメータ を求める:

基底 を使ってデータをフィットする:

関数は で近似される:

剰余を与えるパラメトリック関数を構築する:

剰余を の関数として示す:

最小剰余を求める:

最小剰余に対応するフィット係数を取得する:

フィットとデータを表示する:

最適な幅の基底要素には顕著な重なりがある:

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

リスクを最小限に抑えながらリターンを最大化するために6つの株式に投資するための資本 の分布を求める:

リターンは で与えられる.ただし, は個々の株式の期待リターン値のベクトルである:

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

目的は,指定されたリスク回避パラメータ についてのリスクを最小にしてリターンを最大にすることである:

株式の売買による株式の市場価格への影響は,でモデル化される.これは,エピグラフ変換を使ったPower Coneによってモデル化できる:

重み はどれも0より大きく重みと市場への影響のコストの合計は1でなければならない:

パラメトリック関数を構築する:

リスク回避パラメータの範囲について,リターンと対応するリスクを計算する:

範囲 における最適な はリターンとリスクの間のトレードオフの上限包絡線である:

指定された数のリスク回避パラメータについて重みを計算する:

市場コストを考慮することで,低リスク回避のため分散ポートフォリオが得られるが,リスク回避が高い場合,分散の少ない株式を購入するために市場の影響コストが支配的になる:

軌道最適化問題  (2)

に従って を最小化する.最小化関数積分は台形規則を使って近似できる.離散化された目的関数は になる:

制約条件 は有限差分を使って離散化できる:

制約条件 Indexed関数を使って表すことができる:

制約条件 は有限差分を使って離散化できる.最初と最後の行だけが使われる:

離散化された軌道問題を解く:

結果をパラメータ の範囲について可視化する:

二次導関数 をパラメータ の範囲で可視化する:

障害物を避けながら2点間の最短距離を求める.障害物を指定する:

辺における潜在的な交差を避けるために領域を膨らませることができるが,結果はもとの領域について有効である:

障害物を膨らませた線形不等式の集合を入手する:

初期点はパラメータ によって与えられる.最終点は固定されている:

経路は 個の点を使って離散化できる.が位置ベクトルを表すとする:

目的は を最小化することである.とする.目的は に変わる:

初期点と最終点の制約条件を指定する:

連続する任意の2点間の距離は大きすぎてはならない:

の要素の少なくとも1つが0より小さければ点 はオブジェクトの外にある.この制約条件を矯正するために,が決定ベクトルで となるような 番目の要素であるとすると となるために十分大きい:

さまざまな初期点について最適化問題を解くためにパラメトリック関数を生成する:

さまざまな初期点のための経路を計算して表示する:

制約テスト  (1)

制約条件によって定義された集合に点が含まれるかどうかの関数テストを作成する:

{x+ 2y<=1,TemplateBox[{{{, {{4, x}, ,, {5, y}}, }}}, Norm]<=6}によって定義された集合に含まれるかどうかをテストする関数を設定する:

原点は含まれている:

ランダムに生成された点集合をテストする:

考えられる問題  (1)

パラメータのために凸性が決定できなければ,パラメトリック関数は形成できない:

パラメータについての条件を指定して凸検定が通るようにする:

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

テキスト

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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