Return the current best fitting parameters
Perform one minimization step (generation)
Tweaking parameter, see Brest et al for details
Tweaking parameter, see Brest et al for details
// Function to minimize auto fn = ( double[] xs ) { auto p = [ 1.0, 2.0, 10, 20, 30 ]; return p[2] * (xs[0] - p[0]) * (xs[0] - p[0]) + p[3] * (xs[1] - p[1]) * (xs[1] - p[1]) + p[4]; }; // Function which will create random initial sets of parameters auto initFunction = () { return [ uniform( 0.0, 10.0 ), uniform( 0.0, 10.0 )]; }; auto de = new DifferentialEvolution!(double[])(); de.temperatureFunction = fn; de.randomIndividual = initFunction; auto min = de.minimize; assert( equal!approxEqual( min, [ 1, 2 ] ) );