Пример #1
0
 private RealVectorEncoding(RealVectorEncoding original, Cloner cloner)
     : base(original, cloner)
 {
     lengthParameter = cloner.Clone(original.lengthParameter);
     boundsParameter = cloner.Clone(original.boundsParameter);
     RegisterParameterEvents();
 }
Пример #2
0
        public RealVectorEncoding(string name, int length, IList <double> min, IList <double> max)
            : base(name)
        {
            if (min.Count == 0)
            {
                throw new ArgumentException("Bounds must be given for the real parameters.");
            }
            if (min.Count != max.Count)
            {
                throw new ArgumentException("min must be of the same length as max", "min");
            }
            if (min.Zip(max, (mi, ma) => mi >= ma).Any(x => x))
            {
                throw new ArgumentException("min must be less than max in each dimension", "min");
            }

            var bounds = new DoubleMatrix(min.Count, 2);

            for (int i = 0; i < min.Count; i++)
            {
                bounds[i, 0] = min[i];
                bounds[i, 1] = max[i];
            }
            lengthParameter = new FixedValueParameter <IntValue>(Name + ".Length", new IntValue(length));
            boundsParameter = new ValueParameter <DoubleMatrix>(Name + ".Bounds", bounds);
            Parameters.Add(lengthParameter);
            Parameters.Add(boundsParameter);

            SolutionCreator = new UniformRandomRealVectorCreator();
            RegisterParameterEvents();
            DiscoverOperators();
        }
Пример #3
0
        public IntegerVectorEncoding(string name, int length, int min = int.MinValue, int max = int.MaxValue, int?step = null)
            : base(name)
        {
            if (min >= max)
            {
                throw new ArgumentException("min must be less than max", "min");
            }
            if (step.HasValue && step.Value <= 0)
            {
                throw new ArgumentException("step must be greater than zero or null", "step");
            }

            var bounds = new IntMatrix(1, step.HasValue ? 3 : 2);

            bounds[0, 0] = min;
            bounds[0, 1] = max;
            if (step.HasValue)
            {
                bounds[0, 2] = step.Value;
            }

            lengthParameter = new FixedValueParameter <IntValue>(Name + ".Length", new IntValue(length));
            boundsParameter = new ValueParameter <IntMatrix>(Name + ".Bounds", bounds);
            Parameters.Add(lengthParameter);
            Parameters.Add(boundsParameter);

            SolutionCreator = new UniformRandomIntegerVectorCreator();
            RegisterParameterEvents();
            DiscoverOperators();
        }
Пример #4
0
 private PermutationEncoding(PermutationEncoding original, Cloner cloner)
     : base(original, cloner)
 {
     lengthParameter          = cloner.Clone(original.lengthParameter);
     permutationTypeParameter = cloner.Clone(original.permutationTypeParameter);
     RegisterParameterEvents();
 }
Пример #5
0
 public ComparisonTerminator(string comparisonValueActualName, ComparisonType comparisonType, IFixedValueParameter <T> thresholdParameter)
     : this()
 {
     ComparisonValueParameter.ActualName = comparisonValueActualName;
     ComparisonType     = comparisonType;
     ThresholdParameter = thresholdParameter;
 }
Пример #6
0
 public LinearSolver()
 {
     Parameters.Add(problemTypeParam =
                        new ValueParameter <EnumValue <ProblemType> >(nameof(ProblemType),
                                                                      new EnumValue <ProblemType>(ProblemType.MixedIntegerProgramming)));
     Parameters.Add(solverSpecificParametersParam =
                        new FixedValueParameter <TextValue>(nameof(SolverSpecificParameters), new TextValue()));
 }
Пример #7
0
 private SymbolicExpressionTreeEncoding(SymbolicExpressionTreeEncoding original, Cloner cloner)
     : base(original, cloner)
 {
     treeLengthParameter          = cloner.Clone(original.TreeLengthParameter);
     treeDepthParameter           = cloner.Clone(original.TreeDepthParameter);
     grammarParameter             = cloner.Clone(original.GrammarParameter);
     functionDefinitionsParameter = cloner.Clone(original.FunctionDefinitionsParameter);
     functionArgumentsParameter   = cloner.Clone(original.FunctionArgumentsParameter);
     RegisterParameterEvents();
 }
Пример #8
0
        public BinaryVectorEncoding(string name, int length)
            : base(name)
        {
            lengthParameter = new FixedValueParameter <IntValue>(Name + ".Length", new IntValue(length));
            Parameters.Add(lengthParameter);

            SolutionCreator = new RandomBinaryVectorCreator();
            RegisterParameterEvents();
            DiscoverOperators();
        }
 protected ThresholdTerminator(T threshold)
     : base()
 {
     if (threshold == null)
     {
         throw new ArgumentNullException("threshold");
     }
     thresholdParameter = new FixedValueParameter <T>("Threshold", "The limit of the termiation criterion.", threshold);
     Parameters.Add(thresholdParameter);
     Initialize();
 }
Пример #10
0
        public PermutationEncoding(string name, int length, PermutationTypes type)
            : base(name)
        {
            lengthParameter          = new FixedValueParameter <IntValue>(Name + ".Length", new IntValue(length));
            permutationTypeParameter = new FixedValueParameter <PermutationType>(Name + ".Type", new PermutationType(type));
            Parameters.Add(lengthParameter);
            Parameters.Add(permutationTypeParameter);

            SolutionCreator = new RandomPermutationCreator();
            RegisterParameterEvents();
            DiscoverOperators();
        }
 public FileBasedLinearProblemDefinition()
 {
     Parameters.Add(fileNameParam         = new FixedValueParameter <FileValue>(nameof(FileName), new FileValue()));
     fileNameParam.Value.FileDialogFilter =
         "All Supported Files (*.mps;*.bin;*.prototxt)|*.mps;*.bin;*.prototxt|" +
         "Mathematical Programming System Files (*.mps)|*.mps|" +
         "Google OR-Tools Protocol Buffers Files (*.bin;*.prototxt)|*.bin;*.prototxt|" +
         "All Files (*.*)|*.*";
     fileNameParam.Value.StringValue.ValueChanged += (o, e) => {
         if (File.Exists(FileName))
         {
             fileContent = File.ReadAllBytes(FileName);
         }
     };
 }
Пример #12
0
        public SymbolicExpressionTreeEncoding(string name, ISymbolicExpressionGrammar grammar, int maximumLength, int maximumDepth)
            : base(name)
        {
            treeLengthParameter          = new FixedValueParameter <IntValue>(Name + ".Maximum Tree Length", "Maximal length of the symbolic expression.", new IntValue(maximumLength));
            treeDepthParameter           = new FixedValueParameter <IntValue>(Name + ".Maximum Tree Depth", "Maximal depth of the symbolic expression. The minimum depth needed for the algorithm is 3 because two levels are reserved for the ProgramRoot and the Start symbol.", new IntValue(maximumDepth));
            grammarParameter             = new ValueParameter <ISymbolicExpressionGrammar>(Name + ".Grammar", "The grammar that should be used for symbolic expression tree.", grammar);
            functionDefinitionsParameter = new FixedValueParameter <IntValue>(Name + ".Function Definitions", "Maximal number of automatically defined functions", new IntValue(0));
            functionArgumentsParameter   = new FixedValueParameter <IntValue>(Name + ".Function Arguments", "Maximal number of arguments of automatically defined functions.", new IntValue(0));

            Parameters.Add(treeLengthParameter);
            Parameters.Add(treeDepthParameter);
            Parameters.Add(grammarParameter);
            Parameters.Add(functionDefinitionsParameter);
            Parameters.Add(functionArgumentsParameter);

            SolutionCreator = new ProbabilisticTreeCreator();
            RegisterParameterEvents();
            DiscoverOperators();
        }
Пример #13
0
        public IntegerVectorEncoding(string name, int length, IList <int> min, IList <int> max, IList <int> step = null)
            : base(name)
        {
            if (min.Count == 0)
            {
                throw new ArgumentException("Bounds must be given for the integer parameters.");
            }
            if (min.Count != max.Count)
            {
                throw new ArgumentException("min must be of the same length as max", "min");
            }
            if (step != null && min.Count != step.Count)
            {
                throw new ArgumentException("step must be of the same length as min or null", "step");
            }
            if (min.Zip(max, (mi, ma) => mi >= ma).Any(x => x))
            {
                throw new ArgumentException("min must be less than max in each dimension", "min");
            }

            var bounds = new IntMatrix(min.Count, step != null ? 3 : 2);

            for (int i = 0; i < min.Count; i++)
            {
                bounds[i, 0] = min[i];
                bounds[i, 1] = max[i];
                if (step != null)
                {
                    bounds[i, 2] = step[i];
                }
            }

            lengthParameter = new FixedValueParameter <IntValue>(Name + ".Length", new IntValue(length));
            boundsParameter = new ValueParameter <IntMatrix>(Name + ".Bounds", bounds);
            Parameters.Add(lengthParameter);
            Parameters.Add(boundsParameter);

            SolutionCreator = new UniformRandomIntegerVectorCreator();
            RegisterParameterEvents();
            DiscoverOperators();
        }
Пример #14
0
        public RealVectorEncoding(string name, int length, double min = double.MinValue, double max = double.MaxValue)
            : base(name)
        {
            if (min >= max)
            {
                throw new ArgumentException("min must be less than max", "min");
            }

            var bounds = new DoubleMatrix(1, 2);

            bounds[0, 0] = min;
            bounds[0, 1] = max;

            lengthParameter = new FixedValueParameter <IntValue>(Name + ".Length", new IntValue(length));
            boundsParameter = new ValueParameter <DoubleMatrix>(Name + ".Bounds", bounds);
            Parameters.Add(lengthParameter);
            Parameters.Add(boundsParameter);

            SolutionCreator = new UniformRandomRealVectorCreator();
            RegisterParameterEvents();
            DiscoverOperators();
        }
Пример #15
0
 protected LinearSolver(LinearSolver original, Cloner cloner)
     : base(original, cloner)
 {
     problemTypeParam = cloner.Clone(original.problemTypeParam);
     solverSpecificParametersParam = cloner.Clone(original.solverSpecificParametersParam);
 }
 private FileBasedLinearProblemDefinition(FileBasedLinearProblemDefinition original, Cloner cloner)
     : base(original, cloner)
 {
     fileNameParam = cloner.Clone(original.fileNameParam);
 }
Пример #17
0
 private BinaryVectorEncoding(BinaryVectorEncoding original, Cloner cloner)
     : base(original, cloner)
 {
     lengthParameter = cloner.Clone(original.lengthParameter);
     RegisterParameterEvents();
 }
Пример #18
0
 private LinearLinkageEncoding(LinearLinkageEncoding original, Cloner cloner)
     : base(original, cloner)
 {
     lengthParameter = cloner.Clone(original.lengthParameter);
     RegisterParameterEvents();
 }
Пример #19
0
 protected ThresholdTerminator(ThresholdTerminator <T> original, Cloner cloner)
     : base(original, cloner)
 {
     thresholdParameter = cloner.Clone(original.thresholdParameter);
     Initialize();
 }
Пример #20
0
 protected ExternalLinearSolver(ExternalLinearSolver original, Cloner cloner)
     : base(original, cloner)
 {
     libraryNameParam = cloner.Clone(original.libraryNameParam);
 }