Changeset 7481 for branches/HeuristicLab.Crossovers/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/MultiSymbolicDataAnalysisExpressionCrossover.cs
- Timestamp:
- 02/17/12 14:25:51 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Crossovers/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/MultiSymbolicDataAnalysisExpressionCrossover.cs
r7476 r7481 21 21 22 22 using System; 23 using System.Collections.Generic;24 23 using System.Linq; 25 24 using HeuristicLab.Collections; … … 35 34 36 35 namespace 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>, 38 38 ISymbolicDataAnalysisExpressionCrossover<T>, 39 39 ISymbolicExpressionTreeSizeConstraintOperator, … … 97 97 Parameters.Add(new LookupParameter<ISymbolicExpressionTree>(ChildParameterName, "The child symbolic expression tree resulting from the crossover.")); 98 98 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); 103 105 104 var checkedItemList = new CheckedItemList<ISymbolic DataAnalysisExpressionCrossover<T>>();106 var checkedItemList = new CheckedItemList<ISymbolicExpressionTreeCrossover>(); 105 107 checkedItemList.AddRange(list.OrderBy(op => op.Name)); 106 108 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)); 109 110 } 110 111 … … 137 138 } 138 139 139 protected override void Operators_ItemsReplaced(object sender, CollectionItemsChangedEventArgs<IndexedItem<ISymbolic DataAnalysisExpressionCrossover<T>>> e) {140 protected override void Operators_ItemsReplaced(object sender, CollectionItemsChangedEventArgs<IndexedItem<ISymbolicExpressionTreeCrossover>> e) { 140 141 base.Operators_ItemsReplaced(sender, e); 141 142 ParameterizeCrossovers(); 142 143 } 143 144 144 protected override void Operators_ItemsAdded(object sender, CollectionItemsChangedEventArgs<IndexedItem<ISymbolic DataAnalysisExpressionCrossover<T>>> e) {145 protected override void Operators_ItemsAdded(object sender, CollectionItemsChangedEventArgs<IndexedItem<ISymbolicExpressionTreeCrossover>> e) { 145 146 base.Operators_ItemsAdded(sender, e); 146 147 ParameterizeCrossovers();
Note: See TracChangeset
for help on using the changeset viewer.