You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "François Laferrière (Jira)" <ji...@apache.org> on 2023/07/06 08:42:00 UTC

[jira] [Commented] (MATH-1656) Classical multivariate optimizers (gradient descent, Raphson-Newton, BFGS) are missing

    [ https://issues.apache.org/jira/browse/MATH-1656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17740493#comment-17740493 ] 

François Laferrière commented on MATH-1656:
-------------------------------------------

Hello,

please find a patch with a provisional version of Gradient-like optimizer. The abstract class GradientLikeOptimizer contains the common code for the 3 methods: gradient descent, Newton-Raphson and BFGS. In fact only the direction(...) method that compute the search direction for the next iteration differs.

*Tests*

A group of junit tests covers >95% of the new code. The principle of the test is to generate a set of gnuplot data/command file. A DiffTest utility class is the ancestor of the classes containing the junit @test. The idea is to compare the files produced by the test with a reference stored in git. If a difference occurs during junit test execution, an assertion raised an exception (indicating the first line that differs) and the test fails.


The test results are stored in resource sub-tree with a path corresponding to the test method qualified name. For instance the result and reference of test testRosenbrockMax of test class org.apache.commons.math4.optim.NewtonRaphsonOptimizerTest is in directory 
{code:java}
commons-math/commons-math-legacy/src/test/resources/org/apache/commons/math4/optim/NewtonRaphsonOptimizerTest/testRosenbrockMax{code}
. This directory contains two sub-directories : ref for the test references and res for test results.
It is possible to visualize the results using gnuplot: for instance:
{code:java}
cd commons-math/commons-math-legacy
gnuplot -persist src/test/resources/org/apache/commons/math4/optim/NewtonRaphsonOptimizerTest/testRosenbrock/res/gnuplot.plt{code}
 

[^MATH-1658-GradientDescent-Newton-BFGS.patch]

 

> Classical multivariate optimizers (gradient descent, Raphson-Newton, BFGS) are missing
> --------------------------------------------------------------------------------------
>
>                 Key: MATH-1656
>                 URL: https://issues.apache.org/jira/browse/MATH-1656
>             Project: Commons Math
>          Issue Type: Wish
>          Components: legacy
>    Affects Versions: 4.0-beta1
>            Reporter: François Laferrière
>            Priority: Major
>              Labels: features
>         Attachments: MATH-1658-GradientDescent-Newton-BFGS.patch
>
>
> Some classical multivariate such as
>  * gradient descent,
>  * Raphson-Newton,
>  * BFGS
> are missing.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)