SemidefiniteOptimization

SemidefiniteOptimization[f,cons,vars]

半定値制約 cons に従って線形目的関数 f を最小化する変数 vars の値を求める.

SemidefiniteOptimization[c,{a0,a1,,ak}]

線形行列不等式制約 a_0+a_1 x_1+...+a_k x_k>=_(TemplateBox[{n}, SemidefiniteConeList])0に従って数量 を最小化するベクトル を求める.

SemidefiniteOptimization[,"prop"]

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

詳細とオプション

  • SemidefiniteOptimizationは,半定値計画法(SDP)および混合整数半定値計画法(MISDP)としても知られている.
  • 半定値最適化は,実変数,整数変数あるいは複素変数で大域的かつ効率的に解ける凸最適化問題である.
  • 半定値最適化は,主問題を解く を求める.
  • 最小化
    制約条件a_(0)+a_(1) x_(1)+...+a_(k) x_(k)>=_(TemplateBox[{n}, SemidefiniteConeList])0
    ただし,
  • 行列 は対称 行列でなければならない.
  • 混合整数の半定値最適化は,問題を解く および を求める.
  • 最小化
    制約条件a_(0)+a_(1) x_(1)+...+a_(k_r) x_(k_r)+a_(k_r+1)y_1+...+a_(k_r+k_i)y_(k_i)>=_(TemplateBox[{n}, SemidefiniteConeList])0
    ただし,
  • SemidefiniteOptimizationは,目的関数が実数値のときは,内部的に実変数 に変換して x in TemplateBox[{}, Complexes]^nの問題を解く.ただし,である.線形行列不等式はエルミート行列 で指定できるかもしれない.
  • 変数指定 vars は,次のいずれかの形式で変数を与える要素のリストでなければならない.
  • v名前が で次元が推測される変数
    vReals実数のスカラー変数
    vIntegers整数のスカラー変数
    vComplexes複素数のスカラー変数
    v幾何学次元 に制限されたベクトル変数
    vVectors[n,dom]またはのベクトル変数
    vMatrices[{m,n},dom]またはの行列変数
  • 制約条件 cons は以下で指定できる.
  • LessEqualスカラー不等式
    GreaterEqualスカラー不等式
    VectorLessEqualベクトル不等式
    VectorGreaterEqualベクトル不等式
    Equalスカラー等式またはベクトル等式
    Element凸領域あるいは領域要素
  • SemidefiniteOptimization[f,cons,vars]のとき parval の形のパラメータ方程式(parvars に含まれず,val は数値あるいは数値配列)は制約条件に含まれて f あるいは cons で使われるパラメータを定義することがある. »
  • 主最小化問題は,関連する最大化問題(ラグランジュの双対問題)を有する.双対最大値は,常に主最小値以下であるので,下限を与える.双対マキシマイザは,制約条件における変化に対する最小値の感度を含む主問題についての情報を与える. »
  • 半定値最適化は次の双対を持つ. »
  • 最大化-TemplateBox[{Tr, paclet:ref/Tr}, RefLink, BaseStyle -> {2ColumnTableMod}][a_0.lambda]
    制約条件TemplateBox[{Tr, paclet:ref/Tr}, RefLink, BaseStyle -> {2ColumnTableMod}][a_j.lambda]=c_j,j=1,..., k,lambda>=_(TemplateBox[{n}, SemidefiniteConeList])0
    ただし
  • 次は,可能な解の特性"prop" である.
  • "PrimalMinimizer"目的関数を最小化する変数値のリスト
    "PrimalMinimizerRules" を最小化する変数の値 vars={v1,}
    "PrimalMinimizerVector" を最小化するベクトル
    "PrimalMinimumValue"主最小値
    "DualMaximizer"を最大化するベクトル
    "DualMaximumValue"-TemplateBox[{Tr, paclet:ref/Tr}, RefLink, BaseStyle -> {3ColumnTableMod}][a_0.lambda^*]双対最大値
    "DualityGap"-TemplateBox[{Tr, paclet:ref/Tr}, RefLink, BaseStyle -> {3ColumnTableMod}][a_0.lambda^*] - c.x^*双対最適値と主最適値の差
    "Slack"不等式制約を等式制約に変換する行列
    "ConstraintSensitivity"
    の制約摂動に対する感度
    "ObjectiveVector"線形目的ベクトル
    "ConstraintMatrices"制約行列のリスト
    {"prop1","prop2",} いくつかの解の特性
  • 次は,使用可能なオプションである.
  • MaxIterationsAutomatic使用する最大反復回数
    Method Automatic使用するメソッド
    PerformanceGoal $PerformanceGoal最適化するパフォーマンスの局面
    Tolerance Automatic内部比較に使用する許容度
  • オプションMethod->method を使って使用するメソッドを指定することができる.以下は,使用可能なメソッドである.
  • Automaticメソッドを自動的に選択する
    "CSDP"CSDP(COIN半定値計画)ライブラリ
    "DSDP"DSDP(半定値計画)ライブラリ
    "SCS"SDP(錐ソルバの分割)ライブラリ
    "MOSEK"商用MOSEK凸最適化ソルバ
  • 計算はMachinePrecisionに限定される.

例題

すべて開くすべて閉じる

  (3)

線形行列不等式制約  a_(0)+a_(1)x_1+a_(2) x_2_(TemplateBox[{2}, SemidefiniteConeList])0に従ってを最小化する:

最適点は,制約条件で定義された領域内で が最小となる点である:

線形行列不等式制約  a_(0)+a_(1)x_1+a_(2) x_2_(TemplateBox[{2}, SemidefiniteConeList])0に従ってを最小化する:

目的ベクトルと制約行列を使って同等の式を使う:

 a_(0)+a_(1)x_1+a_(2) x_2_(TemplateBox[{2}, SemidefiniteConeList])0,x_1 in Z,x_2 in Rに従ってを最小化する:

目的ベクトルと制約行列がある同等の形式を使う:

スコープ  (29)

基本的な用法  (13)

制約条件 に従って を最小化する:

行列が半正定値のときに を最小化する:

解を求める:

線形行列不等式制約 a_1 x+a_2 y+a_0_(TemplateBox[{2}, SemidefiniteConeList])0に従って を最小化する:

制約条件の左辺は評価した形で与えることができる:

問題を目的ベクトルと制約行列で表す:

ベクトル変数 を使う:

ベクトル変数 Inactive[Plus]を使って意図しないスレッディングを回避する:

ベクトル変数 とパラメータ方程式を使って意図しないスレッディングを回避する:

ベクトル変数 Indexed[x,i]を使って個々の成分を指定する:

Vectors[n]を使って,曖昧な場合にベクトル変数の次元を指定する:

VectorGreaterEqualで複数の線形不等式制約表すことができる:

v>= あるいは\[VectorGreaterEqual]を使ってベクトル不等式の記号を入力する:

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

ベクトル変数 とベクトル不等式を使う:

NonNegativeReals ()を使って非負の制約条件を指定する:

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

TemplateBox[{{{a, ., x}, +, b}}, Norm]<=alpha.x+beta の形の二次錐制約を使うことができる:

a.x+b_(TemplateBox[{}, NormConeString])0の形の"NormCone"制約を使うことができる:

整数変数  (4)

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

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

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

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

複素変数  (2)

Complexesを使って複素変数を指定する:

線形行列不等式では,制約行列はエルミート行列または実対称行列である:

線形行列不等式における変数は,和がエルミート行列のままであるためには,実数でなければならない:

主モデルの特性  (3)

制約条件 (x 1; 1 y)_(TemplateBox[{2}, SemidefiniteConeList])0に従って関数 を最小化する:

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

最小値を得る:

目的ベクトルを抽出する:

制約行列を抽出する:

抽出したベクトルと制約行列を直接入力に使う:

ミニマイザ における不等式 g(x)_(TemplateBox[{n}, SemidefiniteConeList])0についてのスラックは で与えられる:

ミニマイザと制約行列を抽出する:

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

双対モデルの特性  (3)

に従って を最小化する:

双対問題は,Tr[a_i.y]⩵c_i,i=1,..., k,y0に従って-Tr[a_0.y]を最大化する:

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

これは,双対ギャップが0であることに等しい.一般に,最適点において c.x^*<=Tr[a_0.y]である:

主問題から抽出した制約行列を使って双対問題を構築する:

目的ベクトルと制約行列を抽出する:

双対問題は,に従ってを最大化する:

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

"DualMaximumValue"は以下の通りである:

"DualMaximizer"は以下で得られる:

感度特性  (4)

"ConstraintSensitivity"を使って,制約条件の摂動による最適値の変化を求める:

感度は行列である:

が摂動である新たな制約条件 について考える:

近似された新たな最適値は以下の通りである:

摂動問題を直接解く場合と比較する:

最適値は感度行列要素の符号に従って変化する:

負の感度要素位置では,正の摂動が最適値を減少させる:

正の感度要素位置では,正の摂動が最適値を増大させる:

半定値性についてのシルヴェスター(Sylvester)の基準に従って摂動する制約を記号的に表す:

この形式では,最小値は0の周囲のパラメータの関数として厳密に求まる:

パラメータについての最小値の導関数から対称行列を作る:

これは,"ConstraintSensitivity"特性で与えられる,摂動に対する感度である:

制約感度は双対マキシマイザの否定としても得ることができる:

オプション  (8)

Method  (5)

デフォルトメソッドの"CSDP"は内点法である:

"DSDP"はまた別の内点法である:

"SCS"は,分割錐ソルバ法を使う:

メソッドによってデフォルトの許容度は異なる.このことは精度と確度に影響する:

厳密解と近似解を計算する:

"CSDP""DSDP"のデフォルトの許容度はである:

"SCS"のデフォルトの許容度はである:

デフォルトメソッドの"CSDP"がメッセージを出す場合は,まず"DSDP"を試すとよい:

この場合は,"DSDP"がよい解を求めることに成功する:

デフォルト許容度10-3での"SCS"も試すとよいだろう:

"SCS"を使った結果の質は,Toleranceを小さくすると向上することが多い:

PerformanceGoal  (1)

オプションPerformanceGoalのデフォルト値は$PerformanceGoalである:

PerformanceGoal"Quality"を使ってより正確な結果を得る:

PerformanceGoal"Speed"を使って,質は犠牲にしてもより速く解を得る:

かかった時間を比較する:

"Speed"を目標にすると結果の確度が下がる:

Tolerance  (2)

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

Minimizeを使って厳密な最小値を計算する:

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

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

Toleranceの設定を小さくするとより正確な結果が与えられるが,計算時間は長くなるかもしれない:

許容度が小さくなると時間がかかる:

許容度の幅が狭まると答がより正確になる:

アプリケーション  (33)

基本的なモデリング変換  (13)

 (-x 1; 1 -y)_(TemplateBox[{2}, SemidefiniteConeList])0に従って を最大化する.目的関数を否定することで最大化問題を解く:

主最小値を否定して対応する最大値を得る:

決定変数に線形依存する対称行列 の最大固有値を最小化するを求める.に等しいので,この問題は線形行列不等式として立式できる.ただし, 番目の固有値である.線形行列関数 を定義する:

実対称行列 は直交行列 で対角化できる.したがって,.ゆえに,のときかつそのときに限り .任意の について を取ると,.したがって,のときかつそのときに限り .数値的にシミュレーションを行って,これらの式が等しいことを示す:

結果の問題:

モンテカルロシミュレーションを行なって結果の妥当性をチェックする:

決定変数に線形依存する対称行列の最小固有値を最大化するを求める.線形行列関数 を定義する:

に等しいので(ただし, 番目の固有値),この問題は線形行列不等式として立式できる. を最大化するために を最小化する:

モンテカルロシミュレーションを実行して結果の妥当性をチェックする:

決定変数に線形依存する対称行列 の最大固有値と最小固有値の差を最小にするを求める.線形行列関数 を定義する:

と等しいので(ただし, 番目の固有値),この問題は,線形行列不等式として立式できる.結果の問題を解く:

この場合,最小固有値と最大固有値は一致し,差は0である:

において線形の対称行列 の絶対値が最大の固有値を最小化する:

最大固有値は lambda I-A(x,y)>=_(TemplateBox[{2}, SemidefiniteConeList])0を満足する.絶対値が最大の の負の固有値はの最大固有値で,lambda I+A(x,y)>=_(TemplateBox[{2}, SemidefiniteConeList])0を満足する:

において線形行列 の最大特異値 を最小化するを求める:

の最大特異値 の最大固有値の平方根で,上記の例から (sigma I A(x,y); A(x,y)^T sigma I)_(TemplateBox[{5}, SemidefiniteConeList])0を満足する:

結果をプロットする:

を最小化する.補助変数 を使うと,問題は となるように を最小化するものに変化する.これはに等しい:

シューアの補題の制約条件には,であれば,のときかつそのときに限りブロック行列 とある.したがって, は0でなければならないから, および について,

制約条件 を直接使うと,自動的に半定値形式に変換される:

に従い,のときは であると仮定して,を最小化する.補助変数 を使うと,目的は となるように を最小化することになる:

を含意することをチェックする:

シューアの補題の制約条件を使うと,(t alpha.x+beta; alpha.x+beta gamma.x+delta )_(TemplateBox[{2}, SemidefiniteConeList])0のときかつそのときに限り である.スレッディングを回避するための制約条件の構築にInactive[Plus]を使う:

楕円体,二次の円錐と放物体を含む二次集合 について,かどうかを判定する.ただし,は対称行列,はベクトル,はスカラーである:

集合 が全次元であると仮定すると,S-procedureは,となるような非負の数 が存在するときかつそのときに限り であるとする.そのような非負の が存在することを,視覚的に確認する:

λ0なので である:

(x 1; 1 y)_(TemplateBox[{2}, SemidefiniteConeList])0に従ってを最小化する.目的関数を,追加の に等しい制約条件 を加えて線形関数 に変換する:

(x 1; 1 y)_(TemplateBox[{2}, SemidefiniteConeList])0に従って を最小化する.目的関数をを使って線形関数と追加的な制約条件に変換する:

(x 1; 1 y)_(TemplateBox[{2}, SemidefiniteConeList])0に従ってを最小化する.目的関数を追加的な, と等しい制約条件 がある線形関数 に変換する:

に従って を最小化する.ただし, は非減少関数で を最小化する.主ミニマイザ は両方の問題で同じである. (x 1; 1 y)_(TemplateBox[{2}, SemidefiniteConeList])0に従って を最小化することを考える:

真の最小値は, の最小値に適用することで得られる:

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

離散データ集合をフィットするTemplateBox[{{{a, ., c}, -, b}}, Norm]を最小化することで五次多項式の係数 を求める:

多項式の基底を選択し,DesignMatrixと出力ベクトルを使って入力行列を構築する:

補助変数 を使うと,目的は となるように を最小化することに変換される.これは,基本的なモデリング変換でも示したように,に等しい:

フィットをデータと比較する:

チェビシェフ(Chebyshev)基底を使ってTemplateBox[{{{a, ., x}, -, b}, infty}, Norm2]=max_i|a_i.x-b|を最小化することで,対数スケールで変化する離散データの近似関数を求める:

チェビシェフ基底関数を選択してランダムなデータ点におけるその値を計算する:

データは対数スケールなので,直接データをフィットすることは望ましくない.代りに,問題を変換してを最小化することにする.補助変数 を使って となるように を最小化する.この制約条件はに等しい:

近似関数の係数を求める:

結果のフィット:

フィットを可視化する:

データのフィットは関数Fitを使って直接求めることもできる.しかし,対数変換なしでは,近似関数にかなりの摂動が見られる:

指定された二変量多項式 を平方和多項式によって表す:

目的は,となるような を求めることである.ただし,は単項式のベクトルである:

対称行列 を構築する:

および の多項式係数を求め,両者が等しいことを確かめる:

の要素を求める:

二次の項 .ただし, のコレスキー(Cholesky)分解で得られた下三角行列である:

平方和多項式を与えられた多項式と比較する:

濃度で制約された最小二乗問題. が最大で 個の非零要素を持つようにを最小化する:

が,もし ならば は非零となるような決定ベクトルであるとする.決定制約は次のようになる:

のときの制約 をモデル化するために,となるような大きい定数 を選ぶ:

補助変数 を使うと,目的は となるように を最小化することに変わる.これはに等しい:

濃度で制約された最小二乗問題を解く:

部分集合の選択は,Fit正規化を使うとより効率よくできる.まず,最高で 個の基底関数を使う正規化パラメータの範囲を求める:

で正規化されたフィットにおける非零項を求める:

これらの基底項だけのフィットを求める:

関数集合候補から与えられたデータを近似する関数の最良の部分集合を求める:

近似関数は となる:

最終の近似には最大5個の基底関数が使われる:

選択されなかった関数に関連付けられた係数は0でなければならない:

関数の最良の部分集合を求める:

結果の近似を与えられたデータと比較する:

幾何問題  (6)

を中心として半径 で,点の集合を包含している最小の円板を求める:

各点 について,制約条件 TemplateBox[{{c, -, {p, _, i}}}, Norm]<=r, i=1,2,...,n が満足されなければならない.この条件は に等しい.条件の立式にはInactiveを使う:

半径 を最小にすることで包含円板を求める:

囲い込まれた領域を可視化する:

境界円板の最小面積はBoundingRegionを使って求めることもできる:

{x:TemplateBox[{{{a, ., x}, +, b}}, Norm]<=1}としてパラメータ化された,点の集合を取り囲む最小楕円を,面積を最小化することで求める:

各点 について,制約条件TemplateBox[{{{a, ., {p, _, i}}, +, b,  }}, Norm]<=1, i=1,2,...,n が満足されなければならない:

この面積は に比例する.単調関数Logを適用すると,最小化する関数はになる.これは,-Tr(a)を最小化することに等しい:

パラメータ化された楕円を明示的な形式に変換する:

境界楕円は,最小面積であるとは限らないが,BoundingRegionを使って求めることができる:

最適楕円の面積の方が小さい:

{x:TemplateBox[{{{a, ., x}, +, b}}, Norm]<=1}としてパラメータ化された,点の集合を取り囲む三次元で最小の楕円を,体積を最小にすることで求める:

各点 について,制約条件TemplateBox[{{{a, ., {p, _, i}}, +, b,  }}, Norm]<=1, i=1,2,...,n が満足されなければならない:

体積を最小化することは,を最小化することに等しいが,これは-Tr(a)を最小化することに等しい:

パラメータ化された楕円を明示的な形式に変換する:

境界楕円体は,体積が最小であるとは限らないが,BoundingRegionを使って求めることができる:

{x=C.y+d :TemplateBox[{y}, Norm]<=1}としてパラメータ化された,凸多角形にフィットする最大面積の楕円を求める:

凸多角形の各線分は半平面 の交点として表すことができる:

半平面を媒介変数を使って表示するとsup{(a_i.C).y:TemplateBox[{y}, Norm]<=1}+a_i.d<=b_iになる.この項sup{(a_i.C).y:TemplateBox[{y}, Norm]<=1}=sup{TemplateBox[{{{a, _, i}, ., C}}, Norm]TemplateBox[{y}, Norm]Cos(theta):TemplateBox[{y}, Norm]<=1}=TemplateBox[{{{a, _, i}, ., C}}, Norm].したがって,制約条件は TemplateBox[{{{a, _, i}, ., C}}, Norm]+a_i.d<= b_iであるが,これは に等しい:

面積を最小化することはを最小化することに等しいが,これは-Tr(C)を最小化することに等しい:

パラメータ化された楕円を明示的な形式に変換する:

で与えられる,の形の3つの楕円を取り囲む円板の中心 と半径 を求める:

S-procedureを使うと,円板はのときかつそのときに限り楕円を含むことを示すことができる:

目的は,で与えられる半径 を最小化することである.補助変数 を使うと,目的が となるように を最小化することになる.これは,として書くことができる:

円板の中心と半径を求める:

円板は以下で与えられる:

楕円の二次形式を明示的なに変換する:

結果を可視化する:

楕円体が の形式の他の楕円体の部分集合かどうかをテストする:

S-procedureを使うと,のときかつそのときに限り楕円2が楕円1の部分集合であることが示せる:

条件が満足されたかどうかをチェックする:

楕円体を明示的な形式に変換し,楕円2が楕円1の中にあることを確認する:

楕円1に重なるように楕円2を動かす:

テストは,楕円体2が楕円体1の部分集合ではなく,問題が実行不可能であることを示している:

分類問題  (2)

2つの点の集合 を分ける楕円を求める:

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

分離楕円体の係数を求める:

結果を可視化する:

2つの点の集合 を分離する,円に限りなく近い楕円を求める:

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

楕円が限りなく円に近くなるための制約条件は である:

を最小化することで分離楕円の係数を求める:

結果を可視化する:

グラフ問題  (3)

半定値最適化を使って計算可能なLovász数は,グラフ不変量をハード計算するための境界として使われる:

Lovász数は,グラフのシャノン(Shannon)容量の上界である:

Lovászのサンドイッチ定理によると以下のようになる:

グラフ のLovász数 ,によって与えられる.ただし, について である.これは,双対半定値形式で,および に従う , として書くことができる.これ以外の場合は0である:

GraphDataからの厳密なLovász数の値と比較する:

厳密な結果が得られない についての近似結果を求める:

ランダムグラフについて を求める:

最大カット問題は, からその補集合 に横断する辺の重みの和 が最大となるグラフの頂点集合 の部分集合 を決定する. について について とする.を最大化する.ただし, であり, はグラフのラプラス行列である:

より小さいグラフについては,最大カット問題は厳密に解くことができるが,大きいグラフの場合は,一般に問題にNP完全性の複雑さが含まれるので,厳密に解くことは現実的ではない:

この問題はを最小化する.ただし,Y=x.TemplateBox[{x}, Transpose]は階数1の対称半正定値行列で,各 についてで,これは に等しい.ただし,番目の対角位置が1でその他は0の行列である.解を現実的なものとするために,階数1の条件を除去した緩和問題を解く.そのような については,カットはランダムな丸めで構築される.Y=U TemplateBox[{U}, Transpose]を分解する. は単位ノルムの一様分布に従うランダムなベクトルであり,であるとする.デモ用に,緩和された値,丸めた値, 内の点からなる赤で表示されたグラフを示す関数が定義されている:

前に示した方法で近似最大カットを求め,厳密な結果と比較する:

格子グラフの最大カットを求める:

ランダムグラフの最大カットを求める:

ペテルセン(Peterson)グラフについて,緩和アルゴリズムと厳密アルゴリズムの所要時間を比較する:

からその対辺 までの辺の重みの合計 が最大になるようにして,頂点 を持つ指定されたグラフの部分集合 を求める.グラフを指定する:

目的は を最大化することである.ただし,Y=x.TemplateBox[{x}, Transpose]は対称一階半正定値行列で, はグラフのラプラス行列である:

について について とすると かつ となる:

一階行列の仮定を削除し,結果の最大カット問題を解く:

部分集合 および を抽出する:

部分集合をグラフ上に表示する:

制御と動的系の問題  (3)

線形の動的系 が,任意の初期条件について漸近的に安定であることを示す.この系は,となるような正定値行列 が存在するときかつそのときに限り安定であると言われる.ただし,はリャプノフ(Lyapunov)関数と呼ばれる:

リャプノフ関数 を微分すると が与えられる.したがって,安定条件は である:

行列 を求める:

の固有値はすべて負であり,したがって,この行列は負定値行列である.これが,安定性を証明する:

系の解析解は なので,系が任意の初期条件に従って0に近付くことを数値的に確かめる.シミュレーションに を使う:

閉ループ系 が安定するようなコントローラ を求める:

リャプノフの安定性定理を使うと,目的は,安定化条件を満足する行列 を求めることになる. とすると,第1条件は適切な半定値条件 になる:

行列 を求める:

制御行列は として計算できる:

閉ループ系は, の固有値の実部が負のときに安定する:

数値的に実行して系が安定していることを確認する:

動的系 のリャプノフ関数を求める:

目的はとなるような を求めることである.ただし,は単項式のベクトルである:

行列 を構築する:

安定性のためには,

係数が についてすべて正で についてはすべて負になるように,係数を一致させる:

行列 を求める:

リャプノフ関数は以下で与えられる:

リャプノフ関数を可視化する.関数の最小値の位置はアトラクタの位置と一致する:

構造最適化問題  (1)

片端が壁に固定されていて反対側の負荷に耐えなければならないトラスを,その重みを最低にして設計する:

トラスはリンクとノードを使ってモデル化できる.各ノードはリンクによって近傍ノードに接続されている.ノードの位置 を指定する:

壁に固定されているノードを指定する:

負荷が適用されるノードを指定する:

リンクによって互いに接続しているノードを指定し,各リンクの長さを計算する:

最適化されていないトラスを可視化する:

リンクは円筒形の棒である.各リンクは断面が の棒の集合から形成されなければならない.を,なら棒 が選ばれるような各リンク の決定ベクトルとする.こうすると,リンク について面積が で定義される.目的は重みを最低にすることである:

棒の選択制約は以下の通りである:

各リンクについて1本の棒しか選択できない.バイナリ制約は以下の通りである:

固定されていないノードの指標を求める:

この系の剛性行列は で与えられる.ただし, はノードの総数, は固定されたノード数, はすべてのリンクの集合である.ベクトルは,なら なら ,それ以外は0である:

が系全体の力ベクトルであるとする.固定されていない各ノードにおける力は である.力が適用されるノードは である:

を任意のノードにおける最大許容たわみとし, をノード の変位とすると,なら が満足される.ただし,はリンク に関連付けられた剛性行列である:

すべての変数を集める:

トラスの最適構造を求める:

最適トラスの一部となるリンクを抽出する:

最適トラスを可視化する.最適トラスの一部であるリンクは,使用されているロッド面積に基づいて色分けされている:

特性と関係  (8)

SemidefiniteOptimizationは目的関数の大域的最小値を与える:

可能領域上で最小値を持つ目的関数をプロットする:

Minimizeは,半定値問題に対して大域的な厳密結果を与える:

SemidefiniteOptimizationと比較する:

NMinimizeを使って,大域メソッドによって厳密ではない結果を得ることができる:

FindMinimumを使って,局所メソッドによって厳密ではない結果を得ることができる:

ConicOptimizationSemidefiniteOptimizationよりも一般的である:

SecondOrderConeOptimizationSemidefiniteOptimizationの特殊ケースである:

QuadraticOptimizationSemidefiniteOptimizationの特殊ケースである:

補助変数 を使い,追加的な制約条件 を使って を最小化する:

LinearOptimizationSemidefiniteOptimizationの特殊ケースである:

考えられる問題  (5)

最適点における制約条件は,ある程度の許容度まで満足される:

デフォルトオプションでは,この制約条件は許容度10-8に違反する:

空集合あるいは実行不可能な問題の最小値はと定義される:

ミニマイザはIndeterminateである:

非有界集合または非有界問題の最小値はである:

ミニマイザはIndeterminateである:

混合整数問題についての双対に関連した解の特性は得られないかもしれない:

制約条件の行列はエルミート行列でよいが,変数は実数でなければならない:

Vectors[n]を評価すると自動的にVectors[n,Complexes]になる:

指定に複素数を含まない問題については,ベクトル変数 v Vectors[n]は実数値であるとみなされる.その他の場合は,Vectors[n,Reals]として明示的に領域を与えなければならない:

Wolfram Research (2019), SemidefiniteOptimization, Wolfram言語関数, https://reference.wolfram.com/language/ref/SemidefiniteOptimization.html (2020年に更新).

テキスト

Wolfram Research (2019), SemidefiniteOptimization, Wolfram言語関数, https://reference.wolfram.com/language/ref/SemidefiniteOptimization.html (2020年に更新).

CMS

Wolfram Language. 2019. "SemidefiniteOptimization." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/SemidefiniteOptimization.html.

APA

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

BibTeX

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

BibLaTeX

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