예제 #1
0
        protected DifferentialEvolutionAlgorithm(OptimizationProblem optimizationProblem, int populationSize,
                                                 double mutationFactor, double crossoverProbability, IConvergenceCriterion convergenceCriterion,
                                                 Random randomNumberGenerator)
        {
            this.dimension     = optimizationProblem.Dimension;
            this.lowerBound    = optimizationProblem.LowerBound;
            this.upperBound    = optimizationProblem.UpperBound;
            this.designFactory = optimizationProblem.DesignFactory;

            this.populationSize       = populationSize;
            this.mutationFactor       = mutationFactor;
            this.crossoverProbability = crossoverProbability;
            this.convergenceCriterion = convergenceCriterion;

            this.randomNumberGenerator = randomNumberGenerator;
        }
예제 #2
0
        public ParticleSwarmOptimizationAlgorithm(int dimension, double[] lowerBound, double[] upperBound, IDesignFactory designFactory,
                                                  int swarmSize, double omega, double phip, double phig, IConvergenceCriterion convergenceCriterion, IOptimizationLogger logger,
                                                  Random randomNumberGenerator)
        {
            this.dimension     = dimension;
            this.lowerBound    = lowerBound;
            this.upperBound    = upperBound;
            this.designFactory = designFactory;

            this.swarmSize            = swarmSize;
            this.omega                = omega;
            this.phip                 = phip;
            this.phig                 = phig;
            this.convergenceCriterion = convergenceCriterion;
            this.logger               = logger;

            this.randomNumberGenerator = randomNumberGenerator;
        }
        private GeneticAlgorithm(int continuousVariablesCount, int integerVariablesCount, IDesignFactory designFactory,
                                 IOptimizationLogger logger, IConvergenceCriterion convergenceCriterion, IInitializer <double> initializer,
                                 IEncoding <T> encoding, int populationSize, IPopulationStrategy <T> populationStrategy,
                                 ISelectionStrategy <T> selection, IRecombinationStrategy <T> recombination, IMutationStrategy <T> mutation)
        {
            this.continuousVariablesCount = continuousVariablesCount;
            this.integerVariablesCount    = integerVariablesCount;
            this.designFactory            = designFactory;

            this.logger = logger;
            this.convergenceCriterion = convergenceCriterion;
            this.initializer          = initializer;

            this.encoding           = encoding;
            this.populationSize     = populationSize;
            this.populationStrategy = populationStrategy;
            this.selection          = selection;
            this.recombination      = recombination;
            this.mutation           = mutation;

            this.CurrentIteration = -1; // Initialization phase is not counted towards iterations
            this.BestPosition     = null;
            this.BestFitness      = double.MaxValue;
        }
 internal OrCriterion(IConvergenceCriterion criterion1, IConvergenceCriterion criterion2)
 {
     this.criterion1 = criterion1;
     this.criterion2 = criterion2;
 }
 public static IConvergenceCriterion NOT(IConvergenceCriterion originalCriterion)
 {
     return(new NotCriterion(originalCriterion));
 }
 internal NotCriterion(IConvergenceCriterion originalCriterion)
 {
     this.originalCriterion = originalCriterion;
 }
 public static IConvergenceCriterion OR(IConvergenceCriterion criterion1, IConvergenceCriterion criterion2)
 {
     return(new OrCriterion(criterion1, criterion2));
 }
 public static IConvergenceCriterion AND(IConvergenceCriterion criterion1, IConvergenceCriterion criterion2)
 {
     return(new AndCriterion(criterion1, criterion2));
 }