Commit 73604bc0 authored by BZoennchen's avatar BZoennchen

introduce our own Nelder-Mead implementation into the master branch.

parent 3c3420a1
Pipeline #116179 passed with stages
in 193 minutes and 56 seconds
......@@ -33,7 +33,7 @@
"org.vadere.state.attributes.models.AttributesOSM" : {
"stepCircleResolution" : 4,
"numberOfCircles" : 1,
"optimizationType" : "NELDER_MEAD_CIRCLE",
"optimizationType" : "NELDER_MEAD",
"varyStepDirection" : false,
"movementType" : "ARBITRARY",
"stepLengthIntercept" : 0.4625,
......
......@@ -46,7 +46,7 @@
"createMethod" : "HIGH_ACCURACY_FAST_MARCHING",
"potentialFieldResolution" : 0.1,
"obstacleGridPenalty" : 0.1,
"targetAttractionStrength" : 1.0,
"targetAttractionStrength" : 2.0,
"timeCostAttributes" : {
"standardDeviation" : 0.7,
"type" : "UNIT",
......
......@@ -15,6 +15,7 @@ import java.util.stream.Stream;
/**
* Implementation of the 1-dimensional Nelder-Mead. The algorithm walks on the circle.
* Multiple simplexes can be solved in parallel (default).
*
* @author Benedikt Zoennchen
*/
......@@ -30,11 +31,6 @@ public class NelderMead1D {
*/
private final VCircle evalArea;
/**
* the evaluation function which is optimized.
*/
private final Function<IPoint, Double> eval;
/**
* a simplex instance converges if the area of the triangle is smaller than <tt>threshold</tt> and
*/
......@@ -79,7 +75,6 @@ public class NelderMead1D {
@NotNull final Collection<Pair<Double, Double>> simplexes){
this.evalArea = evalArea;
this.eval = eval;
this.threshold = threshold;
this.simplices = simplexes.stream().map(s -> new Simplex1D(eval, s.getLeft(), s.getRight(), evalArea, minimize, NelderMead2D.MAX_VAL)).collect(Collectors.toList());
this.iterationCount = 0;
......@@ -101,7 +96,7 @@ public class NelderMead1D {
}
// second run
simplices.stream().forEach(s -> s.restart(evalArea.getRadius() / 10.0));
/*simplices.stream().forEach(s -> s.restart(evalArea.getRadius() / 10.0));
iterationCount = 0;
while (!hasConverged() && iterationCount < NMAX) {
......@@ -113,7 +108,7 @@ public class NelderMead1D {
logger.warn("max iteration reached!");
}
logger.debug("iterations: " + overallIterations);
logger.debug("iterations: " + overallIterations);*/
}
......
......@@ -15,6 +15,7 @@ import java.util.stream.Stream;
/**
* Implementation of the 2-dimensional Nelder-Mead.
* Multiple simplexes can be solved in parallel (default).
*
* @author Benedikt Zoennchen
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment