You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2021/08/24 23:52:20 UTC
[commons-math] 02/04: Change how simulated annealing affects the
transformed simplex (cf. MATH-1622).
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 80a7eb18323a185a272ea445bb146380fb5ae9ec
Author: Gilles Sadowski <gi...@gmail.com>
AuthorDate: Tue Aug 24 15:39:52 2021 +0200
Change how simulated annealing affects the transformed simplex (cf. MATH-1622).
Compared with commit 97462b1a1b6f64ab10e06db331d5b6762d979aab, this commit is
more consistent with assumptions of the original (non-hybridized) algorithm.
---
.../nonlinear/scalar/noderiv/MultiDirectionalTransform.java | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/MultiDirectionalTransform.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/MultiDirectionalTransform.java
index b6f2a73..bdd53e0 100644
--- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/MultiDirectionalTransform.java
+++ b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/optim/nonlinear/scalar/noderiv/MultiDirectionalTransform.java
@@ -90,16 +90,10 @@ public class MultiDirectionalTransform
evaluationFunction);
final PointValuePair expandedBest = expandedSimplex.get(0);
- if (comparator.compare(expandedBest, reflectedBest) < 0) {
+ if (comparator.compare(expandedBest, reflectedBest) < 0 ||
+ (sa != null &&
+ sa.test(expandedBest.getValue() - reflectedBest.getValue()))) {
return expandedSimplex;
- } else if (sa != null &&
- sa.test(expandedBest.getValue() - reflectedBest.getValue())) {
- // SA hybridation branch (not part of Torczon's algorithm):
- // Create a simplex that contains
- // * the reflected simplex's best point (since it is the
- // best point overall), and
- // * the expanded simplex's points (except its best point).
- return reflectedSimplex.replaceLast(expandedSimplex.asList(1, expandedSimplex.getSize()));
} else {
return reflectedSimplex;
}