Changeset 8214 for branches/GP-MoveOperators/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/ReplaceBranchMoveMaker.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/ReplaceBranchMoveMaker.cs
r8207 r8214 86 86 87 87 private ISymbolicExpressionTreeNode Scale(ISymbolicExpressionTreeNode node, double alpha, double beta) { 88 var constAlpha = (ConstantTreeNode)constant.CreateTreeNode(); 89 var constBeta = (ConstantTreeNode)constant.CreateTreeNode(); 90 constAlpha.Value = alpha; 91 constBeta.Value = beta; 92 var sum = add.CreateTreeNode(); 93 var prod = mul.CreateTreeNode(); 94 prod.AddSubtree(node); prod.AddSubtree(constBeta); 95 sum.AddSubtree(prod); sum.AddSubtree(constAlpha); 96 return sum; 88 var constNode = node as ConstantTreeNode; 89 if (constNode != null) { 90 constNode.Value = constNode.Value * beta + alpha; 91 return constNode; 92 } 93 var varNode = node as VariableTreeNode; 94 if (varNode != null) { 95 varNode.Weight = varNode.Weight * beta; 96 var constAlpha = (ConstantTreeNode)constant.CreateTreeNode(); 97 constAlpha.Value = alpha; 98 var sum = add.CreateTreeNode(); 99 sum.AddSubtree(varNode); sum.AddSubtree(constAlpha); 100 return sum; 101 } 102 if (node.Symbol is Addition && node.GetSubtree(0).Symbol is Multiplication && 103 node.GetSubtree(1).Symbol is Constant && node.GetSubtree(0).GetSubtree(1).Symbol is Constant) { 104 var constAlpha = node.GetSubtree(1) as ConstantTreeNode; 105 var constBeta = node.GetSubtree(0).GetSubtree(1) as ConstantTreeNode; 106 constAlpha.Value = beta * constAlpha.Value + alpha; 107 constBeta.Value = constBeta.Value * beta; 108 return node; 109 } else { 110 var constAlpha = (ConstantTreeNode)constant.CreateTreeNode(); 111 var constBeta = (ConstantTreeNode)constant.CreateTreeNode(); 112 constAlpha.Value = alpha; 113 constBeta.Value = beta; 114 var sum = add.CreateTreeNode(); 115 var prod = mul.CreateTreeNode(); 116 prod.AddSubtree(node); 117 prod.AddSubtree(constBeta); 118 sum.AddSubtree(prod); 119 sum.AddSubtree(constAlpha); 120 return sum; 121 } 97 122 } 98 123 }
Note: See TracChangeset
for help on using the changeset viewer.