Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/17/20 11:23:37 (4 years ago)
Author:
pfleck
Message:

#3040 Stores the datatype of a tree node (e.g. variable nodes) in the tree itself for the interpreter to derive the datatypes for subtrees. This way, the interpreter (and simplifier) do not need an actual dataset to figure out datatypes for subtrees.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3040_VectorBasedGP/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Converters/VectorTreeSimplifier.cs

    r17603 r17604  
    2727using HeuristicLab.Common;
    2828using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
     29
     30using DoubleVector = MathNet.Numerics.LinearAlgebra.Vector<double>;
    2931
    3032namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
     
    6668
    6769    private readonly SymbolicDataAnalysisExpressionTreeVectorInterpreter interpreter;
    68     private readonly IDataAnalysisProblemData problemData;
    69 
    70     public VectorTreeSimplifier(SymbolicDataAnalysisExpressionTreeVectorInterpreter interpreter, IDataAnalysisProblemData problemData) {
     70
     71    public VectorTreeSimplifier(SymbolicDataAnalysisExpressionTreeVectorInterpreter interpreter) {
    7172      this.interpreter = interpreter;
    72       this.problemData = problemData;
    7373    }
    7474
     
    286286    #region type predicates
    287287    public bool IsScalarNode(ISymbolicExpressionTreeNode node) {
    288       var results = interpreter.EvaluateNode(node, problemData.Dataset, problemData.TrainingIndices);
    289       return results.All(r => r.IsScalar);
     288      return interpreter.GetNodeType(node) == typeof(double);
    290289    }
    291290    public bool IsVectorNode(ISymbolicExpressionTreeNode node) {
    292       var results = interpreter.EvaluateNode(node, problemData.Dataset, problemData.TrainingIndices);
    293       return results.All(r => r.IsVector);
     291      return interpreter.GetNodeType(node) == typeof(DoubleVector);
    294292    }
    295293    #endregion
Note: See TracChangeset for help on using the changeset viewer.