Merge branch 'fix-MATH-1376_simplex' into develop
Completes the following issues (see JIRA): MATH-1376 MATH-1377
This commit is contained in:
commit
821886a960
|
@ -54,6 +54,12 @@ If the output is not quite correct, check for invisible trailing spaces!
|
||||||
</release>
|
</release>
|
||||||
|
|
||||||
<release version="4.0" date="XXXX-XX-XX" description="">
|
<release version="4.0" date="XXXX-XX-XX" description="">
|
||||||
|
<action dev="erans" type="update" issue="MATH-1377">
|
||||||
|
"SimplexOptimizer": Slight performance improvement.
|
||||||
|
</action>
|
||||||
|
<action dev="erans" type="fix" issue="MATH-1376" due-to="Thomas Weise">
|
||||||
|
"SimplexOptimizer": Wrong value of iteration number was passed to the convergence checker.
|
||||||
|
</action>
|
||||||
<action dev="erans" type="fix" issue="MATH-1319">
|
<action dev="erans" type="fix" issue="MATH-1319">
|
||||||
Major refactoring of package "o.a.c.m.random".
|
Major refactoring of package "o.a.c.m.random".
|
||||||
</action>
|
</action>
|
||||||
|
|
|
@ -159,12 +159,18 @@ public class SimplexOptimizer extends MultivariateOptimizer {
|
||||||
int iteration = 0;
|
int iteration = 0;
|
||||||
final ConvergenceChecker<PointValuePair> checker = getConvergenceChecker();
|
final ConvergenceChecker<PointValuePair> checker = getConvergenceChecker();
|
||||||
while (true) {
|
while (true) {
|
||||||
if (getIterations() > 0) {
|
iteration = getIterations();
|
||||||
|
if (iteration > 0) {
|
||||||
boolean converged = true;
|
boolean converged = true;
|
||||||
for (int i = 0; i < simplex.getSize(); i++) {
|
for (int i = 0; i < simplex.getSize(); i++) {
|
||||||
PointValuePair prev = previous[i];
|
PointValuePair prev = previous[i];
|
||||||
converged = converged &&
|
converged = converged &&
|
||||||
checker.converged(iteration, prev, simplex.getPoint(i));
|
checker.converged(iteration, prev, simplex.getPoint(i));
|
||||||
|
|
||||||
|
if (!converged) {
|
||||||
|
// Short circuit, since "converged" will stay "false".
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (converged) {
|
if (converged) {
|
||||||
// We have found an optimum.
|
// We have found an optimum.
|
||||||
|
|
Loading…
Reference in New Issue