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

commit 2ccdf8d0029776ae794139ad83dda6eb61f8bef2
Author: Gilles Sadowski <gillese...@gmail.com>
AuthorDate: Wed Aug 25 01:50:28 2021 +0200

    MATH-1622: Simulated annealing variant of "NelderMeadTransform".
---
 .../legacy/optim/nonlinear/scalar/noderiv/NelderMeadTransform.java  | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/NelderMeadTransform.java
 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/NelderMeadTransform.java
index 7cace7b..e94261d 100644
--- 
a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/NelderMeadTransform.java
+++ 
b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/NelderMeadTransform.java
@@ -75,7 +75,7 @@ public class NelderMeadTransform
     @Override
     public UnaryOperator<Simplex> create(final MultivariateFunction 
evaluationFunction,
                                          final Comparator<PointValuePair> 
comparator,
-                                         final DoublePredicate unused) {
+                                         final DoublePredicate sa) {
         return original -> {
             // The simplex has n + 1 points if dimension is n.
             final int n = original.getDimension();
@@ -105,7 +105,9 @@ public class NelderMeadTransform
                                                                  -gamma,
                                                                  xWorst,
                                                                  
evaluationFunction);
-                if (comparator.compare(expanded, reflected) < 0) {
+                if (comparator.compare(expanded, reflected) < 0 ||
+                    (sa != null &&
+                     sa.test(expanded.getValue() - reflected.getValue()))) {
                     return original.replaceLast(expanded);
                 } else {
                     return original.replaceLast(reflected);

Reply via email to