Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/22/12 15:03:32 (12 years ago)
Author:
bburlacu
Message:

#1763: Bugfixes and refactoring as suggested in the comments above.

Location:
branches/HeuristicLab.TreeSimplifier/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.TreeSimplifier/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj

    r8916 r8935  
    204204    <Compile Include="Crossovers\SymbolicDataAnalysisExpressionSemanticSimilarityCrossover.cs" />
    205205    <Compile Include="Interfaces\ISymbolicDataAnalysisExpressionCrossover.cs" />
    206     <Compile Include="Interfaces\ISymbolicDataAnalysisImpactValuesCalculator.cs" />
    207206    <Compile Include="Interpreter\InterpreterState.cs" />
    208207    <Compile Include="Interpreter\OpCodes.cs" />
  • branches/HeuristicLab.TreeSimplifier/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisSolutionImpactValuesCalculator.cs

    r8916 r8935  
    2020#endregion
    2121
     22using System;
    2223using System.Collections.Generic;
    2324using HeuristicLab.Common;
     
    2526
    2627namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
    27   public abstract class SymbolicDataAnalysisSolutionImpactValuesCalculator : ISymbolicDataAnalysisSolutionImpactValuesCalculator {
    28     public abstract Dictionary<ISymbolicExpressionTreeNode, double> CalculateReplacementValues(ISymbolicExpressionTree tree, ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, IDataAnalysisProblemData problemData);
    29     public abstract Dictionary<ISymbolicExpressionTreeNode, double> CalculateImpactValues(ISymbolicExpressionTree tree, ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, IDataAnalysisProblemData problemData, double lowerEstimationLimit, double upperEstimationLimit);
     28  public abstract class SymbolicDataAnalysisSolutionImpactValuesCalculator {
     29    public abstract IEnumerable<Tuple<ISymbolicExpressionTreeNode, double>> CalculateReplacementValues(ISymbolicExpressionTree tree,
     30                                                                                                       ISymbolicDataAnalysisExpressionTreeInterpreter interpreter,
     31                                                                                                       IDataAnalysisProblemData problemData);
     32    public abstract IEnumerable<Tuple<ISymbolicExpressionTreeNode, double>> CalculateImpactValues(ISymbolicExpressionTree tree,
     33                                                                                                  ISymbolicDataAnalysisExpressionTreeInterpreter interpreter,
     34                                                                                                  IDataAnalysisProblemData problemData,
     35                                                                                                  double lowerEstimationLimit, double upperEstimationLimit);
    3036
    31     protected void SwitchNode(ISymbolicExpressionTreeNode root, ISymbolicExpressionTreeNode oldBranch, ISymbolicExpressionTreeNode newBranch) {
     37    protected static void SwitchNode(ISymbolicExpressionTreeNode root, ISymbolicExpressionTreeNode oldBranch, ISymbolicExpressionTreeNode newBranch) {
    3238      for (int i = 0; i < root.SubtreeCount; i++) {
    3339        if (root.GetSubtree(i) == oldBranch) {
     
    3945    }
    4046
    41     protected double CalculateReplacementValue(ISymbolicExpressionTreeNode node, ISymbolicExpressionTree sourceTree, ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, IDataAnalysisProblemData problemData) {
    42       var root = new ProgramRootSymbol().CreateTreeNode();
    43       var start = new StartSymbol().CreateTreeNode();
    44       root.AddSubtree(start);
    45       start.AddSubtree((ISymbolicExpressionTreeNode)node.Clone());
     47    protected static double CalculateReplacementValue(ISymbolicExpressionTreeNode node, ISymbolicExpressionTree sourceTree,
     48                                                      ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, IDataAnalysisProblemData problemData) {
     49      var rootSymbol = new ProgramRootSymbol().CreateTreeNode();
     50      var startSymbol = new StartSymbol().CreateTreeNode();
     51      rootSymbol.AddSubtree(startSymbol);
     52      startSymbol.AddSubtree((ISymbolicExpressionTreeNode)node.Clone());
    4653      var rows = problemData.TrainingIndices;
    47       var tempTree = new SymbolicExpressionTree(root);
     54      var tempTree = new SymbolicExpressionTree(rootSymbol);
    4855      return interpreter.GetSymbolicExpressionTreeValues(tempTree, problemData.Dataset, rows).Median();
    4956    }
  • branches/HeuristicLab.TreeSimplifier/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/LaggedSymbol.cs

    r5809 r8935  
    1 using HeuristicLab.Common;
     1#region License Information
     2/* HeuristicLab
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     4 *
     5 * This file is part of HeuristicLab.
     6 *
     7 * HeuristicLab is free software: you can redistribute it and/or modify
     8 * it under the terms of the GNU General Public License as published by
     9 * the Free Software Foundation, either version 3 of the License, or
     10 * (at your option) any later version.
     11 *
     12 * HeuristicLab is distributed in the hope that it will be useful,
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 * GNU General Public License for more details.
     16 *
     17 * You should have received a copy of the GNU General Public License
     18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
     19 */
     20#endregion
     21
     22using HeuristicLab.Common;
    223using HeuristicLab.Core;
    324using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
Note: See TracChangeset for help on using the changeset viewer.