|
From: DU V. DE V. F. G. P. <fra...@ca...> - 2007-05-23 17:35:29
|
=20 Here is a good C++ implementation candidate,=20 =20 http://www.alglib.net/optimization/lbfgs.php =20 Though, I'm not absolutely sure that the terms of use are compatible = with those of QL.=20 Fran=E7ois =20 -----Original Message----- From: qua...@li... = [mailto:qua...@li...] On Behalf Of = Bianchetti Marco Sent: Wednesday, May 23, 2007 6:13 PM To: qua...@li... Subject: [Quantlib-dev] optimizers =20 Hello, =20 at the moment are available into QuantLib the following optimizers: * Simplex (recently revisited: the Numerical Recipes = implementation badly failed in finding the minimum of a 1D parabole...) * Levenberg-Marquardt * Conjugate Gradient * Steepest Descent (still to be debugged, work in progress) and we are currently considering the option to port into QuantLib the = Broyden-Fletcher-Goldfarb-Shanno (BFGS2) algorithm, which in GSL is = declared to be the best (see the text below). So: * Any comment on the choice of BFGS2? do anyone has experience = with it ? * is anyone aware of an available open source C++ implementation = to be ported into Quantlib with small effort ? Personally, I would prefer NOT to translate the GSL implementation from = C to C++, because of the danger to introduce some tricky bug and because = it requires a much more sophisticated test suite (and much work). =20 ciao Marco =20 --- from: = http://www.gnu.org/software/gsl/manual/html_node/Multimin-Algorithms.html= Minimizer: gsl_multimin_fdfminimizer_vector_bfgs2 Minimizer: gsl_multimin_fdfminimizer_vector_bfgs These methods use the vector Broyden-Fletcher-Goldfarb-Shanno (BFGS) = algorithm. This is a quasi-Newton method which builds up an = approximation to the second derivatives of the function f using the = difference between successive gradient vectors. By combining the first = and second derivatives the algorithm is able to take Newton-type steps = towards the function minimum, assuming quadratic behavior in that = region.=20 The bfgs2 version of this minimizer is the most efficient version = available, and is a faithful implementation of the line minimization = scheme described in Fletcher's Practical Methods of Optimization, = Algorithms 2.6.2 and 2.6.4. It supercedes the original bfgs routine and = requires substantially fewer function and gradient evaluations. The = user-supplied tolerance tol corresponds to the parameter \sigma used by = Fletcher. A value of 0.1 is recommended for typical use (larger values = correspond to less accurate line searches).=20 |
|
From: <fre...@gm...> - 2007-05-24 07:58:02
|
Hello, The architecture of QuantLib for optimization can be re-used, can't it? The main difference between conjugate gradient and bfgs is only the update of the vector "lineSearch_->searchDirection()". bfgs would re-use current "armijo linesearch". However, it is true that this case would need more time for tests and also that no box constraints have been developed in QuantLib with conjugate gradient. Regards, Fr=E9d=E9ric Degraeve ------------------------------ *From:* qua...@li... [mailto: qua...@li...] *On Behalf Of *DU VIGNAUD DE VILLEFORT FRANCOIS GASAPRD PHI *Sent:* mercredi 23 mai 2007 19:35 *To:* Bianchetti Marco; qua...@li... *Subject:* Re: [Quantlib-dev] optimizers Here is a good C++ implementation candidate, http://www.alglib.net/optimization/lbfgs.php Though, I'm not absolutely sure that the terms of use are compatible with those of QL. Fran=E7ois -----Original Message----- *From:* qua...@li... [mailto: qua...@li...] *On Behalf Of *Bianchetti Marco *Sent:* Wednesday, May 23, 2007 6:13 PM *To:* qua...@li... *Subject:* [Quantlib-dev] optimizers Hello, at the moment are available into QuantLib the following optimizers: =B7 Simplex (recently revisited: the Numerical Recipes implementati= on badly failed in finding the minimum of a 1D parabole...) =B7 Levenberg-Marquardt =B7 Conjugate Gradient =B7 Steepest Descent (still to be debugged, work in progress) and we are currently considering the option to port into QuantLib the *Broyden-Fletcher-Goldfarb-Shanno (BFGS2)* algorithm, which in GSL is declared to be the best (see the text below). So: =B7 Any comment on the choice of BFGS2? do anyone has experience wi= th it ? =B7 is anyone aware of an available open source C++ implementation = to be ported into Quantlib with small effort ? Personally, I would prefer NOT to translate the GSL implementation from C t= o C++, because of the danger to introduce some tricky bug and because it requires a much more sophisticated test suite (and much work). ciao Marco --- from: http://www.gnu.org/software/gsl/manual/html_node/Multimin-Algorithms.html Minimizer: *gsl_multimin_fdfminimizer_vector_bfgs2* Minimizer: *gsl_multimin_fdfminimizer_vector_bfgs* These methods use the vector Broyden-Fletcher-Goldfarb-Shanno (BFGS) algorithm. This is a quasi-Newton method which builds up an approximation t= o the second derivatives of the function f using the difference between successive gradient vectors. By combining the first and second derivatives the algorithm is able to take Newton-type steps towards the function minimum, assuming quadratic behavior in that region. The bfgs2 version of this minimizer is the most efficient version available= , and is a faithful implementation of the line minimization scheme described in Fletcher's Practical Methods of Optimization, Algorithms 2.6.2 and 2.6.4= . It supercedes the original bfgs routine and requires substantially fewer function and gradient evaluations. The user-supplied tolerance tolcorresponds to the parameter \sigma used by Fletcher. A value of 0.1 is recommended for typical use (larger values correspond to less accurate line searches). |
|
From: Bianchetti M. <mar...@ca...> - 2007-05-28 16:54:28
|
Francois: Fran=E7ois : >Though, I'm not absolutely sure that the terms of use are compatible = with those of QL.=20 They look ok, any comment ? --- from http://www.alglib.net/copyrules.php --- Use Conditions for Source Codes 9. Unless otherwise stated, the Source Codes shall be distributed on the = basis of the terms and conditions, set out in this Document.=20 10. The visitor may include the Source Codes in the software = (irrespective of the fact whether those software programs are commercial = or not).=20 11. The visitor may modify the Source Codes on condition that the = comments, which accompany them (including the link to the distribution = terms and conditions), shall remain unchanged.=20 12. The visitor may distribute the software programs, which use various = Source Codes. The distribution of the Source Codes is allowed only along = with the program, which uses them. The visitor may not alter the = distribution terms and conditions for the Source Codes.=20 13. When using any kind of the Source Codes, the link to ALGLIB Project = is regarded as obligatory. In particular, when distributing the software = programs, which use Source Codes, through the Internet, it is obligatory = to use the hyperlink to the www.alglib.net at each page of the website, = which distributes the software programs.=20 14. Any other ways of using the Source Codes are possible only under = agreement with the author of ALGLIB Project.=20 --- Ciao Marco -----Original Message----- From: DU VIGNAUD DE VILLEFORT FRANCOIS GASAPRD PHI=20 Sent: mercoled=EC 23 maggio 2007 19.35 To: Bianchetti Marco; qua...@li... Subject: RE: [Quantlib-dev] optimizers Here is a good C++ implementation candidate,=20 http://www.alglib.net/optimization/lbfgs.php Though, I'm not absolutely sure that the terms of use are compatible = with those of QL.=20 Fran=E7ois =20 -----Original Message----- From: qua...@li... = [mailto:qua...@li...] On Behalf Of = Bianchetti Marco Sent: Wednesday, May 23, 2007 6:13 PM To: qua...@li... Subject: [Quantlib-dev] optimizers Hello, at the moment are available into QuantLib the following optimizers: =B7 Simplex (recently revisited: the Numerical Recipes = implementation badly failed in finding the minimum of a 1D parabole...) =B7 Levenberg-Marquardt =B7 Conjugate Gradient =B7 Steepest Descent (still to be debugged, work in progress) and we are currently considering the option to port into QuantLib the = Broyden-Fletcher-Goldfarb-Shanno (BFGS2) algorithm, which in GSL is = declared to be the best (see the text below). So: =B7 Any comment on the choice of BFGS2? do anyone has experience = with it ? =B7 is anyone aware of an available open source C++ = implementation to be ported into Quantlib with small effort ? Personally, I would prefer NOT to translate the GSL implementation from = C to C++, because of the danger to introduce some tricky bug and because = it requires a much more sophisticated test suite (and much work). ciao Marco --- from: = http://www.gnu.org/software/gsl/manual/html_node/Multimin-Algorithms.html= Minimizer: gsl_multimin_fdfminimizer_vector_bfgs2 Minimizer: gsl_multimin_fdfminimizer_vector_bfgs These methods use the vector Broyden-Fletcher-Goldfarb-Shanno (BFGS) = algorithm. This is a quasi-Newton method which builds up an = approximation to the second derivatives of the function f using the = difference between successive gradient vectors. By combining the first = and second derivatives the algorithm is able to take Newton-type steps = towards the function minimum, assuming quadratic behavior in that = region.=20 The bfgs2 version of this minimizer is the most efficient version = available, and is a faithful implementation of the line minimization = scheme described in Fletcher's Practical Methods of Optimization, = Algorithms 2.6.2 and 2.6.4. It supercedes the original bfgs routine and = requires substantially fewer function and gradient evaluations. The = user-supplied tolerance tol corresponds to the parameter \sigma used by = Fletcher. A value of 0.1 is recommended for typical use (larger values = correspond to less accurate line searches).=20 |
|
From: Luigi B. <lui...@gm...> - 2007-05-28 19:47:53
|
On May 28, 2007, at 6:54 PM, Bianchetti Marco wrote: >> Though, I'm not absolutely sure that the terms of use are compatible >> with those of QL. > > They look ok, any comment ? > > --- from http://www.alglib.net/copyrules.php --- > 13. When using any kind of the Source Codes, the link to ALGLIB > Project is regarded as obligatory. In particular, when distributing > the software programs, which use Source Codes, through the Internet, > it is obligatory to use the hyperlink to the www.alglib.net at each > page of the website, which distributes the software programs. This looks problematic, especially since the QuantLib download page is provided by Sourceforge without any way for us to provide such link. Also a bit worrying is: > 4. The requirements, set out in this Document, may be altered at any > time, without any provisional notification. The visitor shall agree > either to act in compliance with the altered requirements, or withdraw > from using the data, obtained within the framework of ALGLIB Project. Later, Luigi |
|
From: Bianchetti M. <mar...@ca...> - 2007-06-06 14:57:36
|
Thank you Sergey for the licensing of BFGS algo. We put this task in our todo list (low priority indeeed), is it of interest for you ?=20 I mean, just plugging BFGS into Quantlib, insipirated by the present framework for optimizers (Simplex or Levenberg-Marquardt, for instance). Let us know. Regards Marco > -----Original Message----- > From: qua...@li...=20 > [mailto:qua...@li...] On Behalf=20 > Of alglib > Sent: 04 June 2007 14:05 > To: qua...@li... > Subject: Re: [Quantlib-dev] optimizers >=20 >=20 >=20 > Hello! >=20 > BFGS stands for "Broyden-Fletcher-Goldfarb-Shanno". It is=20 > algorithm name, > not license name. >=20 > Original FORTRAN implementation of the L-BFGS algorithm was "freely > available for educational or commercial purposes". As far as=20 > I can see it is > compatible with BSD. I am not a lawyer but common sense tells me it is > compatible. >=20 > I've put some restrictions on the use of the translated code=20 > (which were > discussed above), but if you wish, you can use it under BSD=20 > (QuantLib uses > BSD, isn't it?). You have a nice project and I would be glag=20 > to help you. >=20 >=20 > Ferdinando Ametrano wrote: > >=20 > > Hi Sergey, > >=20 > > I'm not familiar with BFGS (and/or L-BFGS) and I can't find it in my > > personal authoritative reference: > > http://www.gnu.org/licenses/license-list.html > >=20 > > It would be very nice to have ALGLIB not only open source, but also > > free software as in http://www.gnu.org/philosophy/free-sw.html > >=20 > > In any case I can't see QuantLib depending on any software which is > > not free and/or not compatible with the GNU GPL > >=20 > > ciao -- Nando > >=20 |