Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
01/11/11 15:03:46 (14 years ago)
Author:
gkronber
Message:

Merged changes from trunk to data analysis exploration branch and added fractional distance metric evaluator. #1142

Location:
branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3
Files:
1 added
17 edited

Legend:

Unmodified
Added
Removed
  • branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis-3.3.csproj

    r5265 r5275  
    9292  </PropertyGroup>
    9393  <ItemGroup>
     94    <Reference Include="HeuristicLab.Analysis-3.3">
     95      <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Analysis-3.3.dll</HintPath>
     96    </Reference>
     97    <Reference Include="HeuristicLab.Collections-3.3">
     98      <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Collections-3.3.dll</HintPath>
     99    </Reference>
     100    <Reference Include="HeuristicLab.Common-3.3">
     101      <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Common-3.3.dll</HintPath>
     102    </Reference>
     103    <Reference Include="HeuristicLab.Common.Resources-3.3">
     104      <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Common.Resources-3.3.dll</HintPath>
     105    </Reference>
     106    <Reference Include="HeuristicLab.Core-3.3">
     107      <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Core-3.3.dll</HintPath>
     108    </Reference>
     109    <Reference Include="HeuristicLab.Data-3.3">
     110      <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Data-3.3.dll</HintPath>
     111    </Reference>
     112    <Reference Include="HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3">
     113      <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3.dll</HintPath>
     114    </Reference>
     115    <Reference Include="HeuristicLab.Operators-3.3">
     116      <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Operators-3.3.dll</HintPath>
     117    </Reference>
     118    <Reference Include="HeuristicLab.Optimization-3.3">
     119      <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Optimization-3.3.dll</HintPath>
     120    </Reference>
     121    <Reference Include="HeuristicLab.Parameters-3.3">
     122      <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Parameters-3.3.dll</HintPath>
     123    </Reference>
     124    <Reference Include="HeuristicLab.Persistence-3.3">
     125      <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Persistence-3.3.dll</HintPath>
     126    </Reference>
     127    <Reference Include="HeuristicLab.PluginInfrastructure-3.3">
     128      <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>
     129    </Reference>
     130    <Reference Include="HeuristicLab.Random-3.3">
     131      <HintPath>..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Random-3.3.dll</HintPath>
     132    </Reference>
    94133    <Reference Include="System" />
    95134    <Reference Include="System.Core">
     
    109148    <Compile Include="HeuristicLabProblemsDataAnalysisMultiVariateTimeSeriesPrognosisPlugin.cs" />
    110149    <Compile Include="Symbolic\Analyzer\ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer.cs" />
     150    <Compile Include="Symbolic\Evaluators\SymbolicTimeSeriesPrognosisScaledNormalizedFractionalDistanceEvaluator.cs" />
    111151    <Compile Include="Symbolic\Evaluators\SymbolicTimeSeriesPrognosisEvaluator.cs" />
    112152    <Compile Include="Symbolic\Evaluators\SymbolicTimeSeriesPrognosisMahalanobisEvaluator.cs">
  • branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Analyzer/ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer.cs

    r4555 r5275  
    222222    #endregion
    223223
     224    [StorableConstructor]
     225    protected ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer(bool deserializing) : base(deserializing) { }
     226    protected ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer(ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer original, Cloner cloner)
     227      : base(original, cloner) {
     228    }
    224229    public ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer()
    225230      : base() {
     
    245250    }
    246251
    247     [StorableConstructor]
    248     private ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer(bool deserializing) : base(deserializing) { }
    249 
     252    public override IDeepCloneable Clone(Cloner cloner) {
     253      return new ValidationBestScaledSymbolicTimeSeriesPrognosisSolutionAnalyzer(this, cloner);
     254    }
    250255    [StorableHook(Persistence.Default.CompositeSerializers.Storable.HookType.AfterDeserialization)]
    251     private void Initialize() {
     256    private void AfterDeserialization() {
    252257      //if (!Parameters.ContainsKey("Evaluator")) {
    253258      //  Parameters.Add(new LookupParameter<ISingleObjectiveSymbolicTimeSeriesPrognosisEvaluator>("Evaluator", ""));
  • branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Evaluators/SymbolicTimeSeriesPrognosisEvaluator.cs

    r4475 r5275  
    9393    }
    9494    #endregion
    95     #region
     95    #region properties
    9696    public IRandom Random {
    9797      get { return RandomParameter.ActualValue; }
     
    128128    }
    129129    #endregion
    130 
     130    [StorableConstructor]
     131    protected SymbolicTimeSeriesPrognosisEvaluator(bool deserializing) : base(deserializing) { }
     132    protected SymbolicTimeSeriesPrognosisEvaluator(SymbolicTimeSeriesPrognosisEvaluator original, Cloner cloner)
     133      : base(original, cloner) {
     134    }
    131135    public SymbolicTimeSeriesPrognosisEvaluator()
    132136      : base() {
  • branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Evaluators/SymbolicTimeSeriesPrognosisMahalanobisEvaluator.cs

    r4555 r5275  
    4545  public class SymbolicTimeSeriesPrognosisMahalanobisEvaluator : SymbolicTimeSeriesPrognosisEvaluator {
    4646
     47    [StorableConstructor]
     48    protected SymbolicTimeSeriesPrognosisMahalanobisEvaluator(bool deserializing) : base(deserializing) { }
     49    protected SymbolicTimeSeriesPrognosisMahalanobisEvaluator(SymbolicTimeSeriesPrognosisMahalanobisEvaluator original, Cloner cloner)
     50      : base(original, cloner) {
     51    }
    4752    public SymbolicTimeSeriesPrognosisMahalanobisEvaluator()
    4853      : base() {
    4954    }
    50 
     55    public override IDeepCloneable Clone(Cloner cloner) {
     56      return new SymbolicTimeSeriesPrognosisMahalanobisEvaluator(this, cloner);
     57    }
    5158    public override double Evaluate(SymbolicExpressionTree tree, MultiVariateDataAnalysisProblemData problemData, ISymbolicTimeSeriesExpressionInterpreter interpreter, IEnumerable<int> rows, int predictionHorizon, DoubleArray lowerEstimationLimit, DoubleArray upperEstimationLimit) {
    5259      return Calculate(tree, problemData, interpreter, rows, predictionHorizon, lowerEstimationLimit, upperEstimationLimit);
  • branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Evaluators/SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator.cs

    r4555 r5275  
    4444  public class SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator : SymbolicTimeSeriesPrognosisEvaluator {
    4545
     46    [StorableConstructor]
     47    protected SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator(bool deserializing) : base(deserializing) { }
     48    protected SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator(SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator original, Cloner cloner)
     49      : base(original, cloner) {
     50    }
    4651    public SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator()
    4752      : base() {
    4853    }
    49 
     54    public override IDeepCloneable Clone(Cloner cloner) {
     55      return new SymbolicTimeSeriesPrognosisScaledNormalizedMseEvaluator(this, cloner);
     56    }
    5057    public override double Evaluate(SymbolicExpressionTree tree, MultiVariateDataAnalysisProblemData problemData, ISymbolicTimeSeriesExpressionInterpreter interpreter, IEnumerable<int> rows, int predictionHorizon, DoubleArray lowerEstimationLimit, DoubleArray upperEstimationLimit) {
    5158      return Calculate(tree, problemData, interpreter, rows, predictionHorizon, lowerEstimationLimit, upperEstimationLimit);
  • branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SingleObjectiveSymbolicTimeSeriesPrognosisProblem.cs

    r4118 r5275  
    8787    [StorableConstructor]
    8888    protected SingleObjectiveSymbolicTimeSeriesPrognosisProblem(bool deserializing) : base(deserializing) { }
     89    protected SingleObjectiveSymbolicTimeSeriesPrognosisProblem(SingleObjectiveSymbolicTimeSeriesPrognosisProblem original, Cloner cloner)
     90      : base(original, cloner) {
     91        AttachEventHandlers();
     92    }
    8993    public SingleObjectiveSymbolicTimeSeriesPrognosisProblem()
    9094      : base() {
     
    102106
    103107    [StorableHook(HookType.AfterDeserialization)]
    104     private void AfterDeserializationHook() {
     108    private void AfterDeserialization() {
    105109      AttachEventHandlers();
    106110    }
    107111
    108112    public override IDeepCloneable Clone(Cloner cloner) {
    109       SingleObjectiveSymbolicTimeSeriesPrognosisProblem clone = (SingleObjectiveSymbolicTimeSeriesPrognosisProblem)base.Clone(cloner);
    110       clone.AttachEventHandlers();
    111       return clone;
     113      return new SingleObjectiveSymbolicTimeSeriesPrognosisProblem(this, cloner);
    112114    }
    113115
  • branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesExpressionInterpreter.cs

    r4556 r5275  
    116116      get { return false; }
    117117    }
    118 
     118    [StorableConstructor]
     119    protected SymbolicTimeSeriesExpressionInterpreter(bool deserializing) : base(deserializing) { }
     120    protected SymbolicTimeSeriesExpressionInterpreter(SymbolicTimeSeriesExpressionInterpreter original, Cloner cloner)
     121      : base(original, cloner) {
     122    }
    119123    public SymbolicTimeSeriesExpressionInterpreter()
    120124      : base() {
     125    }
     126    public override IDeepCloneable Clone(Cloner cloner) {
     127      return new SymbolicTimeSeriesExpressionInterpreter(this, cloner);
    121128    }
    122129    #region ITimeSeriesExpressionInterpreter Members
  • branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesPrognosisGrammar.cs

    r4252 r5275  
    3838    // for persistence
    3939    private SymbolicTimeSeriesPrognosisGrammar() : this(1) { }
    40 
     40    [StorableConstructor]
     41    protected SymbolicTimeSeriesPrognosisGrammar(bool deserializing) : base(deserializing) { }
     42    protected SymbolicTimeSeriesPrognosisGrammar(SymbolicTimeSeriesPrognosisGrammar original, Cloner cloner)
     43      : base(original, cloner) {
     44        dimension = original.dimension;
     45    }
    4146    public SymbolicTimeSeriesPrognosisGrammar(int dimension)
    4247      : base() {
    4348      this.dimension = dimension;
    4449      Initialize();
     50    }
     51
     52    public override IDeepCloneable Clone(Cloner cloner) {
     53      return new SymbolicTimeSeriesPrognosisGrammar(this, cloner);
    4554    }
    4655
     
    129138          }
    130139      }
    131     }
    132 
    133     public override IDeepCloneable Clone(Cloner cloner) {
    134       SymbolicTimeSeriesPrognosisGrammar clone = (SymbolicTimeSeriesPrognosisGrammar)base.Clone(cloner);
    135       clone.dimension = this.dimension;
    136       return clone;
    137     }
     140    }   
    138141  }
    139142}
  • branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesPrognosisModel.cs

    r4463 r5275  
    4747    [StorableConstructor]
    4848    protected SymbolicTimeSeriesPrognosisModel(bool deserializing) : base(deserializing) { }
    49 
     49    protected SymbolicTimeSeriesPrognosisModel(SymbolicTimeSeriesPrognosisModel original, Cloner cloner)
     50      : base(original, cloner) {
     51        tree = cloner.Clone(original.tree);
     52        interpreter = cloner.Clone(original.interpreter);
     53    }
    5054    public SymbolicTimeSeriesPrognosisModel() { }
    51 
    5255    public SymbolicTimeSeriesPrognosisModel(ISymbolicTimeSeriesExpressionInterpreter interpreter, SymbolicExpressionTree tree) {
    5356      this.tree = tree;
    5457      this.interpreter = interpreter;
    5558
     59    }
     60
     61    public override IDeepCloneable Clone(Cloner cloner) {
     62      return new SymbolicTimeSeriesPrognosisModel(this, cloner);
    5663    }
    5764
     
    7077    #endregion
    7178
    72     public override IDeepCloneable Clone(Cloner cloner) {
    73       SymbolicTimeSeriesPrognosisModel clone = (SymbolicTimeSeriesPrognosisModel)base.Clone(cloner);
    74       clone.tree = (SymbolicExpressionTree)cloner.Clone(tree);
    75       clone.interpreter = (ISymbolicTimeSeriesExpressionInterpreter)cloner.Clone(interpreter);
    76       return clone;
    77     }
    7879  }
    7980}
  • branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesPrognosisProblem.cs

    r4118 r5275  
    161161    [StorableConstructor]
    162162    protected SymbolicTimeSeriesPrognosisProblem(bool deserializing) : base(deserializing) { }
     163    protected SymbolicTimeSeriesPrognosisProblem(SymbolicTimeSeriesPrognosisProblem original, Cloner cloner)
     164      : base(original, cloner) {
     165      operators = original.operators.Select(x => (IOperator)cloner.Clone(x)).ToList();
     166      grammar = (SymbolicTimeSeriesPrognosisGrammar)cloner.Clone(original.grammar);
     167      RegisterParameterEvents();
     168      RegisterParameterValueEvents();
     169    }
    163170    public SymbolicTimeSeriesPrognosisProblem()
    164171      : base() {
     
    188195
    189196    [StorableHook(HookType.AfterDeserialization)]
    190     private void AfterDeserializationHook() {
     197    private void AfterDeserialization() {
    191198      // BackwardsCompatibility3.3
    192199      #region Backwards compatible code (remove with 3.4)
     
    198205
    199206    public override IDeepCloneable Clone(Cloner cloner) {
    200       SymbolicTimeSeriesPrognosisProblem clone = (SymbolicTimeSeriesPrognosisProblem)base.Clone(cloner);
    201       clone.operators = operators.Select(x => (IOperator)cloner.Clone(x)).ToList();
    202       clone.grammar = (SymbolicTimeSeriesPrognosisGrammar)cloner.Clone(grammar);
    203       clone.RegisterParameterEvents();
    204       clone.RegisterParameterValueEvents();
    205       return clone;
     207      return new SymbolicTimeSeriesPrognosisProblem(this, cloner);
    206208    }
    207209
  • branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/SymbolicTimeSeriesPrognosisSolution.cs

    r5010 r5275  
    5454    [StorableConstructor]
    5555    protected SymbolicTimeSeriesPrognosisSolution(bool deserializing) : base(deserializing) { }
    56 
     56    protected SymbolicTimeSeriesPrognosisSolution(SymbolicTimeSeriesPrognosisSolution original, Cloner cloner)
     57      : base(original, cloner) {
     58      problemData = (MultiVariateDataAnalysisProblemData)cloner.Clone(original.problemData);
     59      model = (SymbolicTimeSeriesPrognosisModel)cloner.Clone(original.model);
     60      horizon = original.horizon;
     61      conditionalEvaluationVariable = original.conditionalEvaluationVariable;
     62      lowerEstimationLimit = (double[])original.lowerEstimationLimit.Clone();
     63      upperEstimationLimit = (double[])original.upperEstimationLimit.Clone();
     64    }
    5765    public SymbolicTimeSeriesPrognosisSolution() {
    5866      horizon = 1;
     
    6876      this.upperEstimationLimit = (double[])upperEstimationLimit.Clone();
    6977    }
    70 
     78    public override IDeepCloneable Clone(Cloner cloner) {
     79      return new SymbolicTimeSeriesPrognosisSolution(this, cloner);
     80    }
    7181    [StorableHook(HookType.AfterDeserialization)]
    72     private void Initialize() {
     82    private void AfterDeserialization() {
    7383      if (problemData != null)
    7484        RegisterProblemDataEvents();
     
    206216
    207217
    208     public override IDeepCloneable Clone(Cloner cloner) {
    209       SymbolicTimeSeriesPrognosisSolution clone = (SymbolicTimeSeriesPrognosisSolution)base.Clone(cloner);
    210       clone.problemData = (MultiVariateDataAnalysisProblemData)cloner.Clone(problemData);
    211       clone.model = (SymbolicTimeSeriesPrognosisModel)cloner.Clone(model);
    212       clone.horizon = horizon;
    213       clone.conditionalEvaluationVariable = conditionalEvaluationVariable;
    214       clone.lowerEstimationLimit = (double[])lowerEstimationLimit.Clone();
    215       clone.upperEstimationLimit = (double[])upperEstimationLimit.Clone();
    216       return clone;
    217     }
    218218
    219219    private IEnumerable<double[]> ApplyEstimationLimits(IEnumerable<double[]> values) {
  • branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/DerivativeVariable.cs

    r4113 r5275  
    4747      set { maxLag = value; }
    4848    }
     49    [StorableConstructor]
     50    protected DerivativeVariable(bool deserializing) : base(deserializing) { }
     51    protected DerivativeVariable(DerivativeVariable original, Cloner cloner)
     52      : base(original, cloner) {
     53        minLag = original.minLag;
     54        maxLag = original.maxLag;
     55    }
    4956    public DerivativeVariable()
    5057      : base("DerivativeVariable", "Represents an differentiated variable value with a time offset.") {
     
    5764
    5865    public override IDeepCloneable Clone(Cloner cloner) {
    59       DerivativeVariable clone = (DerivativeVariable)base.Clone(cloner);
    60       clone.minLag = minLag;
    61       clone.maxLag = maxLag;
    62       return clone;
     66      return new DerivativeVariable(this, cloner);
    6367    }
    6468  }
  • branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/DerivativeVariableTreeNode.cs

    r4113 r5275  
    4444    private DerivativeVariableTreeNode() { }
    4545
    46     // copy constructor
    47     private DerivativeVariableTreeNode(DerivativeVariableTreeNode original)
    48       : base(original) {
    49       lag = original.lag;
     46    [StorableConstructor]
     47    protected DerivativeVariableTreeNode(bool deserializing) : base(deserializing) { }
     48    protected DerivativeVariableTreeNode(DerivativeVariableTreeNode original, Cloner cloner)
     49      : base(original, cloner) {
     50        lag = original.lag;
    5051    }
    5152
     
    6970
    7071
    71     public override object Clone() {
    72       return new DerivativeVariableTreeNode(this);
     72    public override IDeepCloneable Clone(Cloner cloner) {
     73      return new DerivativeVariableTreeNode(this, cloner);
    7374    }
    7475
  • branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/IntegratedVariable.cs

    r4113 r5275  
    4747      set { maxLag = value; }
    4848    }
     49    [StorableConstructor]
     50    protected IntegratedVariable(bool deserializing) : base(deserializing) { }
     51    protected IntegratedVariable(IntegratedVariable original, Cloner cloner)
     52      : base(original, cloner) {
     53        minLag = original.minLag;
     54        maxLag = original.maxLag;
     55    }
    4956    public IntegratedVariable()
    5057      : base("IntegratedVariable", "Represents an integrated variable value with a time offset.") {
     
    5764
    5865    public override IDeepCloneable Clone(Cloner cloner) {
    59       IntegratedVariable clone = (IntegratedVariable)base.Clone(cloner);
    60       clone.minLag = minLag;
    61       clone.maxLag = maxLag;
    62       return clone;
     66      return new IntegratedVariable(this, cloner);
    6367    }
    6468  }
  • branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/IntegratedVariableTreeNode.cs

    r4113 r5275  
    5050
    5151    private IntegratedVariableTreeNode() { }
    52 
    53     // copy constructor
    54     private IntegratedVariableTreeNode(IntegratedVariableTreeNode original)
    55       : base(original) {
     52    [StorableConstructor]
     53    protected IntegratedVariableTreeNode(bool deserializing) : base(deserializing) { }
     54    protected IntegratedVariableTreeNode(IntegratedVariableTreeNode original, Cloner cloner)
     55      : base(original, cloner) {
    5656      minTimeOffset = original.minTimeOffset;
    5757      maxTimeOffset = original.maxTimeOffset;
     
    7777      maxTimeOffset = Math.Min(Symbol.MaxLag, Math.Max(minTimeOffset, maxTimeOffset + random.Next(-1, 2)));
    7878    }
    79 
    80 
    81     public override object Clone() {
    82       return new IntegratedVariableTreeNode(this);
     79    public override IDeepCloneable Clone(Cloner cloner) {
     80      return new IntegratedVariableTreeNode(this, cloner);
    8381    }
    84 
    8582    public override string ToString() {
    8683      return Weight.ToString("E4") + " I(" + VariableName +
  • branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/MovingAverage.cs

    r4113 r5275  
    4747      set { maxLag = value; }
    4848    }
     49    [StorableConstructor]
     50    protected MovingAverage(bool deserializing) : base(deserializing) { }
     51    protected MovingAverage(MovingAverage original, Cloner cloner)
     52      : base(original, cloner) {
     53      minLag = original.minLag;
     54      maxLag = original.maxLag;
     55    }
    4956    public MovingAverage()
    5057      : base("MovingAverage", "Represents a moving average of a variable value with a time offset.") {
     
    5764
    5865    public override IDeepCloneable Clone(Cloner cloner) {
    59       MovingAverage clone = (MovingAverage)base.Clone(cloner);
    60       clone.minLag = minLag;
    61       clone.maxLag = maxLag;
    62       return clone;
     66      return new MovingAverage(this, cloner);
    6367    }
    6468  }
  • branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.MultiVariate.TimeSeriesPrognosis/3.3/Symbolic/Symbols/MovingAverageTreeNode.cs

    r4113 r5275  
    5050
    5151    private MovingAverageTreeNode() { }
    52 
    53     // copy constructor
    54     private MovingAverageTreeNode(MovingAverageTreeNode original)
    55       : base(original) {
     52    [StorableConstructor]
     53    protected MovingAverageTreeNode(bool deserializing) : base(deserializing) { }
     54    protected MovingAverageTreeNode(MovingAverageTreeNode original, Cloner cloner)
     55      : base(original, cloner) {
    5656      minTimeOffset = original.minTimeOffset;
    5757      maxTimeOffset = original.maxTimeOffset;
     
    7979
    8080
    81     public override object Clone() {
    82       return new MovingAverageTreeNode(this);
     81    public override IDeepCloneable Clone(Cloner cloner) {
     82      return new MovingAverageTreeNode(this, cloner);
    8383    }
    84 
    8584    public override string ToString() {
    8685      return Weight.ToString("E4") + " MA(" + VariableName +
Note: See TracChangeset for help on using the changeset viewer.