This is an automated email from the ASF dual-hosted git repository.

erans pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-math.git


The following commit(s) were added to refs/heads/master by this push:
     new b222580  Replace algorithm used in "best list" search.
b222580 is described below

commit b22258073795ec34022e75d7d9c583fa41fae4d0
Author: Gilles Sadowski <gillese...@gmail.com>
AuthorDate: Wed Sep 1 03:43:05 2021 +0200

    Replace algorithm used in "best list" search.
    
    Although efficient in terms of evaluations, "NelderMeadTransform" fails for
    some higher-dimensional test functions.
---
 .../nonlinear/scalar/noderiv/SimplexOptimizer.java |  2 +-
 .../std_test_func.simplex.hedar_fukushima.csv      | 55 +++++++++++++---------
 .../std_test_func.simplex.multidirectional.csv     | 41 +++++++++-------
 .../noderiv/std_test_func.simplex.nelder_mead.csv  | 15 ++++--
 4 files changed, 70 insertions(+), 43 deletions(-)

diff --git 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/SimplexOptimizer.java
 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/SimplexOptimizer.java
index 7140907..2a714b6 100644
--- 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/SimplexOptimizer.java
+++ 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/SimplexOptimizer.java
@@ -531,7 +531,7 @@ public class SimplexOptimizer extends MultivariateOptimizer 
{
                               goalType,
                               new InitialGuess(init),
                               simplex,
-                              new NelderMeadTransform());
+                              new MultiDirectionalTransform());
     }
 
     /**
diff --git 
a/commons-math-legacy/src/test/resources/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/std_test_func.simplex.hedar_fukushima.csv
 
b/commons-math-legacy/src/test/resources/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/std_test_func.simplex.hedar_fukushima.csv
index bebc135..dcd585e 100644
--- 
a/commons-math-legacy/src/test/resources/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/std_test_func.simplex.hedar_fukushima.csv
+++ 
b/commons-math-legacy/src/test/resources/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/std_test_func.simplex.hedar_fukushima.csv
@@ -30,28 +30,37 @@
 #
 # Caveat: Some tests are commented out (cf. JIRA: MATH-1552).
 #
-PARABOLA, 8, 0 0 0 0 0 0 0 0, 20, 40, 1e-4, 900, true
-PARABOLA, 16, 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0, 20, 40, 5e-4, 5200, true
-ROSENBROCK, 2, 1 1, 0.9, 1.1, 1e-4, 160, true
-ROSENBROCK, 4, 1 1 1 1, 0.9, 1.1, 1e-4, 500, true
-ROSENBROCK, 8, 1 1 1 1 1 1 1 1, 0.9, 1.1, 2e-4, 2200, true
-ROSENBROCK, 16, 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1, 0.9, 1.1, 3e-1, 9000, true
-POWELL, 4, 0 0 0 0, 4, 5, 4e-3, 400, true
-POWELL, 8, 0 0 0 0 0 0 0 0, 4, 5, 2e-2, 1760, true
-CIGAR, 2, 0 0, 2, 3, 5e-5, 150, true
-SPHERE, 2, 0 0, 2, 3, 5e-4, 110, true
-ELLI, 2, 0 0, 3, 4, 1e-4, 150, true
-TWO_AXES, 2, 0 0, 3, 4, 1e-4, 170, true
-CIG_TAB, 2, 0 0, 3, 4, 2e-3, 160, true
-TABLET, 2, 0 0, 3, 4, 2e-4, 160, true
-SUM_POW, 2, 0 0, 3, 4, 1e-2, 110,  true
-ACKLEY, 2, 0 0, 2, 4, 1e-6, 170, true
-RASTRIGIN, 2, 0 0, 6, 10, 5e-5, 130, true
-GRIEWANK, 2, 0 0, 2, 3, 1e-1, 120, true
-LEVY, 2, 1 1, 0.9, 1.1, 1e-3, 110, true
-SCHWEFEL, 2, 420.9687 420.9687, 9, 11, 1, 110, true
-ZAKHAROV, 2, 0 0, 3, 4, 1e-4, 130, true
-PERM, 2, 1 2, 0.9, 1.1, 2e-3, 150, true
-STYBLINSKI_TANG, 2, -2.903534 -2.903534, 1, 2, 1e-4, 120, true
+PARABOLA, 8, 0 0 0 0 0 0 0 0, 20, 40, 1e-4, 1600, true
+PARABOLA, 16, 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0, 20, 40, 5e-4, 6000, true
+ROSENBROCK, 2, 1 1, 0.9, 1.1, 2e-3, 11000, true
+ROSENBROCK, 4, 1 1 1 1, 0.9, 1.1, 3e-3, 40000, true
+ROSENBROCK, 8, 1 1 1 1 1 1 1 1, 0.9, 1.1, 3e-3, 130000, true
+ROSENBROCK, 16, 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1, 0.9, 1.1, 5e-2, 400000, true
+POWELL, 4, 0 0 0 0, 4, 5, 5e-2, 12000, true
+POWELL, 8, 0 0 0 0 0 0 0 0, 4, 5, 6e-2, 53000, true
+CIGAR, 2, 0 0, 2, 3, 5e-5, 200, true
+CIGAR, 11, 0 0 0 0 0 0 0 0 0 0 0, 2, 3, 5e-5, 3300, true
+SPHERE, 2, 0 0, 2, 3, 5e-4, 140, true
+SPHERE, 11, 0 0 0 0 0 0 0 0 0 0 0, 2, 3, 5e-4, 2500, true
+ELLI, 2, 0 0, 3, 4, 1e-4, 210, true
+TWO_AXES, 2, 0 0, 3, 4, 1e-4, 240, true
+TWO_AXES, 11, 0 0 0 0 0 0 0 0 0 0 0, 3, 4, 1e-4, 4000, true
+CIG_TAB, 2, 0 0, 3, 4, 2e-3, 220, true
+CIG_TAB, 11, 0 0 0 0 0 0 0 0 0 0 0, 3, 4, 2e-3, 3400, true
+TABLET, 2, 0 0, 3, 4, 2e-4, 200, true
+TABLET, 11, 0 0 0 0 0 0 0 0 0 0 0, 3, 4, 2e-4, 3400, true
+SUM_POW, 2, 0 0, 3, 4, 1e-2, 150,  true
+SUM_POW, 11, 0 0 0 0 0 0 0 0 0 0 0, 3, 4, 1e-2, 2500,  true
+ACKLEY, 2, 0 0, 2, 4, 1e-6, 250, true
+ACKLEY, 6, 0 0 0 0 0 0, 2, 4, 1e-6, 1400, true
+#RASTRIGIN, 2, 0 0, 6, 10, 5e-5, 170, true
+GRIEWANK, 2, 0 0, 2, 3, 1e-1, 140, true
+GRIEWANK, 11, 0 0 0 0 0 0 0 0 0 0 0, 2, 3, 1e-1, 2200, true
+LEVY, 2, 1 1, 0.9, 1.1, 1e-3, 150, true
+LEVY, 9, 1 1 1 1 1 1 1 1 1, 0.9, 1.1, 1e-3, 1600, true
+SCHWEFEL, 2, 420.9687 420.9687, 9, 11, 1, 150, true
+ZAKHAROV, 2, 0 0, 3, 4, 1e-4, 180, true
+PERM, 2, 1 2, 0.9, 1.1, 3e-3, 25000, true
+STYBLINSKI_TANG, 2, -2.903534 -2.903534, 1, 2, 1e-4, 150, true
 #HAPPY_CAT, 2, -1 -1, 2, 3, 1e-4, 500, true
 #SALOMON, 2, 0 0, 2, 3, 1e-4, 500, true
diff --git 
a/commons-math-legacy/src/test/resources/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/std_test_func.simplex.multidirectional.csv
 
b/commons-math-legacy/src/test/resources/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/std_test_func.simplex.multidirectional.csv
index ee704aa..e751e03 100644
--- 
a/commons-math-legacy/src/test/resources/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/std_test_func.simplex.multidirectional.csv
+++ 
b/commons-math-legacy/src/test/resources/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/std_test_func.simplex.multidirectional.csv
@@ -30,37 +30,46 @@
 #
 # Caveat: Some tests are commented out (cf. JIRA: MATH-1552).
 #
-PARABOLA, 8, 0 0 0 0 0 0 0 0, 20, 40, 1e-4, 1500, false
+PARABOLA, 8, 0 0 0 0 0 0 0 0, 20, 40, 1e-4, 1550, false
 PARABOLA, 8, 0 0 0 0 0 0 0 0, 20, 40, 1e-4, 2600, true
 PARABOLA, 16, 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0, 20, 40, 1e-4, 5800, false
 PARABOLA, 16, 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0, 20, 40, 1e-4, 10000, true
 ROSENBROCK, 2, 1 1, 0.9, 1.1, 3e-3, 11000, false
-ROSENBROCK, 2, 1 1, 0.9, 1.1, 3e-3, 500, true
-ROSENBROCK, 4, 1 1 1 1, 0.9, 1.1, 3e-3, 31000, false
-ROSENBROCK, 4, 1 1 1 1, 0.9, 1.1, 3e-3, 1900, true
+ROSENBROCK, 2, 1 1, 0.9, 1.1, 3e-3, 12000, true
+ROSENBROCK, 4, 1 1 1 1, 0.9, 1.1, 3e-3, 46000, false
+ROSENBROCK, 4, 1 1 1 1, 0.9, 1.1, 3e-3, 33000, true
 ROSENBROCK, 8, 1 1 1 1 1 1 1 1, 0.9, 1.1, 4e-3, 115000, false
-ROSENBROCK, 8, 1 1 1 1 1 1 1 1, 0.9, 1.1, 3e-3, 8100, true
-ROSENBROCK, 16, 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1, 0.9, 1.1, 2e-1, 420000, false
-ROSENBROCK, 16, 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1, 0.9, 1.1, 3e-1, 30000, true
-POWELL, 4, 0 0 0 0, 4, 5, 5e-2, 11700, false, target/debug__, 0 1 LAST 0
-POWELL, 4, 0 0 0 0, 4, 5, 4e-3, 1900, true
+ROSENBROCK, 8, 1 1 1 1 1 1 1 1, 0.9, 1.1, 3e-3, 130000, true
+ROSENBROCK, 16, 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1, 0.9, 1.1, 2e-1, 460000, false
+ROSENBROCK, 16, 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1, 0.9, 1.1, 3e-1, 420000, true
+POWELL, 4, 0 0 0 0, 4, 5, 5e-2, 11700, false
+POWELL, 4, 0 0 0 0, 4, 5, 5e-2, 14000, true
 POWELL, 8, 0 0 0 0 0 0 0 0, 4, 5, 7e-2, 46000, false
-POWELL, 8, 0 0 0 0 0 0 0 0, 4, 5, 4e-2, 9000, true
+POWELL, 8, 0 0 0 0 0 0 0 0, 4, 5, 7e-2, 45000, true
 CIGAR, 2, 0 0, 2, 3, 5e-5, 160, false
+CIGAR, 11, 0 0 0 0 0 0 0 0 0 0 0, 2, 3, 5e-5, 3100, false
 SPHERE, 2, 0 0, 2, 3, 5e-4, 120, false
+SPHERE, 11, 0 0 0 0 0 0 0 0 0 0 0, 2, 3, 5e-4, 2260, false
 ELLI, 2, 0 0, 3, 4, 1e-4, 150, false
-TWO_AXES, 2, 0 0, 3, 4, 1e-4, 180, false
+TWO_AXES, 2, 0 0, 3, 4, 1e-4, 200, false
+TWO_AXES, 11, 0 0 0 0 0 0 0 0 0 0 0, 3, 4, 1e-4, 3700, false
 CIG_TAB, 2, 0 0, 3, 4, 1e-3, 170, false
-TABLET, 2, 0 0, 3, 4, 2e-4, 150, false
+CIG_TAB, 11, 0 0 0 0 0 0 0 0 0 0 0, 3, 4, 1e-3, 3300, false
+TABLET, 2, 0 0, 3, 4, 2e-4, 160, false
+TABLET, 11, 0 0 0 0 0 0 0 0 0 0 0, 3, 4, 2e-4, 3100, false
 SUM_POW, 2, 0 0, 3, 4, 1e-2, 120, false
+SUM_POW, 11, 0 0 0 0 0 0 0 0 0 0 0, 3, 4, 1e-2, 2200, false
 ACKLEY, 2, 0 0, 2, 4, 1e-6, 220, false
-RASTRIGIN, 2, 0 0, 6, 10, 1e-3, 160, false
-GRIEWANK, 2, 0 0, 2, 3, 1e-1, 110, false
+ACKLEY, 6, 0 0 0 0 0 0, 2, 4, 1e-6, 1400, false
+RASTRIGIN, 2, 0 0, 6, 10, 1e-3, 180, false
+GRIEWANK, 2, 0 0, 2, 3, 1e-1, 120, false
+GRIEWANK, 11, 0 0 0 0 0 0 0 0 0 0 0, 2, 3, 1e-1, 2000, false
 LEVY, 2, 1 1, 0.9, 1.1, 1e-3, 120, false
-SCHWEFEL, 2, 420.9687 420.9687, 9, 11, 1, 120, false
+LEVY, 9, 1 1 1 1 1 1 1 1 1, 0.9, 1.1, 1e-3, 1400, false
+SCHWEFEL, 2, 420.9687 420.9687, 9, 11, 1, 130, false
 ZAKHAROV, 2, 0 0, 3, 4, 1e-4, 130, false
 PERM, 2, 1 2, 0.9, 1.1, 2e-3, 24000, false
-PERM, 2, 1 2, 0.9, 1.1, 2e-3, 430, true
+PERM, 2, 1 2, 0.9, 1.1, 2e-3, 24100, true
 STYBLINSKI_TANG, 2, -2.903534 -2.903534, 1, 2, 1e-4, 120, false
 #HAPPY_CAT, 2, -1 -1, 2, 3, 1e-4, 50, false
 #SALOMON, 2, 0 0, 2, 3, 1e-4, 50, false
diff --git 
a/commons-math-legacy/src/test/resources/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/std_test_func.simplex.nelder_mead.csv
 
b/commons-math-legacy/src/test/resources/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/std_test_func.simplex.nelder_mead.csv
index 15dcfcc..686c742 100644
--- 
a/commons-math-legacy/src/test/resources/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/std_test_func.simplex.nelder_mead.csv
+++ 
b/commons-math-legacy/src/test/resources/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/std_test_func.simplex.nelder_mead.csv
@@ -34,21 +34,30 @@ PARABOLA, 8, 0 0 0 0 0 0 0 0, 20, 40, 1e-4, 700, false
 PARABOLA, 16, 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0, 20, 40, 5e-4, 3600, false
 ROSENBROCK, 2, 1 1, 0.9, 1.1, 1e-4, 110, false
 ROSENBROCK, 4, 1 1 1 1, 0.9, 1.1, 1e-4, 400, false
-ROSENBROCK, 8, 1 1 1 1 1 1 1 1, 0.9, 1.1, 3e-4, 2200, false
-ROSENBROCK, 16, 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1, 0.9, 1.1, 5e-1, 7500, false
+ROSENBROCK, 8, 1 1 1 1 1 1 1 1, 0.9, 1.1, 5e-4, 2200, false
+ROSENBROCK, 16, 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1, 0.9, 1.1, 5e-1, 7600, false
 POWELL, 4, 0 0 0 0, 4, 5, 5e-3, 290, false
 POWELL, 8, 0 0 0 0 0 0 0 0, 4, 5, 3e-2, 1300, false
 CIGAR, 2, 0 0, 2, 3, 5e-5, 100, false
+CIGAR, 11, 0 0 0 0 0 0 0 0 0 0 0, 2, 3, 5e-5, 2200, false
 SPHERE, 2, 0 0, 2, 3, 5e-4, 80, false
+SPHERE, 11, 0 0 0 0 0 0 0 0 0 0 0, 2, 3, 5e-4, 1100, false
 ELLI, 2, 0 0, 3, 4, 1e-4, 350, false
 TWO_AXES, 2, 0 0, 3, 4, 1e-4, 120, false
+#TWO_AXES, 11, 0 0 0 0 0 0 0 0 0 0 0, 3, 4, 1e-4, 120, false
 CIG_TAB, 2, 0 0, 3, 4, 1e-3, 100, false
+#CIG_TAB, 11, 0 0 0 0 0 0 0 0 0 0 0, 3, 4, 1e-3, 100, false
 TABLET, 2, 0 0, 3, 4, 2e-4, 100, false
+TABLET, 11, 0 0 0 0 0 0 0 0 0 0 0, 3, 4, 2e-4, 3000, false
 SUM_POW, 2, 0 0, 3, 4, 1e-2, 75, false
+#SUM_POW, 11, 0 0 0 0 0 0 0 0 0 0 0, 3, 4, 1e-2, 75, false
 ACKLEY, 2, 0 0, 2, 4, 1e-6, 145, false
+ACKLEY, 6, 0 0 0 0 0 0, 2, 4, 1e-6, 660, false
 RASTRIGIN, 2, 0 0, 6, 10, 5e-5, 105, false
-GRIEWANK, 2, 0 0, 2, 3, 1e-1, 75, false
+GRIEWANK, 2, 0 0, 2, 3, 1e-1, 80, false
+GRIEWANK, 11, 0 0 0 0 0 0 0 0 0 0 0, 2, 3, 1e-1, 1200, false
 LEVY, 2, 1 1, 0.9, 1.1, 1e-3, 75, false
+LEVY, 9, 1 1 1 1 1 1 1 1 1, 0.9, 1.1, 1e-3, 900, false
 SCHWEFEL, 2, 420.9687 420.9687, 9, 11, 1, 85, false
 ZAKHAROV, 2, 0 0, 3, 4, 1e-4, 85, false
 PERM, 2, 1 2, 0.9, 1.1, 2e-3, 110, false

Reply via email to