private RealVectorEncoding(RealVectorEncoding original, Cloner cloner) : base(original, cloner) { lengthParameter = cloner.Clone(original.lengthParameter); boundsParameter = cloner.Clone(original.boundsParameter); RegisterParameterEvents(); }
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(); }
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(); }
private PermutationEncoding(PermutationEncoding original, Cloner cloner) : base(original, cloner) { lengthParameter = cloner.Clone(original.lengthParameter); permutationTypeParameter = cloner.Clone(original.permutationTypeParameter); RegisterParameterEvents(); }
public ComparisonTerminator(string comparisonValueActualName, ComparisonType comparisonType, IFixedValueParameter <T> thresholdParameter) : this() { ComparisonValueParameter.ActualName = comparisonValueActualName; ComparisonType = comparisonType; ThresholdParameter = thresholdParameter; }
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())); }
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(); }
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(); }
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); } }; }
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(); }
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(); }
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(); }
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); }
private BinaryVectorEncoding(BinaryVectorEncoding original, Cloner cloner) : base(original, cloner) { lengthParameter = cloner.Clone(original.lengthParameter); RegisterParameterEvents(); }
private LinearLinkageEncoding(LinearLinkageEncoding original, Cloner cloner) : base(original, cloner) { lengthParameter = cloner.Clone(original.lengthParameter); RegisterParameterEvents(); }
protected ThresholdTerminator(ThresholdTerminator <T> original, Cloner cloner) : base(original, cloner) { thresholdParameter = cloner.Clone(original.thresholdParameter); Initialize(); }
protected ExternalLinearSolver(ExternalLinearSolver original, Cloner cloner) : base(original, cloner) { libraryNameParam = cloner.Clone(original.libraryNameParam); }