Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/17/12 15:18:03 (12 years ago)
Author:
bburlacu
Message:

#1682: New branch format: removed unnecessary files, merged remaining.

Location:
branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4
Files:
4 deleted
75 edited
6 copied

Legend:

Unmodified
Added
Removed
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisAlleleFrequencyAnalyzer.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    8484      if (d == 0) return "";
    8585      StringBuilder builder = new StringBuilder();
    86       builder.Append("(" + tree.ToString());
     86      var varTreeNode = tree as VariableTreeNode;
     87      var constTreeNode = tree as ConstantTreeNode;
     88      if (varTreeNode != null) {
     89        builder.Append("(var " + varTreeNode.VariableName);
     90      } else if (constTreeNode != null) {
     91        builder.Append("(const");
     92      } else {
     93        builder.Append("(" + tree.ToString());
     94      }
    8795      for (int i = 0; i < tree.SubtreeCount; i++) {
    8896        builder.Append(" " + GetTextualRepresentationFromSubtreeOfDepth(tree.GetSubtree(i), d - 1));
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisAnalyzer.cs

    r5882 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2020#endregion
    2121
    22 using System.Collections.Generic;
    23 using System.Linq;
    2422using HeuristicLab.Common;
    2523using HeuristicLab.Core;
    26 using HeuristicLab.Data;
    2724using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
    2825using HeuristicLab.Operators;
     26using HeuristicLab.Optimization;
    2927using HeuristicLab.Parameters;
    3028using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    31 using HeuristicLab.Optimization;
    3229
    3330namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
     
    4946    #endregion
    5047    #region properties
     48    public virtual bool EnabledByDefault {
     49      get { return true; }
     50    }
    5151    public ItemArray<ISymbolicExpressionTree> SymbolicExpressionTree {
    5252      get { return SymbolicExpressionTreeParameter.ActualValue; }
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisMultiObjectiveAnalyzer.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisMultiObjectiveTrainingBestSolutionAnalyzer.cs

    r5882 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisMultiObjectiveValidationAnalyzer.cs

    r6059 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisMultiObjectiveValidationBestSolutionAnalyzer.cs

    r6728 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisSingleObjectiveAnalyzer.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisSingleObjectiveTrainingBestSolutionAnalyzer.cs

    r5882 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisSingleObjectiveValidationAnalyzer.cs

    r5882 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2020#endregion
    2121
     22using System;
     23using System.Collections.Generic;
    2224using System.Linq;
    2325using HeuristicLab.Common;
     
    2628using HeuristicLab.Parameters;
    2729using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    28 using System.Collections.Generic;
    29 using System;
    3030using HeuristicLab.Random;
    3131
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisSingleObjectiveValidationBestSolutionAnalyzer.cs

    r6728 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Analyzers/SymbolicDataAnalysisVariableFrequencyAnalyzer.cs

    r6981 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Creators/MultiSymbolicDataAnalysisExpressionCreator.cs

    r7077 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Creators/SymbolicDataAnalysisExpressionFullTreeCreator.cs

    r7077 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Creators/SymbolicDataAnalysisExpressionGrowTreeCreator.cs

    r7077 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Creators/SymbolicDataAnalysisExpressionRampedHalfAndHalfTreeCreator.cs

    r7077 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Creators/SymbolicDataAnalysisExpressionTreeCreator.cs

    r7077 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionDepthConstrainedCrossover.cs

    r7303 r7344  
    3535  public sealed class SymbolicDataAnalysisExpressionDepthConstrainedCrossover<T> :
    3636    SymbolicDataAnalysisExpressionCrossover<T> where T : class, IDataAnalysisProblemData {
    37     private enum Ranges { HighLevel, Standard, Lowlevel };
     37    private enum Ranges { HighLevel, Standard, LowLevel };
    3838    private const string DepthRangeParameterName = "DepthRange";
    3939    #region Parameter properties
     
    5959      DepthRangeParameter.ValidValues.Add(new StringValue(Enum.GetName(typeof(Ranges), Ranges.HighLevel)));
    6060      DepthRangeParameter.ValidValues.Add(new StringValue(Enum.GetName(typeof(Ranges), Ranges.Standard)));
    61       DepthRangeParameter.ValidValues.Add(new StringValue(Enum.GetName(typeof(Ranges), Ranges.Lowlevel)));
     61      DepthRangeParameter.ValidValues.Add(new StringValue(Enum.GetName(typeof(Ranges), Ranges.LowLevel)));
    6262      Name = "DepthConstrainedCrossover";
    6363    }
     
    8787    /// <returns></returns>
    8888    public static ISymbolicExpressionTree Cross(IRandom random, ISymbolicExpressionTree parent0, ISymbolicExpressionTree parent1, int maxDepth, int maxLength, string mode) {
    89       int depth = parent0.Root.GetDepth();
    90       var depthRange = new DoubleRange();
     89      int depth = parent0.Root.GetDepth() - 1; // subtract 1 because the tree levels are counted from 0
     90      var depthRange = new IntRange();
    9191      const int depthOffset = 2; // skip the first 2 levels (root + startNode)
    9292      switch ((int)Enum.Parse(typeof(Ranges), mode)) {
    9393        case (int)Ranges.HighLevel:
    9494          depthRange.Start = depthOffset; // skip the first 2 levels (root + startNode)
    95           depthRange.End = depthRange.Start + Math.Round(depth * 0.25);
     95          depthRange.End = depthRange.Start + (int)Math.Round(depth * 0.25);
    9696          break;
    9797        case (int)Ranges.Standard:
    98           depthRange.Start = depthOffset + Math.Round(depth * 0.25);
    99           depthRange.End = depthRange.Start + Math.Round(depth * 0.5);
     98          depthRange.Start = depthOffset + (int)Math.Round(depth * 0.25);
     99          depthRange.End = depthRange.Start + (int)Math.Round(depth * 0.5);
    100100          break;
    101         case (int)Ranges.Lowlevel:
    102           depthRange.Start = depthOffset + Math.Round(depth * 0.75);
     101        case (int)Ranges.LowLevel:
     102          depthRange.Start = depthOffset + (int)Math.Round(depth * 0.75);
    103103          depthRange.End = Math.Max(depthRange.Start, depth);
    104104          break;
    105105      }
    106106
    107       var crossoverPoints0 = new List<CutPoint>();
    108       parent0.Root.ForEachNodePostfix((n) => {
    109         if (n.Subtrees.Any() && n != parent0.Root)
    110           crossoverPoints0.AddRange(from s in n.Subtrees
    111                                     where parent0.Root.GetBranchLevel(s) >= depthRange.Start && parent0.Root.GetBranchLevel(s) <= depthRange.End
    112                                     select new CutPoint(n, s));
    113       });
     107      // make sure that the depth range does not exceeded the actual depth of parent0
     108      if (depthRange.Start > depth)
     109        depthRange.Start = depth;
     110      if (depthRange.End < depthRange.Start)
     111        depthRange.End = depthRange.Start;
     112
     113      var crossoverPoints0 = (from node in GetNodesAtDepth(parent0.Root, depthRange) select new CutPoint(node.Parent, node)).ToList();
    114114
    115115      if (crossoverPoints0.Count == 0)
    116116        throw new Exception("No crossover points available in the first parent");
    117117
    118       CutPoint crossoverPoint0 = crossoverPoints0.SelectRandom(random);
     118      var crossoverPoint0 = crossoverPoints0.SelectRandom(random);
     119
    119120      int level = parent0.Root.GetBranchLevel(crossoverPoint0.Child);
    120121      int length = parent0.Root.GetLength() - crossoverPoint0.Child.GetLength();
    121122
    122       var allowedBranches = new List<ISymbolicExpressionTreeNode>();
    123       parent1.Root.ForEachNodePostfix((n) => {
    124         if (n.Subtrees.Any() && n != parent1.Root) {
    125           allowedBranches.AddRange(from s in n.Subtrees
    126                                    let branchLevel = parent1.Root.GetBranchLevel(s)
    127                                    where branchLevel >= depthRange.Start && branchLevel <= depthRange.End && s.GetDepth() + level <= maxDepth && s.GetLength() + length <= maxLength
    128                                    select s);
     123      var allowedBranches = (from s in GetNodesAtDepth(parent1.Root, depthRange)
     124                             where
     125                               crossoverPoint0.IsMatchingPointType(s) &&
     126                               s.GetDepth() + level <= maxDepth &&
     127                               s.GetLength() + length <= maxLength
     128                             select s).ToList();
     129      if (allowedBranches.Count == 0) return parent0;
     130      var selectedBranch = allowedBranches.SelectRandom(random);
     131      swap(crossoverPoint0, selectedBranch);
     132      return parent0;
     133    }
     134
     135    private static IEnumerable<ISymbolicExpressionTreeNode> GetNodesAtDepth(ISymbolicExpressionTreeNode root, IntRange range) {
     136      var list = new List<Tuple<ISymbolicExpressionTreeNode, int>> { new Tuple<ISymbolicExpressionTreeNode, int>(root, 0) };
     137      int offset = 0;
     138      int level = 0;
     139      while (level < range.End) {
     140        ++level;
     141        int count = list.Count;
     142        for (int i = offset; i != count; ++i) {
     143          if (list[i].Item1.Subtrees.Any())
     144            list.AddRange(from s in list[i].Item1.Subtrees select new Tuple<ISymbolicExpressionTreeNode, int>(s, level));
    129145        }
    130       });
    131 
    132       if (allowedBranches.Count == 0)
    133         return parent0;
    134 
    135       var selectedBranch = allowedBranches.SelectRandom(random);
    136 
    137       swap(crossoverPoint0, selectedBranch);
    138 
    139       return parent0;
     146        offset = count;
     147      }
     148      // taking advantage of the fact that the list is already sorted by level
     149      for (int i = list.Count - 1; i >= 0; --i) {
     150        if (list[i].Item2 >= range.Start)
     151          yield return list[i].Item1;
     152        else break;
     153      }
    140154    }
    141155
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Crossovers/SymbolicDataAnalysisExpressionProbabilisticFunctionalCrossover.cs

    r7303 r7344  
    6666      parent0.Root.ForEachNodePostfix((n) => {
    6767        if (n.Subtrees.Any() && n != parent0.Root)
    68           foreach (var child in n.Subtrees)
    69             crossoverPoints0.Add(new CutPoint(n, child));
     68          crossoverPoints0.AddRange(from s in n.Subtrees
     69                                    select new CutPoint(n, s));
    7070      });
    7171      var crossoverPoint0 = crossoverPoints0.SelectRandom(random);
     
    7676      parent1.Root.ForEachNodePostfix((n) => {
    7777        if (n.Subtrees.Any() && n != parent1.Root)
    78           allowedBranches.AddRange(n.Subtrees.Where(s => crossoverPoint0.IsMatchingPointType(s) && s.GetDepth() + level <= maxDepth && s.GetLength() + length <= maxLength));
     78          allowedBranches.AddRange(from s in n.Subtrees
     79                                   where crossoverPoint0.IsMatchingPointType(s) && s.GetDepth() + level <= maxDepth && s.GetLength() + length <= maxLength
     80                                   select s);
    7981      });
    8082
     
    8890      var startSymbol = new StartSymbol();
    8991      var tree0 = CreateTreeFromNode(random, crossoverPoint0.Child, rootSymbol, startSymbol); // this will change crossoverPoint0.Child.Parent
    90       List<double> estimatedValues0 = interpreter.GetSymbolicExpressionTreeValues(tree0, dataset, rows).ToList();
    91       double min0 = estimatedValues0.Min();
    92       double max0 = estimatedValues0.Max();
     92      double min0 = 0.0, max0 = 0.0;
     93      foreach (double v in interpreter.GetSymbolicExpressionTreeValues(tree0, dataset, rows)) {
     94        if (min0 > v) min0 = v;
     95        if (max0 < v) max0 = v;
     96      }
    9397      crossoverPoint0.Child.Parent = crossoverPoint0.Parent; // restore correct parent
    9498
     
    97101        var parent = node.Parent;
    98102        var tree1 = CreateTreeFromNode(random, node, rootSymbol, startSymbol);
    99         List<double> estimatedValues1 = interpreter.GetSymbolicExpressionTreeValues(tree1, dataset, rows).ToList();
    100         double min1 = estimatedValues1.Min();
    101         double max1 = estimatedValues1.Max();
     103        double min1 = 0.0, max1 = 0.0;
     104        foreach (double v in interpreter.GetSymbolicExpressionTreeValues(tree1, dataset, rows)) {
     105          if (min1 > v) min1 = v;
     106          if (max1 < v) max1 = v;
     107        }
    102108        double behavioralDistance = (Math.Abs(min0 - min1) + Math.Abs(max0 - max1)) / 2; // this can be NaN of Infinity because some trees are crazy like exp(exp(exp(...))), we correct that below
    103109        weights.Add(behavioralDistance);
     
    123129      ISymbolicExpressionTreeNode selectedBranch;
    124130      double sum = weights.Sum();
    125       if (sum == 0.0)
    126         selectedBranch = allowedBranches[0]; // just return the first, since we don't care (all weights are zero)
     131
     132      if (sum.IsAlmost(0.0) || weights.Count == 1) // if there is only one allowed branch, or if all weights are zero
     133        selectedBranch = allowedBranches[0];
    127134      else {
    128         // transform similarity distances into probabilities by normalizing and inverting the values
     135        for (int i = 0; i != weights.Count; ++i) // normalize and invert values
     136          weights[i] = 1 - weights[i] / sum;
     137
     138        sum = weights.Sum(); // take new sum
     139
     140        // compute the probabilities (selection weights)
    129141        for (int i = 0; i != weights.Count; ++i)
    130           weights[i] = (1 - weights[i] / sum);
     142          weights[i] /= sum;
    131143
    132         //selectedBranch = allowedBranches.SelectRandom(weights, random);
    133         selectedBranch = SelectRandomBranch(random, allowedBranches, weights);
     144        selectedBranch = allowedBranches.SelectRandom(weights, random);
    134145      }
    135146      swap(crossoverPoint0, selectedBranch);
     
    152163      }
    153164    }
    154 
    155     private static ISymbolicExpressionTreeNode SelectRandomBranch(IRandom random, IList<ISymbolicExpressionTreeNode> nodes, IList<double> weights) {
    156       double r = weights.Sum() * random.NextDouble();
    157       for (int i = 0; i != nodes.Count; ++i) {
    158         if (r < weights[i])
    159           return nodes[i];
    160         r -= weights[i];
    161       }
    162       return nodes.Last();
    163     }
    164165  }
    165166}
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Evaluators/SymbolicDataAnalysisEvaluator.cs

    r5914 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Evaluators/SymbolicDataAnalysisMultiObjectiveEvaluator.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Evaluators/SymbolicDataAnalysisSingleObjectiveEvaluator.cs

    r5851 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Formatters/SymbolicDataAnalysisExpressionLatexFormatter.cs

    r6975 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    5858        constants.Clear();
    5959        strBuilder.AppendLine("% needs \\usepackage{amsmath}");
    60         strBuilder.AppendLine("\\begin{align}");
     60        strBuilder.AppendLine("\\begin{align*}");
     61        strBuilder.AppendLine("\\nonumber");
    6162        strBuilder.AppendLine(FormatRecursively(symbolicExpressionTree.Root));
    62         strBuilder.AppendLine("\\end{align}");
     63        strBuilder.AppendLine("\\end{align*}");
    6364        return strBuilder.ToString();
    6465      }
     
    7677        strBuilder.Append(FormatRecursively(node.GetSubtree(0)));
    7778      }
     79      int i = 1;
    7880      foreach (SymbolicExpressionTreeNode subTree in node.Subtrees.Skip(1)) {
    79         FormatSep(node, strBuilder);
     81        FormatSep(node, strBuilder, i);
    8082        // format the whole subtree
    8183        strBuilder.Append(FormatRecursively(subTree));
     84        i++;
    8285      }
    8386
     
    8992    private void FormatBegin(ISymbolicExpressionTreeNode node, StringBuilder strBuilder) {
    9093      if (node.Symbol is Addition) {
    91         strBuilder.Append(@" \left( ");
     94        strBuilder.Append(@" ( ");
    9295      } else if (node.Symbol is Subtraction) {
    9396        if (node.SubtreeCount == 1) {
    94           strBuilder.Append(@"- \left(");
     97          strBuilder.Append(@"- ( ");
    9598        } else {
    96           strBuilder.Append(@" \left( ");
     99          strBuilder.Append(@" ( ");
    97100        }
    98101      } else if (node.Symbol is Multiplication) {
     
    108111          strBuilder.Append(@" \cfrac{1}{" + node.SubtreeCount + @"}");
    109112        }
    110         strBuilder.Append(@" \left(");
     113        strBuilder.Append(@" ( ");
    111114      } else if (node.Symbol is Logarithm) {
    112         strBuilder.Append(@"\log \left(");
     115        strBuilder.Append(@"\log ( ");
    113116      } else if (node.Symbol is Exponential) {
    114         strBuilder.Append(@"\exp \left(");
     117        strBuilder.Append(@"\exp ( ");
    115118      } else if (node.Symbol is Sine) {
    116         strBuilder.Append(@"\sin \left(");
     119        strBuilder.Append(@"\sin ( ");
    117120      } else if (node.Symbol is Cosine) {
    118         strBuilder.Append(@"\cos \left(");
     121        strBuilder.Append(@"\cos ( ");
    119122      } else if (node.Symbol is Tangent) {
    120         strBuilder.Append(@"\tan \left(");
     123        strBuilder.Append(@"\tan ( ");
    121124      } else if (node.Symbol is GreaterThan) {
    122         strBuilder.Append(@" \left( ");
     125        strBuilder.Append(@"  ( ");
    123126      } else if (node.Symbol is LessThan) {
    124         strBuilder.Append(@" \left( ");
     127        strBuilder.Append(@"  ( ");
    125128      } else if (node.Symbol is And) {
    126         strBuilder.Append(@" \left( \left( ");
     129        strBuilder.Append(@"   ( ");
    127130      } else if (node.Symbol is Or) {
    128         strBuilder.Append(@" \left( \left( ");
     131        strBuilder.Append(@"   ( ");
    129132      } else if (node.Symbol is Not) {
    130         strBuilder.Append(@" \neg \left( ");
     133        strBuilder.Append(@" \neg ( ");
    131134      } else if (node.Symbol is IfThenElse) {
    132         strBuilder.Append(@"\left( \operatorname{if} \left( 0 < ");
     135        strBuilder.Append(@" \operatorname{if}  ( 0 < ");
    133136      } else if (node.Symbol is Constant) {
    134137        strBuilder.Append("c_{" + constants.Count + "} ");
     
    137140      } else if (node.Symbol is LaggedVariable) {
    138141        var laggedVarNode = node as LaggedVariableTreeNode;
    139         strBuilder.Append("c_{" + constants.Count + "} " + EscapeLatexString(laggedVarNode.VariableName));
     142        if (!laggedVarNode.Weight.IsAlmost(1.0)) {
     143          strBuilder.Append("c_{" + constants.Count + "} \\cdot ");
     144          constants.Add(laggedVarNode.Weight);
     145        }
     146        strBuilder.Append(EscapeLatexString(laggedVarNode.VariableName));
    140147        strBuilder.Append(LagToString(currentLag + laggedVarNode.Lag));
    141         constants.Add(laggedVarNode.Weight);
    142       } else if (node.Symbol is HeuristicLab.Problems.DataAnalysis.Symbolic.Variable) {
     148
     149      } else if (node.Symbol is Variable) {
    143150        var varNode = node as VariableTreeNode;
    144         strBuilder.Append("c_{" + constants.Count + "} " + EscapeLatexString(varNode.VariableName));
     151        if (!varNode.Weight.IsAlmost((1.0))) {
     152          strBuilder.Append("c_{" + constants.Count + "} \\cdot ");
     153          constants.Add(varNode.Weight);
     154        }
     155        strBuilder.Append(EscapeLatexString(varNode.VariableName));
    145156        strBuilder.Append(LagToString(currentLag));
    146         constants.Add(varNode.Weight);
    147157      } else if (node.Symbol is ProgramRootSymbol) {
    148158      } else if (node.Symbol is Defun) {
     
    151161      } else if (node.Symbol is InvokeFunction) {
    152162        var invokeNode = node as InvokeFunctionTreeNode;
    153         strBuilder.Append(invokeNode.Symbol.FunctionName + @" \left( ");
     163        strBuilder.Append(invokeNode.Symbol.FunctionName + @" ( ");
    154164      } else if (node.Symbol is StartSymbol) {
    155165        strBuilder.Append("Result & = ");
     
    158168        strBuilder.Append(" ARG+" + argSym.ArgumentIndex + " ");
    159169      } else if (node.Symbol is Derivative) {
    160         strBuilder.Append(@" \cfrac{d \left(");
     170        strBuilder.Append(@" \cfrac{d ( ");
    161171      } else if (node.Symbol is TimeLag) {
    162172        var laggedNode = node as ILaggedTreeNode;
    163173        currentLag += laggedNode.Lag;
    164174      } else if (node.Symbol is Power) {
    165         strBuilder.Append(@"\left(");
     175        strBuilder.Append(@" ( ");
    166176      } else if (node.Symbol is Root) {
    167         strBuilder.Append(@"\left(");
     177        strBuilder.Append(@" ( ");
    168178      } else if (node.Symbol is Integral) {
    169179        // actually a new variable for t is needed in all subtrees (TODO)
    170180        var laggedTreeNode = node as ILaggedTreeNode;
    171         strBuilder.Append(@"\sum_{t=" + (laggedTreeNode.Lag + currentLag) + @"}^0 \left(");
     181        strBuilder.Append(@"\sum_{t=" + (laggedTreeNode.Lag + currentLag) + @"}^0 ( ");
    172182      } else if (node.Symbol is VariableCondition) {
    173183        var conditionTreeNode = node as VariableConditionTreeNode;
    174         string p = @"1 / \left( 1 + \exp \left( - c_{" + constants.Count + "} ";
     184        string p = @"1 /  1 + \exp - c_{" + constants.Count + "} ";
    175185        constants.Add(conditionTreeNode.Slope);
    176         p += @" \cdot \left(" + EscapeLatexString(conditionTreeNode.VariableName) + LagToString(currentLag) + " - c_{" + constants.Count + @"} \right) \right) \right)";
     186        p += @" \cdot " + EscapeLatexString(conditionTreeNode.VariableName) + LagToString(currentLag) + " - c_{" + constants.Count + @"}   ";
    177187        constants.Add(conditionTreeNode.Threshold);
    178         strBuilder.Append(@"\left( " + p + @"\cdot ");
     188        strBuilder.Append(@" ( " + p + @"\cdot ");
    179189      } else {
    180190        throw new NotImplementedException("Export of " + node.Symbol + " is not implemented.");
     
    182192    }
    183193
    184     private void FormatSep(ISymbolicExpressionTreeNode node, StringBuilder strBuilder) {
     194    private void FormatSep(ISymbolicExpressionTreeNode node, StringBuilder strBuilder, int step) {
    185195      if (node.Symbol is Addition) {
    186196        strBuilder.Append(" + ");
     
    190200        strBuilder.Append(@" \cdot ");
    191201      } else if (node.Symbol is Division) {
    192         strBuilder.Append(@" }{ \cfrac{ ");
     202        if (step + 1 == node.SubtreeCount)
     203          strBuilder.Append(@"}{");
     204        else
     205          strBuilder.Append(@" }{ \cfrac{ ");
    193206      } else if (node.Symbol is Average) {
    194207        strBuilder.Append(@" + ");
     
    208221        strBuilder.Append(@" < ");
    209222      } else if (node.Symbol is And) {
    210         strBuilder.Append(@" > 0 \right) \land \left(");
     223        strBuilder.Append(@" > 0  ) \land (");
    211224      } else if (node.Symbol is Or) {
    212         strBuilder.Append(@" > 0 \right) \lor \left(");
     225        strBuilder.Append(@" > 0  ) \lor (");
    213226      } else if (node.Symbol is Not) {
    214227        throw new InvalidOperationException();
    215228      } else if (node.Symbol is IfThenElse) {
    216         strBuilder.Append(@" \right) , \left(");
     229        strBuilder.Append(@" ) , (");
    217230      } else if (node.Symbol is ProgramRootSymbol) {
    218231        strBuilder.Append(@"\\" + Environment.NewLine);
     
    223236        strBuilder.Append(@"\\" + Environment.NewLine + " & ");
    224237      } else if (node.Symbol is Power) {
    225         strBuilder.Append(@"\right) ^ { \operatorname{round} \left(");
     238        strBuilder.Append(@") ^ { \operatorname{round} (");
    226239      } else if (node.Symbol is Root) {
    227         strBuilder.Append(@"\right) ^ { \left( \cfrac{1}{ \operatorname{round} \left(");
     240        strBuilder.Append(@") ^ {  \cfrac{1}{ \operatorname{round} (");
    228241      } else if (node.Symbol is VariableCondition) {
    229242        var conditionTreeNode = node as VariableConditionTreeNode;
    230         string p = @"1 / \left( 1 + \exp \left( - c_{" + constants.Count + "} ";
     243        string p = @"1 / ( 1 + \exp ( - c_{" + constants.Count + "} ";
    231244        constants.Add(conditionTreeNode.Slope);
    232         p += @" \cdot \left(" + EscapeLatexString(conditionTreeNode.VariableName) + LagToString(currentLag) + " - c_{" + constants.Count + @"} \right) \right) \right)";
     245        p += @" \cdot " + EscapeLatexString(conditionTreeNode.VariableName) + LagToString(currentLag) + " - c_{" + constants.Count + @"} ) ) )   ";
    233246        constants.Add(conditionTreeNode.Threshold);
    234         strBuilder.Append(@" + \left( 1 - " + p + @" \right) \cdot ");
     247        strBuilder.Append(@" +  ( 1 - " + p + @" ) \cdot ");
    235248      } else {
    236249        throw new NotImplementedException("Export of " + node.Symbol + " is not implemented.");
     
    240253    private void FormatEnd(ISymbolicExpressionTreeNode node, StringBuilder strBuilder) {
    241254      if (node.Symbol is Addition) {
    242         strBuilder.Append(@" \right) ");
     255        strBuilder.Append(@" ) ");
    243256      } else if (node.Symbol is Subtraction) {
    244         strBuilder.Append(@" \right) ");
     257        strBuilder.Append(@" ) ");
    245258      } else if (node.Symbol is Multiplication) {
    246259      } else if (node.Symbol is Division) {
    247         strBuilder.Append("} ");
    248         if (node.SubtreeCount > 1)
    249           strBuilder.Append("{1} ");
    250         for (int i = 1; i < node.SubtreeCount; i++) {
     260        strBuilder.Append(" } ");
     261        for (int i = 2; i < node.SubtreeCount; i++)
    251262          strBuilder.Append(" } ");
    252         }
    253263      } else if (node.Symbol is Average) {
    254         strBuilder.Append(@" \right)");
     264        strBuilder.Append(@" ) ");
    255265      } else if (node.Symbol is Logarithm) {
    256         strBuilder.Append(@" \right) ");
     266        strBuilder.Append(@" ) ");
    257267      } else if (node.Symbol is Exponential) {
    258         strBuilder.Append(@" \right) ");
     268        strBuilder.Append(@" ) ");
    259269      } else if (node.Symbol is Sine) {
    260         strBuilder.Append(@" \right) ");
     270        strBuilder.Append(@" ) ");
    261271      } else if (node.Symbol is Cosine) {
    262         strBuilder.Append(@" \right) ");
     272        strBuilder.Append(@" ) ");
    263273      } else if (node.Symbol is Tangent) {
    264         strBuilder.Append(@" \right) ");
     274        strBuilder.Append(@" ) ");
    265275      } else if (node.Symbol is GreaterThan) {
    266         strBuilder.Append(@" \right) ");
     276        strBuilder.Append(@" ) ");
    267277      } else if (node.Symbol is LessThan) {
    268         strBuilder.Append(@" \right) ");
     278        strBuilder.Append(@" ) ");
    269279      } else if (node.Symbol is And) {
    270         strBuilder.Append(@" > 0 \right) \right) ");
     280        strBuilder.Append(@" > 0 ) ) ");
    271281      } else if (node.Symbol is Or) {
    272         strBuilder.Append(@" > 0 \right) \right) ");
     282        strBuilder.Append(@" > 0 ) ) ");
    273283      } else if (node.Symbol is Not) {
    274         strBuilder.Append(@" \right) ");
     284        strBuilder.Append(@" ) ");
    275285      } else if (node.Symbol is IfThenElse) {
    276         strBuilder.Append(@" \right) \right) ");
     286        strBuilder.Append(@" ) ) ");
    277287      } else if (node.Symbol is Constant) {
    278288      } else if (node.Symbol is LaggedVariable) {
    279       } else if (node.Symbol is HeuristicLab.Problems.DataAnalysis.Symbolic.Variable) {
     289      } else if (node.Symbol is Variable) {
    280290      } else if (node.Symbol is ProgramRootSymbol) {
    281291        // output all constant values
     
    290300      } else if (node.Symbol is Defun) {
    291301      } else if (node.Symbol is InvokeFunction) {
    292         strBuilder.Append(@" \right) ");
     302        strBuilder.Append(@" ) ");
    293303      } else if (node.Symbol is StartSymbol) {
    294304      } else if (node.Symbol is Argument) {
    295305      } else if (node.Symbol is Derivative) {
    296         strBuilder.Append(@" \right) }{dt} ");
     306        strBuilder.Append(@" ) }{dt} ");
    297307      } else if (node.Symbol is TimeLag) {
    298308        var laggedNode = node as ILaggedTreeNode;
    299309        currentLag -= laggedNode.Lag;
    300310      } else if (node.Symbol is Power) {
    301         strBuilder.Append(@"\right) } ");
     311        strBuilder.Append(@" ) } ");
    302312      } else if (node.Symbol is Root) {
    303         strBuilder.Append(@"\right) } \right) } ");
     313        strBuilder.Append(@" ) } ) } ");
    304314      } else if (node.Symbol is Integral) {
    305315        var laggedTreeNode = node as ILaggedTreeNode;
    306         strBuilder.Append(@"\right) ");
     316        strBuilder.Append(@" ) ");
    307317      } else if (node.Symbol is VariableCondition) {
    308318        strBuilder.Append(@"\left) ");
     
    317327      } else if (lag > 0) {
    318328        return "(t+" + lag + ")";
    319       } else return "(t)";
     329      } else return "";
    320330    }
    321331
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Formatters/SymbolicDataAnalysisExpressionMATLABFormatter.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Grammars/ArithmeticExpressionGrammar.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Grammars/FullFunctionalExpressionGrammar.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Grammars/TypeCoherentExpressionGrammar.cs

    r6819 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    138138
    139139      AddAllowedChildSymbol(powerSymbols, variableSymbol, 0);
     140      AddAllowedChildSymbol(powerSymbols, laggedVariable, 0);
    140141      AddAllowedChildSymbol(powerSymbols, constant, 1);
    141142
     
    187188    public void ConfigureAsDefaultClassificationGrammar() {
    188189      Symbols.Where(s => s is Average).First().Enabled = false;
     190      Symbols.Where(s => s is VariableCondition).First().Enabled = false;
    189191      Symbols.Where(s => s.Name == TrigonometricFunctionsName).First().Enabled = false;
    190192      Symbols.Where(s => s.Name == ExponentialFunctionsName).First().Enabled = false;
     
    192194      Symbols.Where(s => s.Name == TimeSeriesSymbolsName).First().Enabled = false;
    193195    }
    194 
    195     public void ConfigureAsDefaultTimeSeriesPrognosisGrammar() {
    196       Symbols.Where(s => s is Variable).First().Enabled = false;
    197       Symbols.Where(s => s.Name == TrigonometricFunctionsName).First().Enabled = false;
    198       Symbols.Where(s => s.Name == PowerFunctionsName).First().Enabled = false;
    199       Symbols.Where(s => s.Name == ConditionalSymbolsName).First().Enabled = false;
    200     }
    201196  }
    202197}
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.csproj

    r7193 r7344  
    9393  </PropertyGroup>
    9494  <ItemGroup>
     95    <Reference Include="HeuristicLab.Analysis-3.3">
     96      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Analysis-3.3.dll</HintPath>
     97    </Reference>
     98    <Reference Include="HeuristicLab.Collections-3.3">
     99      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Collections-3.3.dll</HintPath>
     100    </Reference>
     101    <Reference Include="HeuristicLab.Common-3.3">
     102      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common-3.3.dll</HintPath>
     103    </Reference>
     104    <Reference Include="HeuristicLab.Common.Resources-3.3">
     105      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common.Resources-3.3.dll</HintPath>
     106    </Reference>
     107    <Reference Include="HeuristicLab.Core-3.3">
     108      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core-3.3.dll</HintPath>
     109    </Reference>
     110    <Reference Include="HeuristicLab.Data-3.3">
     111      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Data-3.3.dll</HintPath>
     112    </Reference>
     113    <Reference Include="HeuristicLab.Operators-3.3">
     114      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Operators-3.3.dll</HintPath>
     115    </Reference>
     116    <Reference Include="HeuristicLab.Optimization-3.3">
     117      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization-3.3.dll</HintPath>
     118    </Reference>
     119    <Reference Include="HeuristicLab.Optimization.Operators-3.3">
     120      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization.Operators-3.3.dll</HintPath>
     121    </Reference>
     122    <Reference Include="HeuristicLab.Parameters-3.3">
     123      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Parameters-3.3.dll</HintPath>
     124    </Reference>
     125    <Reference Include="HeuristicLab.Persistence-3.3">
     126      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Persistence-3.3.dll</HintPath>
     127    </Reference>
     128    <Reference Include="HeuristicLab.PluginInfrastructure-3.3">
     129      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
     130    </Reference>
     131    <Reference Include="HeuristicLab.Problems.DataAnalysis-3.4">
     132      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Problems.DataAnalysis-3.4.dll</HintPath>
     133    </Reference>
     134    <Reference Include="HeuristicLab.Random-3.3">
     135      <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Random-3.3.dll</HintPath>
     136    </Reference>
    95137    <Reference Include="System" />
    96138    <Reference Include="System.Core">
     
    206248  </ItemGroup>
    207249  <ItemGroup>
    208     <ProjectReference Include="..\..\HeuristicLab.Analysis\3.3\HeuristicLab.Analysis-3.3.csproj">
    209       <Project>{887425B4-4348-49ED-A457-B7D2C26DDBF9}</Project>
    210       <Name>HeuristicLab.Analysis-3.3</Name>
    211       <Private>False</Private>
    212     </ProjectReference>
    213     <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
    214       <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project>
    215       <Name>HeuristicLab.Collections-3.3</Name>
    216       <Private>False</Private>
    217     </ProjectReference>
    218     <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
    219       <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project>
    220       <Name>HeuristicLab.Common.Resources-3.3</Name>
    221       <Private>False</Private>
    222     </ProjectReference>
    223     <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
    224       <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
    225       <Name>HeuristicLab.Common-3.3</Name>
    226       <Private>False</Private>
    227     </ProjectReference>
    228     <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
    229       <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
    230       <Name>HeuristicLab.Core-3.3</Name>
    231       <Private>False</Private>
    232     </ProjectReference>
    233     <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
    234       <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>
    235       <Name>HeuristicLab.Data-3.3</Name>
    236       <Private>False</Private>
    237     </ProjectReference>
    238     <ProjectReference Include="..\..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.4\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj">
    239       <Project>{06D4A186-9319-48A0-BADE-A2058D462EEA}</Project>
    240       <Name>HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4</Name>
    241       <Private>False</Private>
    242     </ProjectReference>
    243     <ProjectReference Include="..\..\HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj">
    244       <Project>{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}</Project>
    245       <Name>HeuristicLab.Operators-3.3</Name>
    246       <Private>False</Private>
    247     </ProjectReference>
    248     <ProjectReference Include="..\..\HeuristicLab.Optimization.Operators\3.3\HeuristicLab.Optimization.Operators-3.3.csproj">
    249       <Project>{25087811-F74C-4128-BC86-8324271DA13E}</Project>
    250       <Name>HeuristicLab.Optimization.Operators-3.3</Name>
    251       <Private>False</Private>
    252     </ProjectReference>
    253     <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">
    254       <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>
    255       <Name>HeuristicLab.Optimization-3.3</Name>
    256       <Private>False</Private>
    257     </ProjectReference>
    258     <ProjectReference Include="..\..\HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj">
    259       <Project>{56F9106A-079F-4C61-92F6-86A84C2D84B7}</Project>
    260       <Name>HeuristicLab.Parameters-3.3</Name>
    261       <Private>False</Private>
    262     </ProjectReference>
    263     <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
    264       <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>
    265       <Name>HeuristicLab.Persistence-3.3</Name>
    266       <Private>False</Private>
    267     </ProjectReference>
    268     <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
    269       <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
    270       <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
    271       <Private>False</Private>
    272     </ProjectReference>
    273     <ProjectReference Include="..\..\HeuristicLab.Problems.DataAnalysis\3.4\HeuristicLab.Problems.DataAnalysis-3.4.csproj">
    274       <Project>{DF87C13E-A889-46FF-8153-66DCAA8C5674}</Project>
    275       <Name>HeuristicLab.Problems.DataAnalysis-3.4</Name>
    276       <Private>False</Private>
    277     </ProjectReference>
    278     <ProjectReference Include="..\..\HeuristicLab.Random\3.3\HeuristicLab.Random-3.3.csproj">
    279       <Project>{F4539FB6-4708-40C9-BE64-0A1390AEA197}</Project>
    280       <Name>HeuristicLab.Random-3.3</Name>
    281       <Private>False</Private>
    282     </ProjectReference>
    283   </ItemGroup>
    284   <ItemGroup>
    285250    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
    286251      <Visible>False</Visible>
     
    299264    </BootstrapperPackage>
    300265  </ItemGroup>
    301   <ItemGroup />
     266  <ItemGroup>
     267    <ProjectReference Include="..\..\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.4\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4.csproj">
     268      <Project>{06D4A186-9319-48A0-BADE-A2058D462EEA}</Project>
     269      <Name>HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4</Name>
     270    </ProjectReference>
     271  </ItemGroup>
    302272  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    303273  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interfaces/ISymbolicDataAnalysisAnalyzer.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interfaces/ISymbolicDataAnalysisBoundedOperator.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interfaces/ISymbolicDataAnalysisEvaluator.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interfaces/ISymbolicDataAnalysisExpressionTreeInterpreter.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2222using System.Collections.Generic;
    2323using HeuristicLab.Core;
     24using HeuristicLab.Data;
    2425using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
    2526
    2627namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
    27   public interface ISymbolicDataAnalysisExpressionTreeInterpreter : INamedItem {
     28  public interface ISymbolicDataAnalysisExpressionTreeInterpreter : INamedItem, IStatefulItem {
    2829    IEnumerable<double> GetSymbolicExpressionTreeValues(ISymbolicExpressionTree tree, Dataset dataset, IEnumerable<int> rows);
     30    IntValue EvaluatedSolutions { get; set; }
    2931  }
    3032}
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interfaces/ISymbolicDataAnalysisGrammar.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interfaces/ISymbolicDataAnalysisInterpreterOperator.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interfaces/ISymbolicDataAnalysisModel.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interfaces/ISymbolicDataAnalysisMultiObjectiveAnalyzer.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interfaces/ISymbolicDataAnalysisMultiObjectiveEvaluator.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interfaces/ISymbolicDataAnalysisProblem.cs

    r5883 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interfaces/ISymbolicDataAnalysisSingleObjectiveAnalyzer.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interfaces/ISymbolicDataAnalysisSingleObjectiveEvaluator.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interfaces/ISymbolicDataAnalysisSolution.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interfaces/ISymbolicDataAnalysisSolutionCreator.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interfaces/ISymbolicDataAnalysisValidationAnalyzer.cs

    r5882 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Plugin.cs.frame

    r6866 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2626
    2727namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
    28   [Plugin("HeuristicLab.Problems.DataAnalysis.Symbolic","Provides base classes for symbolic data analysis tasks.", "3.4.1.$WCREV$")]
     28  [Plugin("HeuristicLab.Problems.DataAnalysis.Symbolic","Provides base classes for symbolic data analysis tasks.", "3.4.2.$WCREV$")]
    2929  [PluginFile("HeuristicLab.Problems.DataAnalysis.Symbolic-3.4.dll", PluginFileType.Assembly)]
    3030  [PluginDependency("HeuristicLab.Analysis", "3.3")]
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Properties/AssemblyInfo.cs.frame

    r6866 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    3131[assembly: AssemblyCompany("")]
    3232[assembly: AssemblyProduct("HeuristicLab")]
    33 [assembly: AssemblyCopyright("(c) 2002-2011 HEAL")]
     33[assembly: AssemblyCopyright("(c) 2002-2012 HEAL")]
    3434[assembly: AssemblyTrademark("")]
    3535[assembly: AssemblyCulture("")]
     
    5353// by using the '*' as shown below:
    5454[assembly: AssemblyVersion("3.4.0.0")]
    55 [assembly: AssemblyFileVersion("3.4.1.$WCREV$")]
     55[assembly: AssemblyFileVersion("3.4.2.$WCREV$")]
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisExpressionTreeILEmittingInterpreter.cs

    r6849 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    4848    internal delegate double CompiledFunction(int sampleIndex, IList<double>[] columns);
    4949    private const string CheckExpressionsWithIntervalArithmeticParameterName = "CheckExpressionsWithIntervalArithmetic";
     50    private const string EvaluatedSolutionsParameterName = "EvaluatedSolutions";
    5051    #region private classes
    5152    private class InterpreterState {
     
    156157      get { return (IValueParameter<BoolValue>)Parameters[CheckExpressionsWithIntervalArithmeticParameterName]; }
    157158    }
     159
     160    public IValueParameter<IntValue> EvaluatedSolutionsParameter {
     161      get { return (IValueParameter<IntValue>)Parameters[EvaluatedSolutionsParameterName]; }
     162    }
    158163    #endregion
    159164
     
    162167      get { return CheckExpressionsWithIntervalArithmeticParameter.Value; }
    163168      set { CheckExpressionsWithIntervalArithmeticParameter.Value = value; }
     169    }
     170
     171    public IntValue EvaluatedSolutions {
     172      get { return EvaluatedSolutionsParameter.Value; }
     173      set { EvaluatedSolutionsParameter.Value = value; }
    164174    }
    165175    #endregion
     
    176186      : base("SymbolicDataAnalysisExpressionTreeILEmittingInterpreter", "Interpreter for symbolic expression trees.") {
    177187      Parameters.Add(new ValueParameter<BoolValue>(CheckExpressionsWithIntervalArithmeticParameterName, "Switch that determines if the interpreter checks the validity of expressions with interval arithmetic before evaluating the expression.", new BoolValue(false)));
    178     }
     188      Parameters.Add(new ValueParameter<IntValue>(EvaluatedSolutionsParameterName, "A counter for the total number of solutions the interpreter has evaluated", new IntValue(0)));
     189    }
     190
     191    #region state
     192    public void InitializeState() {
     193      EvaluatedSolutions.Value = 0;
     194    }
     195
     196    public void ClearState() {
     197      EvaluatedSolutions.Value = 0;
     198    }
     199    #endregion
    179200
    180201    public IEnumerable<double> GetSymbolicExpressionTreeValues(ISymbolicExpressionTree tree, Dataset dataset, IEnumerable<int> rows) {
     
    584605        //to determine the relative amounts of the true and false branch see http://en.wikipedia.org/wiki/Logistic_function
    585606        case OpCodes.VariableCondition: {
    586             throw new NotImplementedException();
    587           }
    588         default: throw new NotSupportedException();
     607            throw new NotSupportedException("Interpretation of symbol " + currentInstr.dynamicNode.Symbol.Name + " is not supported by the SymbolicDataAnalysisTreeILEmittingInterpreter");
     608          }
     609        default: throw new NotSupportedException("Interpretation of symbol " + currentInstr.dynamicNode.Symbol.Name + " is not supported by the SymbolicDataAnalysisTreeILEmittingInterpreter");
    589610      }
    590611    }
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisExpressionTreeInterpreter.cs

    r6860 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    3434  public sealed class SymbolicDataAnalysisExpressionTreeInterpreter : ParameterizedNamedItem, ISymbolicDataAnalysisExpressionTreeInterpreter {
    3535    private const string CheckExpressionsWithIntervalArithmeticParameterName = "CheckExpressionsWithIntervalArithmetic";
     36    private const string EvaluatedSolutionsParameterName = "EvaluatedSolutions";
    3637    #region private classes
    3738    private class InterpreterState {
     
    176177      get { return (IValueParameter<BoolValue>)Parameters[CheckExpressionsWithIntervalArithmeticParameterName]; }
    177178    }
     179
     180    public IValueParameter<IntValue> EvaluatedSolutionsParameter {
     181      get { return (IValueParameter<IntValue>)Parameters[EvaluatedSolutionsParameterName]; }
     182    }
    178183    #endregion
    179184
     
    183188      set { CheckExpressionsWithIntervalArithmeticParameter.Value = value; }
    184189    }
     190
     191    public IntValue EvaluatedSolutions {
     192      get { return EvaluatedSolutionsParameter.Value; }
     193      set { EvaluatedSolutionsParameter.Value = value; }
     194    }
    185195    #endregion
    186 
    187196
    188197    [StorableConstructor]
     
    196205      : base("SymbolicDataAnalysisExpressionTreeInterpreter", "Interpreter for symbolic expression trees including automatically defined functions.") {
    197206      Parameters.Add(new ValueParameter<BoolValue>(CheckExpressionsWithIntervalArithmeticParameterName, "Switch that determines if the interpreter checks the validity of expressions with interval arithmetic before evaluating the expression.", new BoolValue(false)));
    198     }
     207      Parameters.Add(new ValueParameter<IntValue>(EvaluatedSolutionsParameterName, "A counter for the total number of solutions the interpreter has evaluated", new IntValue(0)));
     208    }
     209
     210    #region state
     211    public void InitializeState() {
     212      EvaluatedSolutions.Value = 0;
     213    }
     214
     215    public void ClearState() {
     216    }
     217    #endregion
    199218
    200219    public IEnumerable<double> GetSymbolicExpressionTreeValues(ISymbolicExpressionTree tree, Dataset dataset, IEnumerable<int> rows) {
     220      EvaluatedSolutions.Value++; // increment the evaluated solutions counter
    201221      if (CheckExpressionsWithIntervalArithmetic.Value)
    202222        throw new NotSupportedException("Interval arithmetic is not yet supported in the symbolic data analysis interpreter.");
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisExpressionTreeSimplifier.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisModel.cs

    r5914 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    3232  [StorableClass]
    3333  public abstract class SymbolicDataAnalysisModel : NamedItem, ISymbolicDataAnalysisModel {
    34     public override Image ItemImage {
     34    public static new Image StaticItemImage {
    3535      get { return HeuristicLab.Common.Resources.VSImageLibrary.Function; }
    3636    }
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisMultiObjectiveProblem.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisProblem.cs

    r7086 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    3232using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    3333using HeuristicLab.PluginInfrastructure;
     34using HeuristicLab.Problems.DataAnalysis.Symbolic.Crossovers;
    3435
    3536namespace HeuristicLab.Problems.DataAnalysis.Symbolic {
     
    102103    #region properties
    103104    public string Filename { get; set; }
    104     public override Image ItemImage { get { return VSImageLibrary.Type; } }
     105    public static new Image StaticItemImage { get { return VSImageLibrary.Type; } }
    105106
    106107    IDataAnalysisProblemData IDataAnalysisProblem.ProblemData {
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SymbolicDataAnalysisSingleObjectiveProblem.cs

    r6533 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/Addition.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/And.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/Average.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/Constant.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/ConstantTreeNode.cs

    r6180 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/Cosine.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/Derivative.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/Division.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/Exponential.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/GreaterThan.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/ILaggedTreeNode.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/IfThenElse.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/Integral.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/LaggedTreeNode.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/LaggedVariable.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/LaggedVariableTreeNode.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/LessThan.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/Logarithm.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/Multiplication.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/Not.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/Or.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/Power.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/Root.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/Sine.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/Subtraction.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/Tangent.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/TimeLag.cs

    r6809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/Variable.cs

    r6803 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/gp-crossover/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Symbols/VariableTreeNode.cs

    r5809 r7344  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2011 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2012 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
Note: See TracChangeset for help on using the changeset viewer.