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)