public override DimensionSet <BinaryRepresentation> PickImprovement(
     IEnumerable <DimensionSet <BinaryRepresentation> > neighbourhood,
     DimensionalFunction function,
     double currentMinimum)
 {
     return(neighbourhood.FirstOrDefault(n => function.GetValue(n, new BinarySetToDoubleSetConverter()) < currentMinimum));
 }
 public SimulatedAnnealingMinimumBuilder WithFunction(DimensionalFunction function)
 {
     this.function =
         function ?? throw new ArgumentNullException(
                   "The simulated annealing minimum builder needs a non-null function to work with!");
     return(this);
 }
 public override DimensionSet <double> PickImprovement(
     IEnumerable <DimensionSet <double> > neighbourhood,
     DimensionalFunction function,
     double currentMinimum)
 {
     return(neighbourhood.FirstOrDefault(n => function.GetValue(n) < currentMinimum));
 }
Exemple #4
0
        public override DimensionSet <double> Convert(Chromosome source, DimensionalFunction function)
        {
            var doubles =
                source.Representations.Select((x, dimension) =>
                                              BinaryHelper.DecodeBinary(x, function.GetDomain().GetDefinitionForDimension(dimension + 1), function.Precision));

            return(new DimensionSet <double>(doubles));
        }
Exemple #5
0
        public override DimensionSet <BinaryRepresentation> PickImprovement(
            IEnumerable <DimensionSet <BinaryRepresentation> > neighbourhood,
            DimensionalFunction function,
            double currentMinimum)
        {
            DimensionSet <BinaryRepresentation> bestImprovement = null;

            foreach (var neighbour in neighbourhood)
            {
                var value = function.GetValue(neighbour, new BinarySetToDoubleSetConverter());
                if (currentMinimum <= value)
                {
                    continue;
                }

                currentMinimum  = value;
                bestImprovement = neighbour;
            }

            return(bestImprovement);
        }
Exemple #6
0
        public override DimensionSet <double> PickImprovement(
            IEnumerable <DimensionSet <double> > neighbourhood,
            DimensionalFunction function,
            double currentMinimum)
        {
            DimensionSet <double> bestImprovement = null;

            foreach (var neighbour in neighbourhood)
            {
                var value = function.GetValue(neighbour);
                if (currentMinimum <= value)
                {
                    continue;
                }

                currentMinimum  = value;
                bestImprovement = neighbour;
            }

            return(bestImprovement);
        }
Exemple #7
0
        public GeneticMinimumBuilder WithOptimizingFunction(DimensionalFunction function)
        {
            this.optimizingFunction = function ?? throw new InvalidOperationException("Function should not be null!");

            return(this);
        }
 public abstract DimensionSet <double> Convert(TSource source, DimensionalFunction function);
 public abstract DimensionSet <BinaryRepresentation> PickImprovement(
     IEnumerable <DimensionSet <BinaryRepresentation> > neighbourhood,
     DimensionalFunction function,
     double currentMinimum);