Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/13/19 16:04:10 (5 years ago)
Author:
gkronber
Message:

#2925: scaling of residuals to target variance and update constant values directly in the tree

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2925_AutoDiffForDynamicalModels/HeuristicLab.Problems.DynamicalSystemsModelling/3.3/OdeParameterIdentification.cs

    r16602 r16603  
    189189      problem.Analyze(new[] { ind }, new[] { quality }, Results, rand);
    190190    }
    191 
    192     // private ISymbolicExpressionTree Convert(ISymbolicExpressionTree tree) {
    193     //   return new SymbolicExpressionTree(Convert(tree.Root));
    194     // }
    195 
    196 
    197     // for translation from symbolic expressions to simple symbols
    198     // private static Dictionary<Type, string> sym2str = new Dictionary<Type, string>() {
    199     //   {typeof(Addition), "+" },
    200     //   {typeof(Subtraction), "-" },
    201     //   {typeof(Multiplication), "*" },
    202     //   {typeof(Sine), "sin" },
    203     //   {typeof(Cosine), "cos" },
    204     //   {typeof(Square), "sqr" },
    205     // };
    206 
    207     // private ISymbolicExpressionTreeNode Convert(ISymbolicExpressionTreeNode node) {
    208     //   if (sym2str.ContainsKey(node.Symbol.GetType())) {
    209     //     var children = node.Subtrees.Select(st => Convert(st)).ToArray();
    210     //     return Make(sym2str[node.Symbol.GetType()], children);
    211     //   } else if (node.Symbol is ProgramRootSymbol) {
    212     //     var child = Convert(node.GetSubtree(0));
    213     //     node.RemoveSubtree(0);
    214     //     node.AddSubtree(child);
    215     //     return node;
    216     //   } else if (node.Symbol is StartSymbol) {
    217     //     var child = Convert(node.GetSubtree(0));
    218     //     node.RemoveSubtree(0);
    219     //     node.AddSubtree(child);
    220     //     return node;
    221     //   } else if (node.Symbol is Division) {
    222     //     var children = node.Subtrees.Select(st => Convert(st)).ToArray();
    223     //     if (children.Length == 1) {
    224     //       return Make("%", new[] { new SimpleSymbol("θ", 0).CreateTreeNode(), children[0] });
    225     //     } else if (children.Length != 2) throw new ArgumentException("Division is not supported for multiple arguments");
    226     //     else return Make("%", children);
    227     //   } else if (node.Symbol is Constant) {
    228     //     return new SimpleSymbol("θ", 0).CreateTreeNode();
    229     //   } else if (node.Symbol is DataAnalysis.Symbolic.Variable) {
    230     //     var varNode = node as VariableTreeNode;
    231     //     if (!varNode.Weight.IsAlmost(1.0)) throw new ArgumentException("Variable weights are not supported");
    232     //     return new SimpleSymbol(varNode.VariableName, 0).CreateTreeNode();
    233     //   } else throw new ArgumentException("Unsupported symbol: " + node.Symbol.Name);
    234     // }
    235 
    236     // private ISymbolicExpressionTreeNode Make(string op, ISymbolicExpressionTreeNode[] children) {
    237     //   if (children.Length == 1) {
    238     //     var s = new SimpleSymbol(op, 1).CreateTreeNode();
    239     //     s.AddSubtree(children.First());
    240     //     return s;
    241     //   } else {
    242     //     var s = new SimpleSymbol(op, 2).CreateTreeNode();
    243     //     var c0 = children[0];
    244     //     var c1 = children[1];
    245     //     s.AddSubtree(c0);
    246     //     s.AddSubtree(c1);
    247     //     for (int i = 2; i < children.Length; i++) {
    248     //       var sn = new SimpleSymbol(op, 2).CreateTreeNode();
    249     //       sn.AddSubtree(s);
    250     //       sn.AddSubtree(children[i]);
    251     //       s = sn;
    252     //     }
    253     //     return s;
    254     //   }
    255     // }
    256191    #endregion
    257192  }
Note: See TracChangeset for help on using the changeset viewer.