NArgMin
NArgMin[f,x]
f が数値的に最小になる位置 xminを与える.
NArgMin[f,{x,y,…}]
f が数値的に最小になる位置{xmin,ymin,…}を与える.
NArgMin[{f,cons},{x,y,…}]
f が制約条件 cons に従って数値的に最小になる位置を与える.
NArgMin[…,x∈reg]
x が領域 reg 内にあるように制限する.
詳細とオプション
- NArgMinは大域的最適化(GO)としても知られている.
- NArgMinは,与えられた制約条件に従って常に f の最小値を求めようとする.
- NArgMinは,通常,制約が与えられた場合に可能な最小値を求めるために使われる.分野によっては,最適な戦略,最良適合,最適な構成等と呼ばれることがある.
- NArgMinは{xmin,ymin,…}の形のリストを返す.
- NArgMin[…,{x,y,…}]は事実上{x,y,…}/.Last[NMinimize[…,{x,y,…},…]に等しい.
- f と cons が線形または凸のとき,NArgMinが与える結果は実数および整数値の両方の上で最小値になる.それ以外の場合の結果は単に極小値であるかもしれない.
- NArgMinが制約条件を満足できないと判断した場合は{Indeterminate,…}が返される.
- NArgMinは,目的関数 f と制約条件 cons がスカラー変数またはベクトル変数に依存する式で与えられるモデリング言語をサポートする.f と cons は,一般に,非常に効率的な形に解析されるが,f と cons の項が変数の数値に対して数値を与える限りNArgMinはしばしば解を求めることができる.
- 制約条件 cons は以下の論理結合でよい.
-
lhs==rhs 等式 lhs>rhs, lhs≥rhs, lhs<rhs, lhs≤rhs 不等式 (LessEqual, …) lhsrhs, lhsrhs, lhsrhs, lhsrhs ベクトル不等式 (VectorLessEqual, …) {x,y,…}∈rdom 領域指定 - NArgMin[{f,cons},x∈rdom]は,事実上,NArgMin[{f,cons&&x∈rdom},x]に等しい.
- x∈rdom については,Indexed[x,i]を使って別の座標に言及することができる.
- 次は,使用可能な領域 rdom である.
-
Reals 実数スカラー変数 Integers 整数スカラー変数 Vectors[n,dom] のベクトル変数 Matrices[{m,n},dom] の行列変数 ℛ 幾何領域 に制限されたベクトル変数 - デフォルトで,すべての変数が実数であるとみなされる.
- 次は,指定可能なオプションである.
-
AccuracyGoal Automatic 目標となる最終確度桁数 EvaluationMonitor None f が評価されたときに常に評価される式 MaxIterations Automatic 使用する最大反復回数 Method Automatic 使用されるメソッド PrecisionGoal Automatic 目標となる最終精度桁数 StepMonitor None ステップを取るたびに常に評価される式 WorkingPrecision MachinePrecision 内部計算に使用する精度 - AccuracyGoalとPrecisionGoalの設定で最小値の位置の値と最小になったときの関数の値の両方で目標とする桁数を指定する.
- NArgMinは,AccuracyGoalとPrecisionGoalで指定された目標値のどちらかが達成されるまで計算を続ける.
- NArgMinのためのメソッドには2つのクラスがある.最初のクラスは問題の特性を使うので,メソッドが収束する際に求まった最小値は大域的であることが保証される.2番目のクラスは発見的なメソッドで,複数の局所探索を使うことがあるが,一般的には確率論によって調整され,大域的最小値に焦点が当てられる.このメソッドもしばしば大域的な最小値を求めるが,必ずそうするとは保証されない.
- 次は,解に収束する場合に最小値を与えることが保証されているメソッドである.
-
"Convex" 凸法だけを使う "MOSEK" 凸問題用の商用MOSEKライブラリを使う "Gurobi" 凸問題用の商用Gurobiライブラリを使う "Xpress" 凸問題用の商用Xpressライブラリを使う - 次は,発見的手法である.
-
"NelderMead" Nelder・Meadのシンプレックス法 "DifferentialEvolution" 差分進化を使う "SimulatedAnnealing" 焼きなまし法を使う "RandomSearch" 複数のランダムな初期点から始めて求まった最良の極小値を使う "Couenne" 非凸混合整数非線形問題にCouenneライブラリを使う
例題
すべて開くすべて閉じるスコープ (40)
基本的な用法 (12)
VectorGreaterEqualでいくつかの線形不等式制約を表すことができる:
v>= または\[VectorGreaterEqual]を使ってベクトル不等式の記号を入力する:
にスレッディングの可能性があるので,不等式 は とは等しくないかもしれない:
での意図しないスレッディングを避けたければInactive[Plus]を使うとよい:
定数パラメータを持つ方程式を使って での意図しないスレッディングを回避する:
VectorGreaterEqualは"NonNegativeCone"についての錐不等式を表す:
円錐の次元を明示的に指定したければ,{"NonNegativeCone",n}を使うとよい:
"NormCone"で錐不等式を使って制約条件 を指定する:
Indexedを使ってベクトル変数の成分(例:)にアクセスする:
ベクトル変数の次元と領域が曖昧なときはVectors[n,dom]を使って指定する:
NonNegativeReals ()を使って非負の制約条件を指定する:
NonPositiveReals ()を使って非正の制約条件を指定する:
Orによる制約を指定することができる:
領域制約1 (4)
Integersを使って整数領域の制約を指定する:
Vectors[n,Integers]を使ってベクトル変数に整数領域の制約を指定する:
NonNegativeIntegers ()を使って非負の整数領域の制約を指定する:
NonPositiveIntegers ()を使って非正の整数領域の制約を指定する:
領域制約2 (5)
Circumsphereを使うと同じ結果が直接得られる:
線形問題 (5)
線形の目的関数と制約条件がある場合は,最小値が見付かるとそれは大域的になる:
Equalを使っていくつかの等式制約を一度に表現する:
VectorLessEqualを使っていくつかのLessEqual不等式制約を一度に表現する:
Intervalを使って変数の境界を指定する:
凸に変換可能 (4)
面積1で の長方形の外周を最小にする高さ と重み の値を求める:
この問題は対数凸問題であり,変換{hExp[],wExp[ ]}を行い,対数を取って凸問題を得ることで解ける:
不等式制約とノルム制約に従って擬似凸関数 を最大化する.目的関数は領域上の非負関数と非正関数の積なので,擬似凸関数である:
擬似凸問題はパラメータ についてのパラメトリック凸最適化問題として解くことができる:
制約条件に従って を最小化する.目的関数は凸ではないが凸関数の差 として表すことができる.ただし, と は凸関数である:
オプション (7)
AccuracyGoalとPrecisionGoal (2)
Method (2)
StepMonitor (1)
NArgMinが古典的なRosenbrock関数の最小値を求めるのに取るステップ:
WorkingPrecision (1)
作業精度をにする.デフォルトでAccuracyGoalとPrecisionGoalはに設定されている:
アプリケーション (14)
幾何学の問題 (4)
半径1で中心が と の2つの異なる円板上にある最近点を求める.が円板1の上の点,が円板2の上の点であるとする.目的は,制約条件に従ってを最小にすることである:
包み込む最小の球はBoundingRegionを使って効率的に求めることができる:
3Dの点集合を包み込む,としてパラメータ化される楕円体の体積を最小にする と の値を求める:
境界楕円体の体積は,最小であるとは限らないが,BoundingRegionで求めることもできる:
指定された半径 ()で重なり合ない 個の円を収めることができる最小の正方形を求める.円の数と各円の半径を指定する:
が円 の中心なら,目的はを最小化することである. を最小にして とするために目的を変形することができる:
データフィッティング問題 (3)
与えられた行列 a とベクトル b について,制約条件 に従ってを最小化する点を求める:
データの最初と最後の点が曲線上にあるようにして,三次曲線を離散データにフィットする:
DesignMatrixを使って行列を構築する:
最初と最後の点が曲線上になければならないという制約条件を定義する:
分類問題 (3)
分離するためには,集合1は を,集合2は を満足しなければならない:
目的はを最小にすることだが,そうすると と の間の厚みの2倍が与えられる:
DesignMatrixを使って2つの集合のための二次多項式データ行列を構築する:
分離するためには,集合1は を,集合2は を満足しなければならない:
与えられた点集合 を異なる集合に分割する.これは,を最小にすることで各集合の中心 を求めることで行える.ただし,は与えられた局所カーネルで は与えられたペナルティパラメータである:
カーネル は,もし ならば ,それ以外では の 最近傍()関数である.この問題のために 最近傍が選ばれた:
画像処理 (1)
施設の場所の問題 (1)
ポートフォリオの最適化 (1)
リスクが最小でリターンか最大になるような,資本 の6つの株式への投資配分を求める:
リターンは で与えられる.ただし, は個別の株式の予想収益の値のベクトルである:
リスクは で与えられる. はリスク回避パラメータであり, である:
目的は,指定されたリスク回避パラメータについてリスクを最小にしつつリターンを最大にすることである:
重み はどれも0より大きくなければならず,重みに市場影響コストを加えたものは1でなければならない:
リスク回避パラメータの範囲について,利益と対応するリスクを計算する:
範囲 での最適な は,リスクとリターンのトレードオフの上界包絡線を与える:
市場コストを説明することで,低リスク回避のための多様化したポートフォリオが得られるが,リスク回避が高い場合は,多様化されていない株式を購入するため,市場への影響コストが支配的になる:
特性と関係 (6)
NMinimizeは最小値と,変数の値を最小にする規則を与える:
NArgMinは最小にする値のリストを与える:
NMinValueは最小値だけを与える:
凸問題については,ConvexOptimizationを使って追加的な解の特性が得られるかもしれない:
パラメータがある凸問題について,ParametricConvexOptimizationを使うとParametricFunctionが与えられる:
ParametricFunctionはパラメータの値について評価できる:
NArgMinを使ってパラメトリック問題についての関数を定義する:
ParametricFunctionの導関数も計算できる:
RobustConvexOptimizationは,パラメータ制約がある凸問題についてはパラメータの可能なすべての値について有効な最適値を求める:
NArgMinはパラメータの特定の値についてより小さい最小値を与えるミニマイザを求めるかもしれない:
このミニマイザは と の使用可能なすべての値についての制約条件は満足しない:
パラメータの特定の値について求まった最小値はロバストな最小値以下である:
RegionNearestを使って指定された領域の最近点を計算する:
これは,NArgMinを使っても計算できる:
テキスト
Wolfram Research (2008), NArgMin, Wolfram言語関数, https://reference.wolfram.com/language/ref/NArgMin.html (2024年に更新).
CMS
Wolfram Language. 2008. "NArgMin." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/NArgMin.html.
APA
Wolfram Language. (2008). NArgMin. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/NArgMin.html