OpenCV 4.5.3(日本語機械翻訳)
|
This class is used to perform the non-linear non-constrained minimization of a function, [詳解]
#include <optim.hpp>
cv::MinProblemSolverを継承しています。
公開メンバ関数 |
|
virtual void | getInitStep (OutputArray step) const =0 |
ダウンヒルシンプレックスアルゴリズムで使用される初期ステップを返します。[【詳解】(英語]
|
|
virtual void | setInitStep (InputArray step)=0 |
下り坂シンプレックス・アルゴリズムで使用される初期ステップを設定します。[【詳解】(英語]
|
|
![]() |
|
virtual Ptr< Function > | getFunction () const =0 |
最適化された関数のゲッター。[【詳解】(英語]
|
|
virtual void | setFunction (const Ptr< Function > &f)=0 |
最適化された関数のセッター。[【詳解】(英語]
|
|
virtual TermCriteria | getTermCriteria () const =0 |
このアルゴリズムに以前に設定された最終基準のゲッター。[【詳解】(英語]
|
|
virtual void | setTermCriteria (const TermCriteria &termcrit)=0 |
ソルバーの最終基準を設定する。[【詳解】(英語]
|
|
virtual double | minimize (InputOutputArray x)=0 |
実際にアルゴリズムを実行し、最小化を行います。[【詳解】(英語]
|
|
![]() |
|
virtual CV_WRAP void | clear () |
アルゴリズムの状態をクリアする[【詳解】(英語]
|
|
virtual void | write (FileStorage &fs) const |
アルゴリズムのパラメーターをファイルストレージに格納[【詳解】(英語]
|
|
CV_WRAP void | write (const Ptr< FileStorage > &fs, const String &name=String()) const |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。 |
|
virtual CV_WRAP void | read (const FileNode &fn) |
アルゴリズム・パラメータをファイル・ストレージから読み込みます。[【詳解】(英語]
|
|
virtual CV_WRAP bool | empty () const |
が空の場合はtrueを返します。Algorithmが空の場合は真を返します。[【詳解】(英語]
|
|
virtual CV_WRAP void | save (const String &filename) const |
virtual CV_WRAP String | getDefaultName () const |
静的公開メンバ関数 |
|
static Ptr< DownhillSolver > | create (const Ptr< MinProblemSolver::Function > &f=Ptr< MinProblemSolver::Function >(), InputArray initStep=Mat_< double >(1, 1, 0.0), TermCriteria termcrit=TermCriteria(TermCriteria::MAX_ITER+TermCriteria::EPS, 5000, 0.000001)) |
この関数は,すぐに使用可能なDownhillSolverオブジェクトを作成します。[【詳解】(英語]
|
|
![]() |
|
template<typename _Tp > | |
static Ptr< _Tp > | read (const FileNode &fn) |
ファイル・ノードからアルゴリズムを読み込む[【詳解】(英語]
|
|
template<typename _Tp > | |
static Ptr< _Tp > | load (const String &filename, const String &objname=String()) |
ファイルからアルゴリズムを読み込む[【詳解】(英語]
|
|
template<typename _Tp > | |
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String()) |
文字列からアルゴリズムを読み込む[【詳解】(英語]
|
|
その他の継承メンバ |
|
![]() |
|
void | writeFormat (FileStorage &fs) const |
このクラスは、関数の非線形非制約最小化を実行するために使用されます。
で定義されたn
-次元ユークリッド空間上で定義された、勾配が既知の関数の非線形非制約最小化を行うために使用します。Nelder-Mead法, ダウンヒルシンプレックス法**としても知られています。この方法の基本的な考え方は、以下のサイトから得ることができます。http://en.wikipedia.org/wiki/Nelder-Mead_method.
この方法は、決定論的ではありますが、どちらかというとヒューリスティックであり、したがって、グローバルなものではなく、ローカルなミニマムに収束する可能性があることに注意する必要があります。この手法は反復最適化手法であり、各ステップではn+1
点でのみ評価される関数の値に関する情報を用いてシンプレックスを使用します。n
-次元空間として配置された点でのみ評価される関数の値に関する情報を各ステップで使用する反復最適化手法です(このため、手法の2番目の名前が付けられました)。各ステップでは、関数を評価するために新しい点が選択され、得られた値は以前のものと比較され、この情報に基づいてシンプレックスはその形を変え、ローカル・ミニマムにゆっくりと移動していきます。したがって、この方法はのみを使用しています。非線形共役勾配法(optimにも実装されている)とは逆に、関数の値だけを使って判断しています。
Algorithmは、正の整数 termcrit.maxCount と正の非整数 termcrit.epsilon で定義されたいくつかの条件で、行われた関数評価の数が termcrit.maxCount を超えたとき、シンプレックスの頂点での関数値が termcrit.epsilon の範囲内になったとき、またはシンプレックスが termcrit.epsilon の辺を持つボックスで囲むことができるほど小さくなったとき、いずれの場合でも最初に停止します。
|
static |
この関数は,すぐに使用可能なDownhillSolverオブジェクトを作成します。
すべてのパラメータはオプションであるため、パラメータがまったくない場合でもこの手続きを呼び出すことができます。この場合は、デフォルト値が使用されます。ターミナル基準のデフォルト値は、唯一の賢明なものであるためです。MinProblemSolver::setFunction()およびDownhillSolver::setInitStep()にそれぞれのパラメータが与えられていない場合は,得られたオブジェクトに対してcreate(). そうでない場合は,2つの方法(createDownhillSolver() にパラメータを与えるか,パラメータを与えずに .DownhillSolver() を呼び出すか)があります.MinProblemSolver::setFunction()およびDownhillSolver::setInitStep()を呼び出す)は,全く同等です(無効な入力が検出された場合には,同じようにエラーが発生します)。
f | で送信したものと同様に,最小化される関数へのポインタを指定します.MinProblemSolver::setFunction. |
initStep | MinProblemSolver::setInitStepで送信したものと同様に、初期シンプレックスを構築するために使用される初期ステップです。 |
termcrit | アルゴリズムへの末端の基準は、以下の方法で提出したものと同様です。MinProblemSolver::setTermCriteria. |
|
pure virtual |
ダウンヒルシンプレックスアルゴリズムで使用される初期ステップを返します。
step | アルゴリズムで使用される初期ステップです。対応するセッターは行ベクトルと同様に列ベクトルも受け入れますが、このメソッドは行ベクトルを返すことに注意してください。 |
|
pure virtual |
下り坂シンプレックス・アルゴリズムで使用される初期ステップを設定します。
ステップは、初期点 (で指定) と共にDownhillSolver::minimizeで与えられる)は2n
-次元のベクトルで、初期シンプレックスの形状を決定するために使用されます。大雑把に言うと、初期点は単純交点の位置(単純交点のセントロイドになる)を決定し、ステップは単純交点の広がり(各次元でのサイズ)を決定します。より正確には、もしをそれぞれ初期ステップ、初期点とすると、単純十字の頂点は次のようになります。
および
のためのものです。
ここで
の初期ステップの投影を表します。n-番目の座標(射影の結果は次式で与えられるベクトルとして扱われる)。
ここで
は正準基底を形成する)。
step | アルゴリズムで使用される初期ステップ。大雑把に言うと、初期シンプレックスの広がり(各次元での大きさ)を決めるものです。 |