[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
47.1 Introduction to cobyla | ||
47.2 Functions and Variables for cobyla | ||
47.3 Examples for cobyla |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
fmin_cobyla
は
Powell[1][2][3]による
Fortran制約最適化ルーチン COBYLAの (f2cl
による) Common Lisp翻訳です。
COBYLAはX上の形式 g(X) >= 0の M個の不等式制約を条件として目的函数 F(X)を最小化します。 ここで Xは N個の成分を持つ変数のベクトルです。
等式制約 g(X)=0は、 よく、不等式制約の組 g(X)>=0と -g(X)>= 0で実装することができます。 Maximaの COBYLAインターフェースは等式制約を受けつけ、内部的に等式制約を不等式制約の組に変換します。
アルゴリズムは目的函数や制約函数の線形近似を用います。 変数空間内の N+1点での線形補間で形成された近似です。 補間点は単体の頂点としてみなされます。 パラメータ RHOは単体のサイズを制御し、 RHOBEGから EHOENDに自動的に減らされます。 それぞれの RHOで、サブルーチンは現在のサイズにとって変数の良いベクトルを達成しようとし、 そして、 RHOは値 RHOENDに達するまで減らされます。 それゆえに、 RHOBEGと RHOENDはそれぞれ、変数への合理的な初期変化と変数に要求される精度に 設定されるべきですが、 この精度は保証はないので、実験の対象として見るべきです。 変数の変化を計算する時、ルーチンは制約を単一のペナルティ函数にひとまとめにせずに、 制約それぞれを個別に扱います。 サブルーチン名は the phrase Constrained Optimization BY Linear Approximations (線形近似による位相制約下最適化)に由来します。
参考文献:
[1] Fortran Codeはhttp://plato.asu.edu/sub/nlores.html#generalから
[2] M. J. D. Powell, "A direct search optimization method that models the objective and constraint functions by linear interpolation," in Advances in Optimization and Numerical Analysis, eds. S. Gomez and J.-P. Hennart (Kluwer Academic: Dordrecht, 1994), p. 51-67.
[3] M. J. D. Powell, "Direct search algorithms for optimization calculations," Acta Numerica 7, 287-336 (1998). Also available as University of Cambridge, Department of Applied Mathematics and Theoretical Physics, Numerical Analysis Group, Report NA1998/04 from http://www.damtp.cam.ac.uk/user/na/reports.html
Categories: Numerical methods · Optimization · Share packages · Package cobyla
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
オプションの制約の組を条件として多変数 Xに関する式 Fの近似的最小を返します。 Yは Xに対する初期推測のリストです。
Fは関数名やラムダ式ではなく、通常の式でなければいけません。
optional_args
は、
symbol = value
のように指定される付加的な引数を表します。
認識されるオプションの引数は以下の通りです:
constraints
Xが満たさなければいけない不等式と等式の制約のリスト。
不等式制約は、形式 g(X) >= h(X)
もしくは
g(X) <= h(X)
の実際の不等式でなければいけません。
等式制約は形式 g(X) = h(X)
のものでなければいけません。
rhobeg
単体のサイズを制御する内部 RHO変数の初期値(デフォルトは 1.0)。
rhoend
要望される最終値 rhoパラメータ。 近似的に変数の精度です。(デフォルトは 1d-6)
iprint
冗長な出力レベル(デフォルトは 0)。
maxfun
函数評価の最大回数(デフォルトは 1000)。
戻る時、ベクトルを返します:
var = value
の要素のリストです。
load(fmin_cobyla)
はこの関数をロードします。
この関数は、多倍長浮動小数点演算が使われること、
rhoendのデフォルト値が 10^(fpprec/2)
であることを除いて、
fmin_cobyla
と同一です。
更に知るには fmin_cobyla
を参照してください。
load(bf_fmin_cobyla)
はこの関数をロードします。
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
x1*x2を 1-x1^2-x2^2 >= 0の条件で最小化します。 理論的解は x1 = 1/sqrt(2), x2 = -1/sqrt(2)です。
(%i1) load(fmin_cobyla)$ (%i2) fmin_cobyla(x1*x2, [x1, x2], [1,1], constraints = [x1^2+x2^2<=1], iprint=1); Normal return from subroutine COBYLA NFVALS = 66 F =-5.000000E-01 MAXCV = 1.999845E-12 X = 7.071058E-01 -7.071077E-01 (%o2) [[x1 = 0.70710584934848, x2 = - 0.7071077130248], - 0.49999999999926, [[-1.999955756559757e-12],[]], 66] |
追加の例は share/cobyla/exディレクトリにあります。
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by 市川雄二 on June, 21 2016 using texi2html 1.76.