Changeset 8214 for branches/GP-MoveOperators/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/ReplaceBranchMoveEvaluator.cs
- Timestamp:
- 07/04/12 16:23:35 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GP-MoveOperators/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/ReplaceBranchMoveEvaluator.cs
r8207 r8214 20 20 #endregion 21 21 22 using System; 22 23 using System.Linq; 23 24 using HeuristicLab.Common; … … 86 87 OnlineLinearScalingParameterCalculator.Calculate(move.NewOutput, move.OriginalOutput, out alpha, out beta, out errorState); 87 88 89 // prevent scaling to a constant value 90 if (beta.IsAlmost(0.0)) beta = 10E-5; 91 88 92 move.Alpha = alpha; 89 93 move.Beta = beta; 90 94 91 // clone tree and parent 92 var cloner = new Cloner(); 93 var clonedTree = cloner.Clone(move.Tree); 94 var clonedParent = cloner.Clone(move.Parent); 95 var clonedBranch = cloner.Clone(move.NewBranch); 96 97 clonedParent.RemoveSubtree(move.SubtreeIndex); 98 clonedParent.InsertSubtree(move.SubtreeIndex, Scale(clonedBranch, alpha, beta)); 95 var oldBranch = move.Parent.GetSubtree(move.SubtreeIndex); 96 move.Parent.RemoveSubtree(move.SubtreeIndex); 97 move.Parent.InsertSubtree(move.SubtreeIndex, Scale(move.NewBranch, alpha, beta)); 99 98 100 99 var problemData = ProblemDataParameter.ActualValue; … … 103 102 var fitnessPartition = FitnessCalculationPartitionParameter.ActualValue; 104 103 var rows = Enumerable.Range(fitnessPartition.Start, fitnessPartition.End - fitnessPartition.Start); 105 var quality = evaluator.Evaluate(childContext, clonedTree, problemData, rows); 104 var quality = evaluator.Evaluate(childContext, move.Tree, problemData, rows); 105 106 // revert changes to tree 107 move.Parent.RemoveSubtree(move.SubtreeIndex); 108 move.Parent.InsertSubtree(move.SubtreeIndex, oldBranch); 106 109 107 110 MoveQualityParameter.ActualValue = new DoubleValue(quality);
Note: See TracChangeset
for help on using the changeset viewer.