Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Tracking/SymbolicDataAnalysExpressionBeforeCrossoverOperator.cs @ 10347

Last change on this file since 10347 was 10347, checked in by bburlacu, 11 years ago

#1772: Small changes to the GenealogyGraph. Added generic Fragment class and interface. Added the SymbolicDataAnalysisPopulationDiversityAnalyzer. Added specialized tracking operators for symbolic data analysis. Merged trunk changes.

File size: 1023 bytes
Line 
1using System.Linq;
2using HeuristicLab.Core;
3using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
4using HeuristicLab.EvolutionTracking;
5
6namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
7  public class SymbolicDataAnalysExpressionBeforeCrossoverOperator : BeforeCrossoverOperator<ISymbolicExpressionTree> {
8    public override IOperation Apply() {
9      var result = base.Apply();
10      var parents = ParentsParameter.ActualValue.ToList();
11      var childVertex = GenealogyGraph[parents[0]].Last(); // use the parent since it is actually the child before crossover (and the ChildParameter doesn't have a value yet)
12      //      var parentVertices = ExecutionContext.Scope.SubScopes.Select(s => CurrentGeneration[int.Parse(s.Name)]).ToList();
13
14      for (int i = 0; i < parents.Count; ++i) {
15        var nodes = parents[i].IterateNodesBreadth().ToList();
16        var arc = (IGenealogyGraphArc)childVertex.InArcs[i];
17        arc.Data = nodes;
18      }
19
20      return result;
21    }
22  }
23}
Note: See TracBrowser for help on using the repository browser.