Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/04/11 23:41:25 (12 years ago)
Author:
bburlacu
Message:

#1682: Implemented the MultiSymbolicDataAnalysisExpressionTreeCrossover

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/gp-crossover/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding/3.4/Crossovers/SubtreeCrossover.cs

    r7035 r7119  
    2828using HeuristicLab.Parameters;
    2929using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     30using HeuristicLab.PluginInfrastructure;
    3031
    3132namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {
     
    3738  /// </summary> 
    3839  [Item("SubtreeCrossover", "An operator which performs subtree swapping crossover.")]
     40  [NonDiscoverableType]
    3941  [StorableClass]
    40   public sealed class SubtreeCrossover : SymbolicExpressionTreeCrossover, ISymbolicExpressionTreeSizeConstraintOperator {
     42  public class SubtreeCrossover : SymbolicExpressionTreeCrossover, ISymbolicExpressionTreeSizeConstraintOperator {
    4143    private const string InternalCrossoverPointProbabilityParameterName = "InternalCrossoverPointProbability";
    4244    private const string MaximumSymbolicExpressionTreeLengthParameterName = "MaximumSymbolicExpressionTreeLength";
    4345    private const string MaximumSymbolicExpressionTreeDepthParameterName = "MaximumSymbolicExpressionTreeDepth";
     46    private const string SymbolicDataAnalysisEvaluationPartitionParameterName = "EvaluationPartition";
     47
    4448    #region Parameter Properties
    4549    public IValueLookupParameter<PercentValue> InternalCrossoverPointProbabilityParameter {
     
    5155    public IValueLookupParameter<IntValue> MaximumSymbolicExpressionTreeDepthParameter {
    5256      get { return (IValueLookupParameter<IntValue>)Parameters[MaximumSymbolicExpressionTreeDepthParameterName]; }
     57    }
     58    public IValueLookupParameter<IntRange> SymbolicDataAnalysisEvaluationPartitionParameter {
     59      get { return (IValueLookupParameter<IntRange>)Parameters[SymbolicDataAnalysisEvaluationPartitionParameterName]; }
    5360    }
    5461    #endregion
     
    6572    #endregion
    6673    [StorableConstructor]
    67     private SubtreeCrossover(bool deserializing) : base(deserializing) { }
    68     private SubtreeCrossover(SubtreeCrossover original, Cloner cloner) : base(original, cloner) { }
     74    protected SubtreeCrossover(bool deserializing) : base(deserializing) { }
     75    protected SubtreeCrossover(SubtreeCrossover original, Cloner cloner) : base(original, cloner) { }
    6976    public SubtreeCrossover()
    7077      : base() {
     
    7279      Parameters.Add(new ValueLookupParameter<IntValue>(MaximumSymbolicExpressionTreeDepthParameterName, "The maximal depth of the symbolic expression tree (a tree with one node has depth = 0)."));
    7380      Parameters.Add(new ValueLookupParameter<PercentValue>(InternalCrossoverPointProbabilityParameterName, "The probability to select an internal crossover point (instead of a leaf node).", new PercentValue(0.9)));
     81      Parameters.Add(new ValueLookupParameter<IntRange>(SymbolicDataAnalysisEvaluationPartitionParameterName, "The start index of the dataset partition on which the symbolic data analysis solution should be evaluated."));
    7482    }
    7583
     
    8290      return Cross(random, parent0, parent1, InternalCrossoverPointProbability.Value,
    8391        MaximumSymbolicExpressionTreeLength.Value, MaximumSymbolicExpressionTreeDepth.Value);
     92    }
     93
     94    public ISymbolicExpressionTree Crossover(IRandom random, ISymbolicExpressionTree parent0, ISymbolicExpressionTree parent1) {
     95      return Cross(random, parent0, parent1);
    8496    }
    8597
Note: See TracChangeset for help on using the changeset viewer.