/// <summary> /// Set DE operator variants to be used, and determine the number /// of behavioural parameters associated with that variant. /// </summary> /// <param name="crossover">Crossover variant to be used.</param> /// <param name="dither">Dither variant to be used.</param> void SetVariant(DECrossover.Variant crossover, DitherVariant dither) { _dither = dither; _crossover = crossover; if (_dither == DitherVariant.None) { _dimensionality = 3; } else { _dimensionality = 4; } }
/// <summary> /// Construct the object. /// </summary> /// <param name="numAgentsMultiple">Population size multiple, e.g. 4 ensures populations are sized 4, 8, 12, 16, ...</param> /// <param name="problem">Problem to optimize.</param> /// <param name="crossover">Crossover variant to be used.</param> /// <param name="dither">Dither variant to be used.</param> public DESuite(int numAgentsMultiple, Problem problem, DECrossover.Variant crossover, DitherVariant dither) : base(problem, crossover, dither) { NumAgentsMultiple = numAgentsMultiple; }
/// <summary> /// Construct the object. /// </summary> /// <param name="problem">Problem to optimize.</param> /// <param name="crossover">Crossover variant to be used.</param> /// <param name="dither">Dither variant to be used.</param> public DESuite(Problem problem, DECrossover.Variant crossover, DitherVariant dither) : this(1, problem, crossover, dither) { }
/// <summary> /// Construct the object. /// </summary> /// <param name="crossover">Crossover variant to be used.</param> /// <param name="dither">Dither variant to be used.</param> public DESuite(DECrossover.Variant crossover, DitherVariant dither) : this(1, crossover, dither) { }
/// <summary> /// Set the optimizer variant to be used. /// </summary> /// <param name="crossover">Crossover variant.</param> void SetVariant(DECrossover.Variant crossover) { _crossover = crossover; }
/// <summary> /// Construct the object. /// </summary> /// <param name="problem">Problem to optimize.</param> /// <param name="crossover">Crossover variant.</param> public JDE(Problem problem, DECrossover.Variant crossover) : base(problem) { SetVariant(crossover); }
/// <summary> /// Construct the object. /// </summary> /// <param name="crossover">Crossover variant.</param> public JDE(DECrossover.Variant crossover) : base() { SetVariant(crossover); }
/// <summary> /// Construct the object. /// </summary> /// <param name="problem">Problem to optimize.</param> /// <param name="crossover">Crossover variant to be used.</param> /// <param name="dither">Dither variant to be used.</param> public DESuite(Problem problem, DECrossover.Variant crossover, DitherVariant dither) : base(problem) { // Set DE operator variants to be used. SetVariant(crossover, dither); }