commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Olexiy Movchan (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (MATH-1144) LevenbergMarquardtOptimizer does not allow to change current point during optimization
Date Wed, 20 Aug 2014 09:53:26 GMT

     [ https://issues.apache.org/jira/browse/MATH-1144?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Olexiy Movchan updated MATH-1144:
---------------------------------

    Description: 
It's a regression to commons-math v2.0.

Our software uses LevenbergMarquardtOptimizer for surface fitting by sampled points. Our parameterization
of the surface we are fitting may be unconstrained, for example it is enough to have only
4 variables to represent cylinder axis and origin (using euler angles and origin distance),
but to simplify derivative computation we instead use 6 parameter representation (vector +
point). To make sure that the we constrain our search to valid vectors and origins, we need
to renormalize and update surface parameters on every step of optimization.

Please see this article for details of 3d surface fitting and parameter normalization:
http://nvlpubs.nist.gov/nistpubs/jres/103/6/j36sha.pdf

Attached surface_fitting_tests.zip package with 2 unit tests that reproduce this problem.
Contents of package:
1) simple - simple single file test that tests only in/out side effect of patched library
2) full - complex test that fits cylinder using sampled points (uses cylinder, fit, utils
sources)
3) lib - contains commons-math3 jar libraries: v3.3 and v3.3A1 (patched). There are also library
sources.
4) patch - contains SVN patch file

To reproduce:
Run SurfaceFitterFullTest.java and SurfaceFitterSimpleTest.java tests with commons-math3-3.3.jar
OR commons-math3-3.3A1.jar libraries.


  was:
It's a regression to commons-math v2.0.

Our software uses LevenbergMarquardtOptimizer for surface fitting by sampled points. Our parameterization
of the surface we are fitting may be unconstrained, for example it is enough to have only
4 variables to represent cylinder axis and origin (using euler angles and origin distance),
but to simplify derivative computation we instead use 6 parameter representation (vector +
point). To make sure that the we constrain our search to valid vectors and origins, we need
to renormalize and update surface parameters on every step of optimization.

Please see this article for details of 3d surface fitting and parameter normalization:
http://nvlpubs.nist.gov/nistpubs/jres/103/6/j36sha.pdf



> LevenbergMarquardtOptimizer does not allow to change current point during optimization
> --------------------------------------------------------------------------------------
>
>                 Key: MATH-1144
>                 URL: https://issues.apache.org/jira/browse/MATH-1144
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 3.3
>            Reporter: Olexiy Movchan
>              Labels: fitting
>             Fix For: 3.4
>
>         Attachments: LevenbergMarquardtOptimizer.java.patch
>
>
> It's a regression to commons-math v2.0.
> Our software uses LevenbergMarquardtOptimizer for surface fitting by sampled points.
Our parameterization of the surface we are fitting may be unconstrained, for example it is
enough to have only 4 variables to represent cylinder axis and origin (using euler angles
and origin distance), but to simplify derivative computation we instead use 6 parameter representation
(vector + point). To make sure that the we constrain our search to valid vectors and origins,
we need to renormalize and update surface parameters on every step of optimization.
> Please see this article for details of 3d surface fitting and parameter normalization:
> http://nvlpubs.nist.gov/nistpubs/jres/103/6/j36sha.pdf
> Attached surface_fitting_tests.zip package with 2 unit tests that reproduce this problem.
> Contents of package:
> 1) simple - simple single file test that tests only in/out side effect of patched library
> 2) full - complex test that fits cylinder using sampled points (uses cylinder, fit, utils
sources)
> 3) lib - contains commons-math3 jar libraries: v3.3 and v3.3A1 (patched). There are also
library sources.
> 4) patch - contains SVN patch file
> To reproduce:
> Run SurfaceFitterFullTest.java and SurfaceFitterSimpleTest.java tests with commons-math3-3.3.jar
OR commons-math3-3.3A1.jar libraries.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message