Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/18/20 18:55:08 (5 years ago)
Author:
abeham
Message:

#2521: worked on refactoring, worked a lot on binary encoding / problems

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2521_ProblemRefactoring/HeuristicLab.Problems.ExternalEvaluation/3.4/ExternalEvaluationProblemInstances.cs

    r16874 r17544  
    4141  [StorableType("4ea0ded8-4451-4011-b88e-4d0680721b01")]
    4242  public sealed class SingleObjectiveBinaryVectorExternalEvaluationProblem : ExternalEvaluationProblem<BinaryVectorEncoding, BinaryVector> {
     43    [Storable] private ReferenceParameter<IntValue> DimensionRefParameter;
     44    public IValueParameter<IntValue> DimensionParameter => DimensionRefParameter;
     45
     46    public int Dimension {
     47      get => Encoding.Length;
     48      set => Encoding.Length = value;
     49    }
    4350
    4451    [StorableConstructor]
    4552    private SingleObjectiveBinaryVectorExternalEvaluationProblem(StorableConstructorFlag _) : base(_) { }
    46     private SingleObjectiveBinaryVectorExternalEvaluationProblem(SingleObjectiveBinaryVectorExternalEvaluationProblem original, Cloner cloner) : base(original, cloner) { }
     53    private SingleObjectiveBinaryVectorExternalEvaluationProblem(SingleObjectiveBinaryVectorExternalEvaluationProblem original, Cloner cloner)
     54      : base(original, cloner) {
     55      DimensionRefParameter = cloner.Clone(original.DimensionRefParameter);
     56    }
    4757
    4858    public SingleObjectiveBinaryVectorExternalEvaluationProblem()
    4959      : base(new BinaryVectorEncoding()) {
    50       var lengthParameter = new FixedValueParameter<IntValue>("Length", "The length of the vector.", new IntValue(10));
    51       Parameters.Add(lengthParameter);
    52       Encoding.LengthParameter = lengthParameter;
     60      Parameters.Add(DimensionRefParameter = new ReferenceParameter<IntValue>("Dimension", "The dimension of the vector.", Encoding.LengthParameter));
     61      DimensionRefParameter.ForceValue(new IntValue(Dimension, @readonly: false));
    5362      // TODO: Add and parameterize additional operators,
    5463    }
     
    6473  [StorableType("46465e8c-11d8-4d02-8c45-de41a08db7fa")]
    6574  public sealed class SingleObjectiveIntegerVectorExternalEvaluationProblem : ExternalEvaluationProblem<IntegerVectorEncoding, IntegerVector> {
     75    [Storable] private ReferenceParameter<IntValue> DimensionRefParameter;
     76    public IValueParameter<IntValue> DimensionParameter => DimensionRefParameter;
     77    [Storable] private ReferenceParameter<IntMatrix> BoundsRefParameter;
     78    public IValueParameter<IntMatrix> BoundsParameter => BoundsRefParameter;
     79
     80    public int Dimension {
     81      get => DimensionRefParameter.Value.Value;
     82      set => DimensionRefParameter.Value.Value = value;
     83    }
     84
     85    public IntMatrix Bounds {
     86      get => BoundsRefParameter.Value;
     87      set => BoundsRefParameter.Value = value;
     88    }
    6689
    6790    [StorableConstructor]
    6891    private SingleObjectiveIntegerVectorExternalEvaluationProblem(StorableConstructorFlag _) : base(_) { }
    69     private SingleObjectiveIntegerVectorExternalEvaluationProblem(SingleObjectiveIntegerVectorExternalEvaluationProblem original, Cloner cloner) : base(original, cloner) { }
     92    private SingleObjectiveIntegerVectorExternalEvaluationProblem(SingleObjectiveIntegerVectorExternalEvaluationProblem original, Cloner cloner)
     93      : base(original, cloner) {
     94      DimensionRefParameter = cloner.Clone(original.DimensionRefParameter);
     95      BoundsRefParameter = cloner.Clone(original.BoundsRefParameter);
     96    }
    7097
    7198    public SingleObjectiveIntegerVectorExternalEvaluationProblem()
    7299      : base(new IntegerVectorEncoding()) {
    73       var lengthParameter = new FixedValueParameter<IntValue>("Length", "The length of the vector.", new IntValue(10));
    74       Parameters.Add(lengthParameter);
    75       Encoding.LengthParameter = lengthParameter;
     100      Parameters.Add(DimensionRefParameter = new ReferenceParameter<IntValue>("Dimension", "The dimension of the vector.", Encoding.LengthParameter));
     101      Parameters.Add(BoundsRefParameter = new ReferenceParameter<IntMatrix>("Bounds", "The bounding box and step size of the elements.", Encoding.BoundsParameter));
    76102      // TODO: Add and parameterize additional operators,
    77103    }
     
    87113  [StorableType("637f091f-6601-494e-bafb-2a8ea474210c")]
    88114  public sealed class SingleObjectiveRealVectorExternalEvaluationProblem : ExternalEvaluationProblem<RealVectorEncoding, RealVector> {
     115    [Storable] private ReferenceParameter<IntValue> DimensionRefParameter;
     116    public IValueParameter<IntValue> DimensionParameter => DimensionRefParameter;
     117    [Storable] private ReferenceParameter<DoubleMatrix> BoundsRefParameter;
     118    public IValueParameter<DoubleMatrix> BoundsParameter => BoundsRefParameter;
     119
     120    public int Dimension {
     121      get => DimensionRefParameter.Value.Value;
     122      set => DimensionRefParameter.Value.Value = value;
     123    }
     124
     125    public DoubleMatrix Bounds {
     126      get => BoundsRefParameter.Value;
     127      set => BoundsRefParameter.Value = value;
     128    }
    89129
    90130    [StorableConstructor]
    91131    private SingleObjectiveRealVectorExternalEvaluationProblem(StorableConstructorFlag _) : base(_) { }
    92     private SingleObjectiveRealVectorExternalEvaluationProblem(SingleObjectiveRealVectorExternalEvaluationProblem original, Cloner cloner) : base(original, cloner) { }
     132    private SingleObjectiveRealVectorExternalEvaluationProblem(SingleObjectiveRealVectorExternalEvaluationProblem original, Cloner cloner)
     133      : base(original, cloner) {
     134      DimensionRefParameter = cloner.Clone(original.DimensionRefParameter);
     135      BoundsRefParameter = cloner.Clone(original.BoundsRefParameter);
     136    }
    93137
    94138    public SingleObjectiveRealVectorExternalEvaluationProblem()
    95139      : base(new RealVectorEncoding()) {
    96       var lengthParameter = new FixedValueParameter<IntValue>("Length", "The length of the vector.", new IntValue(10));
    97       Parameters.Add(lengthParameter);
    98       Encoding.LengthParameter = lengthParameter;
     140      Parameters.Add(DimensionRefParameter = new ReferenceParameter<IntValue>("Dimension", "The dimension of the vector.", Encoding.LengthParameter));
     141      Parameters.Add(BoundsRefParameter = new ReferenceParameter<DoubleMatrix>("Bounds", "The bounding box of the elements.", Encoding.BoundsParameter));
    99142      // TODO: Add and parameterize additional operators,
    100143    }
     
    110153  [StorableType("ad9d45f8-b97e-49a7-b3d2-487d9a2cbdf9")]
    111154  public sealed class SingleObjectivePermutationExternalEvaluationProblem : ExternalEvaluationProblem<PermutationEncoding, Permutation> {
     155    [Storable] private ReferenceParameter<IntValue> DimensionRefParameter;
     156    public IValueParameter<IntValue> DimensionParameter => DimensionRefParameter;
     157
     158    public int Dimension {
     159      get => DimensionRefParameter.Value.Value;
     160      set => DimensionRefParameter.Value.Value = value;
     161    }
    112162
    113163    [StorableConstructor]
    114164    private SingleObjectivePermutationExternalEvaluationProblem(StorableConstructorFlag _) : base(_) { }
    115     private SingleObjectivePermutationExternalEvaluationProblem(SingleObjectivePermutationExternalEvaluationProblem original, Cloner cloner) : base(original, cloner) { }
     165    private SingleObjectivePermutationExternalEvaluationProblem(SingleObjectivePermutationExternalEvaluationProblem original, Cloner cloner)
     166      : base(original, cloner) {
     167      DimensionRefParameter = cloner.Clone(original.DimensionRefParameter);
     168    }
    116169
    117170    public SingleObjectivePermutationExternalEvaluationProblem()
    118171      : base(new PermutationEncoding()) {
    119       var lengthParameter = new FixedValueParameter<IntValue>("Length", "The length of the permutation.", new IntValue(10));
    120       Parameters.Add(lengthParameter);
    121       Encoding.LengthParameter = lengthParameter;
     172      Parameters.Add(DimensionRefParameter = new ReferenceParameter<IntValue>("Dimension", "The dimension of the vector.", Encoding.LengthParameter));
    122173      // TODO: Add and parameterize additional operators,
    123174    }
     
    140191    public SingleObjectiveSymbolicExpressionTreeExternalEvaluationProblem()
    141192      : base(new SymbolicExpressionTreeEncoding()) {
     193      // TODO: Change to ReferenceParameter
    142194      var lengthParameter = new FixedValueParameter<IntValue>("TreeLength", "The total amount of nodes.", new IntValue(50));
    143195      Parameters.Add(lengthParameter);
     
    159211  [StorableType("945a35d9-89a8-4423-9ea0-21829ac68887")]
    160212  public sealed class SingleObjectiveLinearLinkageExternalEvaluationProblem : ExternalEvaluationProblem<LinearLinkageEncoding, LinearLinkage> {
     213    [Storable] private ReferenceParameter<IntValue> DimensionRefParameter;
     214    public IValueParameter<IntValue> DimensionParameter => DimensionRefParameter;
     215
     216    public int Dimension {
     217      get => DimensionRefParameter.Value.Value;
     218      set => DimensionRefParameter.Value.Value = value;
     219    }
    161220
    162221    [StorableConstructor]
    163222    private SingleObjectiveLinearLinkageExternalEvaluationProblem(StorableConstructorFlag _) : base(_) { }
    164     private SingleObjectiveLinearLinkageExternalEvaluationProblem(SingleObjectiveLinearLinkageExternalEvaluationProblem original, Cloner cloner) : base(original, cloner) { }
     223    private SingleObjectiveLinearLinkageExternalEvaluationProblem(SingleObjectiveLinearLinkageExternalEvaluationProblem original, Cloner cloner)
     224      : base(original, cloner) {
     225      DimensionRefParameter = cloner.Clone(original.DimensionRefParameter);
     226    }
    165227
    166228    public SingleObjectiveLinearLinkageExternalEvaluationProblem()
    167229      : base(new LinearLinkageEncoding()) {
    168       var lengthParameter = new FixedValueParameter<IntValue>("Length", "The length of the vector.", new IntValue(10));
    169       Parameters.Add(lengthParameter);
    170       Encoding.LengthParameter = lengthParameter;
     230      Parameters.Add(DimensionRefParameter = new ReferenceParameter<IntValue>("Dimension", "The dimension of the vector.", Encoding.LengthParameter));
    171231      // TODO: Add and parameterize additional operators,
    172232    }
     
    199259  [StorableType("f14c7e88-b74d-4cad-ae55-83daf7b4c288")]
    200260  public sealed class MultiObjectiveBinaryVectorExternalEvaluationProblem : MultiObjectiveExternalEvaluationProblem<BinaryVectorEncoding, BinaryVector> {
     261    [Storable] private ReferenceParameter<IntValue> DimensionRefParameter;
     262    public IValueParameter<IntValue> DimensionParameter => DimensionRefParameter;
     263
     264    public int Dimension {
     265      get => Encoding.Length;
     266      set => Encoding.Length = value;
     267    }
    201268
    202269    [StorableConstructor]
    203270    private MultiObjectiveBinaryVectorExternalEvaluationProblem(StorableConstructorFlag _) : base(_) { }
    204     private MultiObjectiveBinaryVectorExternalEvaluationProblem(MultiObjectiveBinaryVectorExternalEvaluationProblem original, Cloner cloner) : base(original, cloner) { }
     271    private MultiObjectiveBinaryVectorExternalEvaluationProblem(MultiObjectiveBinaryVectorExternalEvaluationProblem original, Cloner cloner)
     272      : base(original, cloner) {
     273      DimensionRefParameter = cloner.Clone(original.DimensionRefParameter);
     274    }
    205275
    206276    public MultiObjectiveBinaryVectorExternalEvaluationProblem()
    207277      : base(new BinaryVectorEncoding()) {
    208       var lengthParameter = new FixedValueParameter<IntValue>("Length", "The length of the vector.", new IntValue(10));
    209       Parameters.Add(lengthParameter);
    210       Encoding.LengthParameter = lengthParameter;
     278      Parameters.Add(DimensionRefParameter = new ReferenceParameter<IntValue>("Dimension", "The dimension of the vector.", Encoding.LengthParameter));
     279      DimensionRefParameter.ForceValue(new IntValue(Dimension, @readonly: false));
    211280      // TODO: Add and parameterize additional operators,
    212281    }
     
    222291  [StorableType("90a82c2f-6c37-4ffd-8495-bee278c583d3")]
    223292  public sealed class MultiObjectiveIntegerVectorExternalEvaluationProblem : MultiObjectiveExternalEvaluationProblem<IntegerVectorEncoding, IntegerVector> {
     293    [Storable] private ReferenceParameter<IntValue> DimensionRefParameter;
     294    public IValueParameter<IntValue> DimensionParameter => DimensionRefParameter;
     295    [Storable] private ReferenceParameter<IntMatrix> BoundsRefParameter;
     296    public IValueParameter<IntMatrix> BoundsParameter => BoundsRefParameter;
     297
     298    public int Dimension {
     299      get => DimensionRefParameter.Value.Value;
     300      set => DimensionRefParameter.Value.Value = value;
     301    }
     302
     303    public IntMatrix Bounds {
     304      get => BoundsRefParameter.Value;
     305      set => BoundsRefParameter.Value = value;
     306    }
    224307
    225308    [StorableConstructor]
    226309    private MultiObjectiveIntegerVectorExternalEvaluationProblem(StorableConstructorFlag _) : base(_) { }
    227     private MultiObjectiveIntegerVectorExternalEvaluationProblem(MultiObjectiveIntegerVectorExternalEvaluationProblem original, Cloner cloner) : base(original, cloner) { }
     310    private MultiObjectiveIntegerVectorExternalEvaluationProblem(MultiObjectiveIntegerVectorExternalEvaluationProblem original, Cloner cloner)
     311      : base(original, cloner) {
     312      DimensionRefParameter = cloner.Clone(original.DimensionRefParameter);
     313      BoundsRefParameter = cloner.Clone(original.BoundsRefParameter);
     314    }
    228315
    229316    public MultiObjectiveIntegerVectorExternalEvaluationProblem()
    230317      : base(new IntegerVectorEncoding()) {
    231       var lengthParameter = new FixedValueParameter<IntValue>("Length", "The length of the vector.", new IntValue(10));
    232       Parameters.Add(lengthParameter);
    233       Encoding.LengthParameter = lengthParameter;
     318      Parameters.Add(DimensionRefParameter = new ReferenceParameter<IntValue>("Dimension", "The dimension of the vector.", Encoding.LengthParameter));
     319      Parameters.Add(BoundsRefParameter = new ReferenceParameter<IntMatrix>("Bounds", "The bounding box and step size of the elements.", Encoding.BoundsParameter));
    234320      // TODO: Add and parameterize additional operators,
    235321    }
     
    245331  [StorableType("38e1d068-d569-48c5-bad6-cbdd685b7c6b")]
    246332  public sealed class MultiObjectiveRealVectorExternalEvaluationProblem : MultiObjectiveExternalEvaluationProblem<RealVectorEncoding, RealVector> {
     333    [Storable] private ReferenceParameter<IntValue> DimensionRefParameter;
     334    public IValueParameter<IntValue> DimensionParameter => DimensionRefParameter;
     335    [Storable] private ReferenceParameter<DoubleMatrix> BoundsRefParameter;
     336    public IValueParameter<DoubleMatrix> BoundsParameter => BoundsRefParameter;
     337
     338    public int Dimension {
     339      get => DimensionRefParameter.Value.Value;
     340      set => DimensionRefParameter.Value.Value = value;
     341    }
     342
     343    public DoubleMatrix Bounds {
     344      get => BoundsRefParameter.Value;
     345      set => BoundsRefParameter.Value = value;
     346    }
    247347
    248348    [StorableConstructor]
    249349    private MultiObjectiveRealVectorExternalEvaluationProblem(StorableConstructorFlag _) : base(_) { }
    250     private MultiObjectiveRealVectorExternalEvaluationProblem(MultiObjectiveRealVectorExternalEvaluationProblem original, Cloner cloner) : base(original, cloner) { }
     350    private MultiObjectiveRealVectorExternalEvaluationProblem(MultiObjectiveRealVectorExternalEvaluationProblem original, Cloner cloner)
     351      : base(original, cloner) {
     352      DimensionRefParameter = cloner.Clone(original.DimensionRefParameter);
     353      BoundsRefParameter = cloner.Clone(original.BoundsRefParameter);
     354    }
    251355
    252356    public MultiObjectiveRealVectorExternalEvaluationProblem()
    253357      : base(new RealVectorEncoding()) {
    254       var lengthParameter = new FixedValueParameter<IntValue>("Length", "The length of the vector.", new IntValue(10));
    255       Parameters.Add(lengthParameter);
    256       Encoding.LengthParameter = lengthParameter;
     358      Parameters.Add(DimensionRefParameter = new ReferenceParameter<IntValue>("Dimension", "The dimension of the vector.", Encoding.LengthParameter));
     359      Parameters.Add(BoundsRefParameter = new ReferenceParameter<DoubleMatrix>("Bounds", "The bounding box of the elements.", Encoding.BoundsParameter));
    257360      // TODO: Add and parameterize additional operators,
    258361    }
     
    268371  [StorableType("f1b265b0-ac7c-4c36-b346-5b3f2c37694b")]
    269372  public sealed class MultiObjectivePermutationExternalEvaluationProblem : MultiObjectiveExternalEvaluationProblem<PermutationEncoding, Permutation> {
     373    [Storable] private ReferenceParameter<IntValue> DimensionRefParameter;
     374    public IValueParameter<IntValue> DimensionParameter => DimensionRefParameter;
     375
     376    public int Dimension {
     377      get => DimensionRefParameter.Value.Value;
     378      set => DimensionRefParameter.Value.Value = value;
     379    }
    270380
    271381    [StorableConstructor]
    272382    private MultiObjectivePermutationExternalEvaluationProblem(StorableConstructorFlag _) : base(_) { }
    273     private MultiObjectivePermutationExternalEvaluationProblem(MultiObjectivePermutationExternalEvaluationProblem original, Cloner cloner) : base(original, cloner) { }
     383    private MultiObjectivePermutationExternalEvaluationProblem(MultiObjectivePermutationExternalEvaluationProblem original, Cloner cloner)
     384      : base(original, cloner) {
     385      DimensionRefParameter = cloner.Clone(original.DimensionRefParameter);
     386    }
    274387
    275388    public MultiObjectivePermutationExternalEvaluationProblem()
    276389      : base(new PermutationEncoding()) {
    277       var lengthParameter = new FixedValueParameter<IntValue>("Length", "The length of the permutation.", new IntValue(10));
    278       Parameters.Add(lengthParameter);
    279       Encoding.LengthParameter = lengthParameter;
     390      Parameters.Add(DimensionRefParameter = new ReferenceParameter<IntValue>("Dimension", "The dimension of the vector.", Encoding.LengthParameter));
    280391      // TODO: Add and parameterize additional operators,
    281392    }
     
    298409    public MultiObjectiveSymbolicExpressionTreeExternalEvaluationProblem()
    299410      : base(new SymbolicExpressionTreeEncoding()) {
     411      // TODO: Change to ReferenceParameter
    300412      var lengthParameter = new FixedValueParameter<IntValue>("TreeLength", "The total amount of nodes.", new IntValue(50));
    301413      Parameters.Add(lengthParameter);
     
    317429  [StorableType("ed0c1129-651d-465f-87b0-f412f3e3b3d1")]
    318430  public sealed class MultiObjectiveLinearLinkageExternalEvaluationProblem : MultiObjectiveExternalEvaluationProblem<LinearLinkageEncoding, LinearLinkage> {
     431    [Storable] private ReferenceParameter<IntValue> DimensionRefParameter;
     432    public IValueParameter<IntValue> DimensionParameter => DimensionRefParameter;
     433
     434    public int Dimension {
     435      get => DimensionRefParameter.Value.Value;
     436      set => DimensionRefParameter.Value.Value = value;
     437    }
    319438
    320439    [StorableConstructor]
    321440    private MultiObjectiveLinearLinkageExternalEvaluationProblem(StorableConstructorFlag _) : base(_) { }
    322     private MultiObjectiveLinearLinkageExternalEvaluationProblem(MultiObjectiveLinearLinkageExternalEvaluationProblem original, Cloner cloner) : base(original, cloner) { }
     441    private MultiObjectiveLinearLinkageExternalEvaluationProblem(MultiObjectiveLinearLinkageExternalEvaluationProblem original, Cloner cloner)
     442      : base(original, cloner) {
     443      DimensionRefParameter = cloner.Clone(original.DimensionRefParameter);
     444    }
    323445
    324446    public MultiObjectiveLinearLinkageExternalEvaluationProblem()
    325447      : base(new LinearLinkageEncoding()) {
    326       var lengthParameter = new FixedValueParameter<IntValue>("Length", "The length of the vector.", new IntValue(10));
    327       Parameters.Add(lengthParameter);
    328       Encoding.LengthParameter = lengthParameter;
     448      Parameters.Add(DimensionRefParameter = new ReferenceParameter<IntValue>("Dimension", "The dimension of the vector.", Encoding.LengthParameter));
    329449      // TODO: Add and parameterize additional operators,
    330450    }
Note: See TracChangeset for help on using the changeset viewer.