diff --git a/src/eva2/OptimizerFactory.java b/src/eva2/OptimizerFactory.java index 1870507d..0106a942 100644 --- a/src/eva2/OptimizerFactory.java +++ b/src/eva2/OptimizerFactory.java @@ -160,7 +160,7 @@ public class OptimizerFactory { de.addPopulationChangedEventListener(listener); de.init(); - listener.registerPopulationStateChanged(de.getPopulation(), ""); + if (listener!=null) listener.registerPopulationStateChanged(de.getPopulation(), ""); return de; } @@ -388,7 +388,7 @@ public class OptimizerFactory { hc.SetProblem(problem); hc.init(); - listener.registerPopulationStateChanged(hc.getPopulation(), ""); + if (listener != null) listener.registerPopulationStateChanged(hc.getPopulation(), ""); return hc; } @@ -419,7 +419,7 @@ public class OptimizerFactory { mc.SetProblem(problem); mc.init(); - listener.registerPopulationStateChanged(mc.getPopulation(), ""); + if (listener != null) listener.registerPopulationStateChanged(mc.getPopulation(), ""); return mc; } @@ -465,7 +465,7 @@ public class OptimizerFactory { pso.addPopulationChangedEventListener(listener); pso.init(); - listener.registerPopulationStateChanged(pso.getPopulation(), ""); + if (listener != null) listener.registerPopulationStateChanged(pso.getPopulation(), ""); return pso; } @@ -506,7 +506,7 @@ public class OptimizerFactory { sa.addPopulationChangedEventListener(listener); sa.init(); - listener.registerPopulationStateChanged(sa.getPopulation(), ""); + if (listener!=null) listener.registerPopulationStateChanged(sa.getPopulation(), ""); return sa; } diff --git a/src/eva2/gui/PropertySheetPanel.java b/src/eva2/gui/PropertySheetPanel.java index 8a952032..cd504d55 100644 --- a/src/eva2/gui/PropertySheetPanel.java +++ b/src/eva2/gui/PropertySheetPanel.java @@ -430,6 +430,7 @@ public class PropertySheetPanel extends JPanel implements PropertyChangeListener String name = oldProps[i].getDisplayName(); if (name.compareTo(string)==0) return i; } + System.err.println("Error, property not found: " + string); return -1; } diff --git a/src/eva2/server/go/operators/mutation/MutateESCovarianceMatrixAdaption.java b/src/eva2/server/go/operators/mutation/MutateESCovarianceMatrixAdaption.java index 03eb2954..42f06e32 100644 --- a/src/eva2/server/go/operators/mutation/MutateESCovarianceMatrixAdaption.java +++ b/src/eva2/server/go/operators/mutation/MutateESCovarianceMatrixAdaption.java @@ -319,4 +319,4 @@ public class MutateESCovarianceMatrixAdaption implements InterfaceMutation, java public String initSigmaScalarTipText() { return "Set the initial sigma value."; } -} \ No newline at end of file +} diff --git a/src/eva2/server/go/problems/ExternalRuntimeProblem.java b/src/eva2/server/go/problems/ExternalRuntimeProblem.java index 25cd5510..c8bd23ac 100644 --- a/src/eva2/server/go/problems/ExternalRuntimeProblem.java +++ b/src/eva2/server/go/problems/ExternalRuntimeProblem.java @@ -144,7 +144,6 @@ public class ExternalRuntimeProblem extends AbstractOptimizationProblem implemen x = getXVector(individual); - //TODO call external runtime double[] fit = eval(x); individual.SetFitness(fit); diff --git a/src/eva2/tools/math/Mathematics.java b/src/eva2/tools/math/Mathematics.java index b133bc13..1459a686 100644 --- a/src/eva2/tools/math/Mathematics.java +++ b/src/eva2/tools/math/Mathematics.java @@ -1066,17 +1066,20 @@ public class Mathematics { double d = 0.; for (int i=0; i dimLen) d -= dimLen; // avoid violating the other bound immediately - x[i]=range[i][0]+d; - } else if (x[i]>range[i][1]) { - viols++; - d = x[i]-range[i][1]; - while (d>dimLen) d -= dimLen; // avoid violating the other bound immediately - x[i]=range[i][1]-d; + if (dimLen <= 0.) { + EVAERROR.errorMsgOnce("Error in reflectBounds: empty range! (possibly multiple errors)"); + } else { + if (x[i] dimLen) d -= dimLen; // avoid violating the other bound immediately + x[i]=range[i][0]+d; + } else if (x[i]>range[i][1]) { + viols++; + d = x[i]-range[i][1]; + while (d>dimLen) d -= dimLen; // avoid violating the other bound immediately + x[i]=range[i][1]-d; + } } } return viols;