関数
ネームスペース mist::condor

CONDOR法(多変数関数の極小値の探索) [詳細]

関数

template<class Matrix , class Functor >
size_t generate_first_point_set (const Matrix &xbase, std::vector< Matrix > &x, Matrix &f, Functor func, double rho)
 CONDOR アルゴリズムの初期パラメータ群を求める関数
template<class Matrix >
bool compute_polynomial_basis (std::vector< Matrix > &x, Matrix &f, std::vector< __condor_utility__::polynomial > &poly_bases, __condor_utility__::polynomial &poly)
 指定したパラメータと評価値からラグランジェ多項式を構成する
template<class Matrix >
double compute_lambda_function1 (const Matrix &H)
 Trust Region を求める際のλの上下限の計算に用いる補助関数
template<class Matrix >
double compute_lambda_function2 (const Matrix &H, double alpha=1.0)
 Trust Region を求める際のλの上下限の計算に用いる補助関数
template<class Matrix >
double compute_lambda_lower_bound (const Matrix &H, double dg_delta)
 Trust Region を求める際のλの下限の初期値
template<class Matrix >
double compute_lambda_upper_bound (const Matrix &H, double dg_delta)
 Trust Region を求める際のλの上限の初期値
template<class Matrix >
void compute_trust_region_step (const Matrix &xbest, Matrix &s, __condor_utility__::polynomial &poly, double delta, size_t max_loop=1000)
 CONDOR アルゴリズム内で使用する Trust Region 内の最小値を与える方向を求める関数
template<class T , class Allocator , class Functor >
double minimization (matrix< T, Allocator > &p, Functor func, double rho, double rho_end, double tolerance, size_t &iterations, size_t max_iterations=1000)
 CONDOR アルゴリズムを用いて評価関数の最小値を探索する
template<class T , class Allocator , class Functor >
double minimization (matrix< T, Allocator > &p, Functor f, double rho, double rho_end, size_t max_iterations)
 CONDOR アルゴリズムを用いて評価関数の最小値を探索する
template<class T , class Allocator , class Functor >
double minimization (matrix< T, Allocator > &p, Functor f, double tolerance, size_t max_iterations)
 CONDOR アルゴリズムを用いて評価関数の最小値を探索する

説明

CONDOR法(多変数関数の極小値の探索)

関数

template<class Matrix >
double mist::condor::compute_lambda_function1 ( const Matrix &  H)
inline

Trust Region を求める際のλの上下限の計算に用いる補助関数

引数
[in]H… ラグランジェ多項式から求めたヘッセ行列
戻り値
$\displaystyle-\min_{i} \left\{ -H_{ii} \right\}$

参照元 compute_lambda_lower_bound().

template<class Matrix >
double mist::condor::compute_lambda_function2 ( const Matrix &  H,
double  alpha = 1.0 
)
inline

Trust Region を求める際のλの上下限の計算に用いる補助関数

引数
[in]H… ラグランジェ多項式から求めたヘッセ行列
[in]alpha… H( i, i ) の符号
戻り値
$\displaystyle\max_{i} \left\{ -H_{ii} + \sum_{i \ne j}{\|H_{ij}\|} \right\}$

参照元 compute_lambda_lower_bound(), compute_lambda_upper_bound(), と minimization().

template<class Matrix >
double mist::condor::compute_lambda_lower_bound ( const Matrix &  H,
double  dg_delta 
)
inline

Trust Region を求める際のλの下限の初期値

引数
[in]H… ラグランジェ多項式から求めたヘッセ行列
[in]dg_delta… ||g|| / delta
戻り値
λの下限の初期値

参照先 compute_lambda_function1(), と compute_lambda_function2().

参照元 compute_trust_region_step().

template<class Matrix >
double mist::condor::compute_lambda_upper_bound ( const Matrix &  H,
double  dg_delta 
)
inline

Trust Region を求める際のλの上限の初期値

引数
[in]H… ラグランジェ多項式から求めたヘッセ行列
[in]dg_delta… ||g|| / delta
戻り値
λの上限の初期値

参照先 compute_lambda_function2().

参照元 compute_trust_region_step().

template<class Matrix >
bool mist::condor::compute_polynomial_basis ( std::vector< Matrix > &  x,
Matrix &  f,
std::vector< __condor_utility__::polynomial > &  poly_bases,
__condor_utility__::polynomial &  poly 
)

指定したパラメータと評価値からラグランジェ多項式を構成する

引数
[in]x… 評価値を計算したパラメータ群
[in]f… パラメータに対応した評価値
[in,out]poly_bases… Trust Region を構成するラグランジェ多項式の基底
[out]poly… Trust Region を構成するラグランジェ多項式
戻り値
ラグランジェ多項式が正しくもとまったかどうか

参照元 minimization().

template<class Matrix >
void mist::condor::compute_trust_region_step ( const Matrix &  xbest,
Matrix &  s,
__condor_utility__::polynomial &  poly,
double  delta,
size_t  max_loop = 1000 
)

CONDOR アルゴリズム内で使用する Trust Region 内の最小値を与える方向を求める関数

引数
[in]xbest… 現時点での最も良い評価値を与えるパラメータ
[in]s… Trust Region を探索した結果,評価値を減少させるであろう方向
[in]poly… Trust Region を構成するラグランジェ多項式
[in]delta… Trust Region の半径
[in]max_loop… Trust Region 内の探索を行う最大反復回数

参照先 compute_lambda_lower_bound(), と compute_lambda_upper_bound().

参照元 minimization().

template<class Matrix , class Functor >
size_t mist::condor::generate_first_point_set ( const Matrix &  xbase,
std::vector< Matrix > &  x,
Matrix &  f,
Functor  func,
double  rho 
)

CONDOR アルゴリズムの初期パラメータ群を求める関数

引数
[in]xbase… 探索開始パラメータ
[out]x… 評価値を計算したパラメータ群
[out]f… パラメータに対応した評価値
[in]func… 評価関数
[in]rho… 探索ステップ
戻り値
最も評価値の良いパラメータのインデックスを返す

参照元 minimization().

template<class T , class Allocator , class Functor >
double mist::condor::minimization ( matrix< T, Allocator > &  p,
Functor  func,
double  rho,
double  rho_end,
double  tolerance,
size_t &  iterations,
size_t  max_iterations = 1000 
)

CONDOR アルゴリズムを用いて評価関数の最小値を探索する

探索の開始点を指定し,その近傍点を評価しながら最小値を探索する. 関数の導関数が不要であり,値の範囲に制限が無いバージョン.

  • 参考文献
    • F. V. Berghen, H. Bersini, ``CONDOR, a new parallel, constrained extension of Powell's UOBYQA algorithm: Experimental results and comparison with the DFO algorithm,'' Journal of Computational and Applied Mathematics, Elsevier, Volume 181, Issue 1, September 2005, pp. 157–175
注意
本プログラムはMISTチームが独自に実装したCONDORアルゴリズムのため,Berghen 氏が公開されているプログラムとは同じ結果とならない可能性があります.
引数
[in,out]p… 探索の開始ベクトル,探索終了後に最小値を与えるベクトルが代入される
[in]func… 評価関数
[in]rho… 探索初期のステップ幅
[in]rho_end… 探索終了時のステップ幅
[in]tolerance… 探索終了時の許容相対誤差
[out]iterations… 反復回数の結果が代入される
[in]max_iterations… 最大反復回数
戻り値
極小を与える座標値における評価値

参照先 compute_lambda_function2(), compute_polynomial_basis(), compute_trust_region_step(), generate_first_point_set(), と mist::matrix< T, Allocator >::rows().

template<class T , class Allocator , class Functor >
double mist::condor::minimization ( matrix< T, Allocator > &  p,
Functor  f,
double  rho,
double  rho_end,
size_t  max_iterations 
)

CONDOR アルゴリズムを用いて評価関数の最小値を探索する

探索の開始点を指定し,その近傍点を評価しながら最小値を探索する. 関数の導関数が不要であり,値の範囲に制限が無いバージョン.

  • 参考文献
    • F. V. Berghen, H. Bersini, ``CONDOR, a new parallel, constrained extension of Powell's UOBYQA algorithm: Experimental results and comparison with the DFO algorithm,'' Journal of Computational and Applied Mathematics, Elsevier, Volume 181, Issue 1, September 2005, pp. 157–175
注意
本プログラムはMISTチームが独自に実装したCONDORアルゴリズムのため,Berghen 氏が公開されているプログラムとは同じ結果とならない可能性があります.
引数
[in,out]p… 探索の開始ベクトル,探索終了後に最小値を与えるベクトルが代入される
[in]f… 評価関数
[in]rho… 探索初期のステップ幅
[in]rho_end… 探索終了時のステップ幅
[in]max_iterations… 最大反復回数
戻り値
極小を与える座標値における評価値

参照先 mist::gold::minimization().

template<class T , class Allocator , class Functor >
double mist::condor::minimization ( matrix< T, Allocator > &  p,
Functor  f,
double  tolerance,
size_t  max_iterations 
)

CONDOR アルゴリズムを用いて評価関数の最小値を探索する

探索の開始点を指定し,その近傍点を評価しながら最小値を探索する. 関数の導関数が不要であり,値の範囲に制限が無いバージョン. 許容相対誤差のみで終了判定を行うバージョンであり,初期探索ステップ幅は 1.0 である.

  • 参考文献
    • F. V. Berghen, H. Bersini, ``CONDOR, a new parallel, constrained extension of Powell's UOBYQA algorithm: Experimental results and comparison with the DFO algorithm,'' Journal of Computational and Applied Mathematics, Elsevier, Volume 181, Issue 1, September 2005, pp. 157–175
注意
本プログラムはMISTチームが独自に実装したCONDORアルゴリズムのため,Berghen 氏が公開されているプログラムとは同じ結果とならない可能性があります.
引数
[in,out]p… 探索の開始ベクトル,探索終了後に最小値を与えるベクトルが代入される
[in]f… 評価関数
[in]tolerance… 探索終了時の許容相対誤差
[in]max_iterations… 最大反復回数
戻り値
極小を与える座標値における評価値

参照先 mist::gold::minimization().


Generated on Wed Nov 12 2014 19:44:29 for MIST by doxygen 1.8.1.2