Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/26/14 16:09:14 (10 years ago)
Author:
mkommend
Message:

#2174: Adapted encodings to store its specific parameters in the standard parameter collection.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ProgrammableProblem/HeuristicLab.Problems.Programmable/3.3/Encodings/RealEncoding.cs

    r11587 r11588  
    3737  public sealed class RealEncoding : Encoding<IRealVectorCreator> {
    3838    #region Encoding Parameters
    39     [Storable]
    4039    private IFixedValueParameter<IntValue> lengthParameter;
    4140    public IFixedValueParameter<IntValue> LengthParameter {
     
    4342      set {
    4443        if (value == null) throw new ArgumentNullException("Length parameter must not be null.");
     44        if (value.Value == null) throw new ArgumentNullException("Length parameter value must not be null.");
    4545        if (lengthParameter == value) return;
     46
     47        if (lengthParameter != null) Parameters.Remove(lengthParameter);
    4648        lengthParameter = value;
     49        Parameters.Add(lengthParameter);
    4750        OnLengthParameterChanged();
    4851      }
    4952    }
    5053
    51     [Storable]
    5254    private IValueParameter<DoubleMatrix> boundsParameter;
    5355    public IValueParameter<DoubleMatrix> BoundsParameter {
     
    5658        if (value == null) throw new ArgumentNullException("Bounds parameter must not be null.");
    5759        if (boundsParameter == value) return;
     60
     61        if (boundsParameter != null) Parameters.Remove(boundsParameter);
    5862        boundsParameter = value;
     63        Parameters.Add(boundsParameter);
    5964        OnBoundsParameterChanged();
    6065      }
    61     }
    62 
    63     public override IEnumerable<IValueParameter> Parameters {
    64       get { return new IValueParameter[] { LengthParameter, BoundsParameter }; }
    6566    }
    6667    #endregion
     
    99100      bounds[0, 1] = max;
    100101
    101       lengthParameter = new FixedValueParameter<IntValue>(Name + "Length", new IntValue(length));
    102       boundsParameter = new ValueParameter<DoubleMatrix>(Name + "Bounds", bounds);
     102      LengthParameter = new FixedValueParameter<IntValue>(Name + "Length", new IntValue(length));
     103      BoundsParameter = new ValueParameter<DoubleMatrix>(Name + "Bounds", bounds);
    103104
    104105      SolutionCreator = new UniformRandomRealVectorCreator();
     
    118119        bounds[i, 1] = max[i];
    119120      }
    120       lengthParameter = new FixedValueParameter<IntValue>(Name + "Length", new IntValue(length));
    121       boundsParameter = new ValueParameter<DoubleMatrix>(Name + "Bounds", bounds);
     121      LengthParameter = new FixedValueParameter<IntValue>(Name + "Length", new IntValue(length));
     122      BoundsParameter = new ValueParameter<DoubleMatrix>(Name + "Bounds", bounds);
    122123
    123124      SolutionCreator = new UniformRandomRealVectorCreator();
Note: See TracChangeset for help on using the changeset viewer.