optimization bug fixes

This commit is contained in:
Sampo Niskanen 2011-08-12 19:53:00 +00:00
parent 784c76091b
commit 20603d8be6
9 changed files with 21 additions and 13 deletions

View File

@ -1,3 +1,7 @@
2011-08-12 Sampo Niskanen
* Released version 1.1.7
2011-08-08 Sampo Niskanen 2011-08-08 Sampo Niskanen
* Enhanced one-dimensional optimization algorithm * Enhanced one-dimensional optimization algorithm

View File

@ -1,3 +1,11 @@
OpenRocket 1.1.7 (2011-08-12):
-------------------------------
This release contains automatic rocket design optimization
functionality. However, be cautious when using it and take the
results with a grain of salt.
OpenRocket 1.1.6 (2011-07-22): OpenRocket 1.1.6 (2011-07-22):
------------------------------- -------------------------------

View File

@ -1,7 +1,7 @@
# The OpenRocket build version # The OpenRocket build version
build.version=1.1.7pre build.version=1.1.7
# The source of the package. When building a package for a specific # The source of the package. When building a package for a specific

View File

@ -63,6 +63,7 @@
<copy todir="${dist.dir}/"> <copy todir="${dist.dir}/">
<fileset dir="." includes="LICENSE.TXT README.TXT ChangeLog ReleaseNotes build.properties fileformat.txt" /> <fileset dir="." includes="LICENSE.TXT README.TXT ChangeLog ReleaseNotes build.properties fileformat.txt" />
<fileset dir="." includes="datafiles/ pix/ l10n/" /> <fileset dir="." includes="datafiles/ pix/ l10n/" />
<fileset dir="src/" includes="META-INF/" />
</copy> </copy>
<mkdir dir="${jar.dir}"/> <mkdir dir="${jar.dir}"/>
<jar destfile="${jar.file}" basedir="${dist.dir}"> <jar destfile="${jar.file}" basedir="${dist.dir}">
@ -86,7 +87,7 @@
<mkdir dir="${build.dir}/${pkgname}"/> <mkdir dir="${build.dir}/${pkgname}"/>
<mkdir dir="${jar.dir}"/> <mkdir dir="${jar.dir}"/>
<copy todir="${build.dir}/${pkgname}"> <copy todir="${build.dir}/${pkgname}">
<fileset dir="." includes="*"> <fileset dir="." includes="*" excludes="*.log">
<type type="file"/> <type type="file"/>
</fileset> </fileset>
<fileset dir="." includes="datafiles/ lib/ lib-test/ pix/ src/ test/ l10n/"/> <fileset dir="." includes="datafiles/ lib/ lib-test/ pix/ src/ test/ l10n/"/>

View File

@ -559,7 +559,7 @@ public class GeneralOptimizationDialog extends JDialog {
label = new JLabel(trans.get("status.evalCount")); label = new JLabel(trans.get("status.evalCount"));
tip = trans.get("status.evalCount"); tip = trans.get("status.evalCount.ttip");
label.setToolTipText(tip); label.setToolTipText(tip);
sub.add(label, "gapright unrel"); sub.add(label, "gapright unrel");
@ -832,10 +832,9 @@ public class GeneralOptimizationDialog extends JDialog {
Point newPoint = latest.getNewPoint(); Point newPoint = latest.getNewPoint();
FunctionEvaluationData pointValue = evaluationHistory.get(newPoint); FunctionEvaluationData pointValue = evaluationHistory.get(newPoint);
if (pointValue != null) { if (pointValue != null && pointValue.getParameterValue() != null) {
bestValue = pointValue.getParameterValue().getValue(); bestValue = pointValue.getParameterValue().getValue();
} else { } else {
log.error("History does not contain point " + newPoint);
bestValue = Double.NaN; bestValue = Double.NaN;
} }

View File

@ -111,9 +111,6 @@ public class MultidirectionalSearchOptimizer implements FunctionOptimizer, Stati
functionExecutor.compute(expansion); functionExecutor.compute(expansion);
// Check reflection acceptance // Check reflection acceptance
System.err.println("stepsize = " + step);
System.err.println("Simplex = " + simplex);
System.err.println("Reflection = " + reflection);
log.debug("Computing reflection"); log.debug("Computing reflection");
functionExecutor.waitFor(reflection); functionExecutor.waitFor(reflection);

View File

@ -107,7 +107,6 @@ public class GoldenSectionSearchOptimizer implements FunctionOptimizer, Statisti
*/ */
guessAC = section1(a, c); guessAC = section1(a, c);
guessBD = section2(b, d); guessBD = section2(b, d);
System.err.println("Queueing " + guessAC + " and " + guessBD);
if (Double.isNaN(fd) || fa < fd) { if (Double.isNaN(fd) || fa < fd) {
guessedAC = true; guessedAC = true;
functionExecutor.compute(guessAC); functionExecutor.compute(guessAC);
@ -200,11 +199,9 @@ public class GoldenSectionSearchOptimizer implements FunctionOptimizer, Statisti
} }
if (guessAC != null) { if (guessAC != null) {
System.err.println("Aborting " + guessAC);
functionExecutor.abort(guessAC); functionExecutor.abort(guessAC);
} }
if (guessBD != null) { if (guessBD != null) {
System.err.println("Aborting " + guessBD);
functionExecutor.abort(guessBD); functionExecutor.abort(guessBD);
} }

View File

@ -106,7 +106,6 @@ public abstract class AbstractSimulationModifier implements SimulationModifier {
* @return the value in SI units * @return the value in SI units
*/ */
protected double toBaseValue(double value) { protected double toBaseValue(double value) {
System.out.println("value=" + value + " minValue=" + minValue + " maxValue=" + maxValue);
return MathUtil.map(value, 0.0, 1.0, minValue, maxValue); return MathUtil.map(value, 0.0, 1.0, minValue, maxValue);
} }

View File

@ -1,7 +1,9 @@
package net.sf.openrocket.optimization.rocketoptimization.modifiers; package net.sf.openrocket.optimization.rocketoptimization.modifiers;
import net.sf.openrocket.document.Simulation; import net.sf.openrocket.document.Simulation;
import net.sf.openrocket.logging.LogHelper;
import net.sf.openrocket.optimization.general.OptimizationException; import net.sf.openrocket.optimization.general.OptimizationException;
import net.sf.openrocket.startup.Application;
import net.sf.openrocket.unit.UnitGroup; import net.sf.openrocket.unit.UnitGroup;
import net.sf.openrocket.util.BugException; import net.sf.openrocket.util.BugException;
import net.sf.openrocket.util.MathUtil; import net.sf.openrocket.util.MathUtil;
@ -15,6 +17,7 @@ import net.sf.openrocket.util.Reflection.Method;
* @author Sampo Niskanen <sampo.niskanen@iki.fi> * @author Sampo Niskanen <sampo.niskanen@iki.fi>
*/ */
public abstract class GenericModifier<T> extends AbstractSimulationModifier { public abstract class GenericModifier<T> extends AbstractSimulationModifier {
private static final LogHelper log = Application.getLogger();
private final double multiplier; private final double multiplier;
@ -79,7 +82,7 @@ public abstract class GenericModifier<T> extends AbstractSimulationModifier {
throw new OptimizationException("BUG: getModifiedObject() returned null"); throw new OptimizationException("BUG: getModifiedObject() returned null");
} }
double siValue = toBaseValue(scaledValue) / multiplier; double siValue = toBaseValue(scaledValue) / multiplier;
System.out.println("Setting setter=" + setter + " modifiable=" + modifiable + " siValue=" + siValue + "scaledValue=" + scaledValue); log.verbose("Setting setter=" + setter + " modifiable=" + modifiable + " siValue=" + siValue + "scaledValue=" + scaledValue);
setter.invoke(modifiable, siValue); setter.invoke(modifiable, siValue);
} }