コード例 #1
0
        public EvolutionaryProgramming(CreateSolutionMethod solution_generator, int dimension, int pop_size = 100, int bout_size = 5)
        {
            mPopSize   = pop_size;
            mDimension = dimension;
            mBoutSize  = bout_size;

            mSolutionGenerator = solution_generator;
            if (mSolutionGenerator == null)
            {
                throw new NullReferenceException();
            }
        }
        public EvolutionStrategy(CreateSolutionMethod solution_generator, int dimension, int mu = 30, int lambda = 20)
        {
            mPopSize_mu           = mu;
            mOffspringSize_lambda = lambda;
            mDimension            = dimension;

            mSolutionGenerator = solution_generator;
            if (mSolutionGenerator == null)
            {
                throw new NullReferenceException();
            }
        }
コード例 #3
0
        public DifferentialEvolution(CostFunction f)
        {
            mSolutionGenerator = (dimension, constraints) =>
            {
                double[] x_0 = f.CreateRandomSolution();
                return(x_0);
            };

            mPopSize   = f.DimensionCount * 10;
            mDimension = f.DimensionCount;

            mUpperBounds = f.UpperBounds;
            mLowerBounds = f.LowerBounds;
        }
コード例 #4
0
        public EvolutionaryProgramming(CostFunction f, int popSize = 100, int boutSize = 5)
        {
            mSolutionGenerator = (dimension, constraints) =>
            {
                double[] x_0 = f.CreateRandomSolution();
                return(x_0);
            };

            mPopSize   = popSize;
            mDimension = f.DimensionCount;
            mBoutSize  = boutSize;

            mUpperBounds = f.UpperBounds;
            mLowerBounds = f.LowerBounds;
        }
        public EvolutionStrategy(CostFunction f, int mu = 30, int lambda = 20)
        {
            mSolutionGenerator = (dimension, constraints) =>
            {
                double[] x_0 = f.CreateRandomSolution();
                return(x_0);
            };

            mPopSize_mu           = mu;
            mOffspringSize_lambda = lambda;
            mDimension            = f.DimensionCount;

            mUpperBounds = f.UpperBounds;
            mLowerBounds = f.LowerBounds;
        }
コード例 #6
0
 public DifferentialEvolution(int dimension, CreateSolutionMethod solution_generator)
 {
     mPopSize = dimension * 10;
 }