最急降下法(勾配を用いた多変数関数の極小値の探索) [詳細]
関数 | |
template<class T , class Allocator , class Functor > | |
double | minimization (matrix< T, Allocator > &p, Functor f, double tolerance, double distance, size_t &iterations, size_t max_iterations=1000) |
探索の開始点を指定し,勾配を計算しながら最小値を探索する | |
template<class T , class Allocator , class Functor > | |
double | minimization (matrix< T, Allocator > &p, const matrix< T, Allocator > &bound, Functor f, double tolerance, double distance, size_t &iterations, size_t max_iterations=1000) |
探索の開始点を指定し,勾配を計算しながら最小値を探索する | |
template<class T , class Allocator , class Functor1 , class Functor2 , class T2 > | |
double | minimization (array2< T, Allocator > &p, Functor1 f, Functor2 g, const T2 &data, double tolerance, size_t &iterations, const size_t max_iterations=12, const double armijo_rho=0.7, const double armijo_c=0.1, const size_t armijo_max_iteration=10) |
探索の開始点を指定し,最急降下法(Steepest descent method)によりユーザーが指定した勾配計算関数を用いて最小値を探索する | |
template<class T , class Allocator , class Functor1 , class Functor2 > | |
double | minimization (array2< T, Allocator > &p, Functor1 f, Functor2 g, double tolerance, size_t &iterations, const size_t max_iterations=12, const double armijo_rho=0.7, const double armijo_c=0.1, const size_t armijo_max_iteration=10) |
探索の開始点を指定し,最急降下法(Steepest descent method)によりユーザーが指定した勾配計算関数を用いて最小値を探索する | |
template<class T , class Allocator , class Functor > | |
double | minimization (matrix< T, Allocator > &p, Functor f, double tolerance, double distance=1.0, size_t max_iterations=1000) |
探索の開始点を指定し,勾配を計算しながら最小値を探索する | |
template<class T , class Allocator , class Functor > | |
double | minimization (matrix< T, Allocator > &p, const matrix< T, Allocator > &bound, Functor f, double tolerance, double distance=1.0, size_t max_iterations=1000) |
探索の開始点を指定し,勾配を計算しながら最小値を探索する |
最急降下法(勾配を用いた多変数関数の極小値の探索)
double mist::gradient::minimization | ( | matrix< T, Allocator > & | p, |
Functor | f, | ||
double | tolerance, | ||
double | distance, | ||
size_t & | iterations, | ||
size_t | max_iterations = 1000 |
||
) |
探索の開始点を指定し,勾配を計算しながら最小値を探索する
探索の開始点を指定しその位置での勾配方向に向かった最小化を繰り返し,最小値を探索する
[in,out] | p | … 探索の開始ベクトル,最小値を与えるベクトル |
[in] | f | … 評価関数 |
[in] | tolerance | … 許容誤差 |
[in] | distance | … 勾配を計算する際の幅 |
[out] | iterations | … 実際の反復回数 |
[in] | max_iterations | … 最大反復回数 |
参照先 mist::gold::minimization(), と mist::array< T, Allocator >::size().
double mist::gradient::minimization | ( | matrix< T, Allocator > & | p, |
const matrix< T, Allocator > & | bound, | ||
Functor | f, | ||
double | tolerance, | ||
double | distance, | ||
size_t & | iterations, | ||
size_t | max_iterations = 1000 |
||
) |
探索の開始点を指定し,勾配を計算しながら最小値を探索する
探索の開始点を指定しその位置での勾配方向に向かった最小化を繰り返し,最小値を探索する
[in,out] | p | … 探索の開始ベクトル,最小値を与えるベクトル |
[in] | bound | … 探索に用いる各要素の探索範囲 |
[in] | f | … 評価関数 |
[in] | tolerance | … 許容誤差 |
[in] | distance | … 勾配を計算する際の幅 |
[out] | iterations | … 実際の反復回数 |
[in] | max_iterations | … 最大反復回数 |
参照先 mist::gold::minimization(), と mist::array< T, Allocator >::size().
double mist::gradient::minimization | ( | array2< T, Allocator > & | p, |
Functor1 | f, | ||
Functor2 | g, | ||
const T2 & | data, | ||
double | tolerance, | ||
size_t & | iterations, | ||
const size_t | max_iterations = 12 , |
||
const double | armijo_rho = 0.7 , |
||
const double | armijo_c = 0.1 , |
||
const size_t | armijo_max_iteration = 10 |
||
) |
探索の開始点を指定し,最急降下法(Steepest descent method)によりユーザーが指定した勾配計算関数を用いて最小値を探索する
探索の開始点を指定しその位置での勾配方向に向かった最小化を繰り返し,最小値を探索する
[in,out] | p | … 探索の開始ベクトル,最小値を与えるベクトル |
[in] | f | … 評価関数 |
[in] | g | … 勾配関数 |
[in] | data | … 評価関数,勾配関数の計算に必要なデータ |
[in] | tolerance | … 許容誤差 |
[out] | iterations | … 実際の反復回数 |
[in] | max_iterations | … 最大反復回数 |
[in] | armijo_rho | … 減少率(1次元最適化のパラメータ) |
[in] | armijo_c | … 条件数(1次元最適化のパラメータ) |
[in] | armijo_max_iteration | … 最大反復回数(1次元最適化のパラメータ) |
参照先 mist::array2< T, Allocator >::height(), mist::gold::minimization(), と mist::array2< T, Allocator >::width().
double mist::gradient::minimization | ( | array2< T, Allocator > & | p, |
Functor1 | f, | ||
Functor2 | g, | ||
double | tolerance, | ||
size_t & | iterations, | ||
const size_t | max_iterations = 12 , |
||
const double | armijo_rho = 0.7 , |
||
const double | armijo_c = 0.1 , |
||
const size_t | armijo_max_iteration = 10 |
||
) |
探索の開始点を指定し,最急降下法(Steepest descent method)によりユーザーが指定した勾配計算関数を用いて最小値を探索する
探索の開始点を指定しその位置での勾配方向に向かった最小化を繰り返し,最小値を探索する
[in,out] | p | … 探索の開始ベクトル,最小値を与えるベクトル |
[in] | f | … 評価関数 |
[in] | g | … 勾配関数 |
[in] | tolerance | … 許容誤差 |
[out] | iterations | … 実際の反復回数 |
[in] | max_iterations | … 最大反復回数 |
[in] | armijo_rho | … 減少率(1次元最適化のパラメータ) |
[in] | armijo_c | … 条件数(1次元最適化のパラメータ) |
[in] | armijo_max_iteration | … 最大反復回数(1次元最適化のパラメータ) |
参照先 mist::array2< T, Allocator >::height(), mist::gold::minimization(), と mist::array2< T, Allocator >::width().
double mist::gradient::minimization | ( | matrix< T, Allocator > & | p, |
Functor | f, | ||
double | tolerance, | ||
double | distance = 1.0 , |
||
size_t | max_iterations = 1000 |
||
) |
探索の開始点を指定し,勾配を計算しながら最小値を探索する
探索の開始点を指定しその位置での勾配方向に向かった最小化を繰り返し,最小値を探索する
[in,out] | p | … 探索の開始ベクトル,最小値を与えるベクトル |
[in] | f | … 評価関数 |
[in] | tolerance | … 許容誤差 |
[in] | distance | … 勾配を計算する際の幅 |
[in] | max_iterations | … 最大反復回数 |
double mist::gradient::minimization | ( | matrix< T, Allocator > & | p, |
const matrix< T, Allocator > & | bound, | ||
Functor | f, | ||
double | tolerance, | ||
double | distance = 1.0 , |
||
size_t | max_iterations = 1000 |
||
) |
探索の開始点を指定し,勾配を計算しながら最小値を探索する
探索の開始点を指定しその位置での勾配方向に向かった最小化を繰り返し,最小値を探索する
[in,out] | p | … 探索の開始ベクトル,最小値を与えるベクトル |
[in] | bound | … 探索に用いる各要素の探索範囲 |
[in] | f | … 評価関数 |
[in] | tolerance | … 許容誤差 |
[in] | distance | … 勾配を計算する際の幅 |
[in] | max_iterations | … 最大反復回数 |