FireflyAlgorithm::FireflyAlgorithm(Size M, boost::shared_ptr<Intensity> intensity, boost::shared_ptr<RandomWalk> randomWalk, Size Mde, Real mutation, Real crossover, unsigned long seed): mutation_(mutation), crossover_(crossover), M_(M), Mde_(Mde), Mfa_(M_-Mde_), intensity_(intensity), randomWalk_(randomWalk), drawIndex_(base_generator_type(seed), uniform_integer(Mfa_, M_-1)), rng_(seed){ QL_REQUIRE(M_ >= Mde_, "Differential Evolution subpopulation cannot be larger than total population"); }
LevyFlightInertia(Real alpha, Size threshhold, unsigned long seed = 0) :flight_(base_generator_type(seed), LevyFlightDistribution(1.0, alpha), 1, Array(1, 1.0), seed), threshhold_(threshhold) {};