Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/17/12 14:25:51 (12 years ago)
Author:
mkommend
Message:

#1682: Corrected gp-crossover code.

  • Changed ISymbolicExpressionTreeCrossover
  • Corrected SubtreeCrossover
  • Updated MultiSymbolicDataAnalysisCrossover
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Crossovers/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/MultiSymbolicDataAnalysisExpressionCrossover.cs

    r7476 r7481  
    2121
    2222using System;
    23 using System.Collections.Generic;
    2423using System.Linq;
    2524using HeuristicLab.Collections;
     
    3534
    3635namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Crossovers {
    37   public class MultiSymbolicDataAnalysisExpressionCrossover<T> : StochasticMultiBranch<ISymbolicDataAnalysisExpressionCrossover<T>>,
     36  [Item("MultiSymbolicDataAnalysisExpressionCrossover", "Randomly selects and applies one of its crossovers every time it is called.")]
     37  public class MultiSymbolicDataAnalysisExpressionCrossover<T> : StochasticMultiBranch<ISymbolicExpressionTreeCrossover>,
    3838    ISymbolicDataAnalysisExpressionCrossover<T>,
    3939    ISymbolicExpressionTreeSizeConstraintOperator,
     
    9797      Parameters.Add(new LookupParameter<ISymbolicExpressionTree>(ChildParameterName, "The child symbolic expression tree resulting from the crossover."));
    9898
    99       var list = (from type in ApplicationManager.Manager.GetTypes(typeof(ISymbolicDataAnalysisExpressionCrossover<T>))
    100                   where this.GetType().Assembly == type.Assembly
    101                   where !typeof(IMultiOperator<ISymbolicDataAnalysisExpressionCrossover<T>>).IsAssignableFrom(type)
    102                   select (ISymbolicDataAnalysisExpressionCrossover<T>)Activator.CreateInstance(type)).ToList();
     99      var list = ApplicationManager.Manager.GetInstances<ISymbolicExpressionTreeCrossover>().ToList();
     100      var dataAnalysisCrossovers = from type in ApplicationManager.Manager.GetTypes(typeof(ISymbolicDataAnalysisExpressionCrossover<T>))
     101                                   where this.GetType().Assembly == type.Assembly
     102                                   where !typeof(IMultiOperator<ISymbolicExpressionTreeCrossover>).IsAssignableFrom(type)
     103                                   select (ISymbolicDataAnalysisExpressionCrossover<T>)Activator.CreateInstance(type);
     104      list.AddRange(dataAnalysisCrossovers);
    103105
    104       var checkedItemList = new CheckedItemList<ISymbolicDataAnalysisExpressionCrossover<T>>();
     106      var checkedItemList = new CheckedItemList<ISymbolicExpressionTreeCrossover>();
    105107      checkedItemList.AddRange(list.OrderBy(op => op.Name));
    106108      Operators = checkedItemList.AsReadOnly();
    107       Operators_ItemsAdded(this, new CollectionItemsChangedEventArgs<IndexedItem<ISymbolicDataAnalysisExpressionCrossover<T>>>(Operators.CheckedItems));
    108       Name = "MultiCrossover";
     109      Operators_ItemsAdded(this, new CollectionItemsChangedEventArgs<IndexedItem<ISymbolicExpressionTreeCrossover>>(Operators.CheckedItems));
    109110    }
    110111
     
    137138    }
    138139
    139     protected override void Operators_ItemsReplaced(object sender, CollectionItemsChangedEventArgs<IndexedItem<ISymbolicDataAnalysisExpressionCrossover<T>>> e) {
     140    protected override void Operators_ItemsReplaced(object sender, CollectionItemsChangedEventArgs<IndexedItem<ISymbolicExpressionTreeCrossover>> e) {
    140141      base.Operators_ItemsReplaced(sender, e);
    141142      ParameterizeCrossovers();
    142143    }
    143144
    144     protected override void Operators_ItemsAdded(object sender, CollectionItemsChangedEventArgs<IndexedItem<ISymbolicDataAnalysisExpressionCrossover<T>>> e) {
     145    protected override void Operators_ItemsAdded(object sender, CollectionItemsChangedEventArgs<IndexedItem<ISymbolicExpressionTreeCrossover>> e) {
    145146      base.Operators_ItemsAdded(sender, e);
    146147      ParameterizeCrossovers();
Note: See TracChangeset for help on using the changeset viewer.