Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
05/06/10 02:46:37 (14 years ago)
Author:
swagner
Message:

Worked on refactoring of algorithm analysis and tracing (#999)

  • adapted analyzers
File:
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Analysis/3.3/ValueAnalyzer.cs

    r3659 r3662  
    2020#endregion
    2121
     22using System;
     23using HeuristicLab.Common;
    2224using HeuristicLab.Core;
    2325using HeuristicLab.Data;
     
    3032namespace HeuristicLab.Analysis {
    3133  /// <summary>
    32   /// An operator which analyzes a value in the current population.
     34  /// An operator which analyzes a value in the scope tree.
    3335  /// </summary>
    34   [Item("PopulationValueAnalyzer", "An operator which analyzes a value in the current population.")]
     36  [Item("ValueAnalyzer", "An operator which analyzes a value in the scope tree.")]
    3537  [StorableClass]
    36   public sealed class PopulationValueAnalyzer : AlgorithmOperator, IAnalyzer {
     38  public sealed class ValueAnalyzer : AlgorithmOperator, IAnalyzer {
    3739    #region Parameter properties
    3840    public ScopeTreeLookupParameter<DoubleValue> ValueParameter {
     
    4749    #endregion
    4850
    49     [StorableConstructor]
    50     private PopulationValueAnalyzer(bool deserializing) : base() { }
    51     public PopulationValueAnalyzer()
     51    #region Properties
     52    private DataTableValuesCollector DataTableValuesCollector {
     53      get { return (DataTableValuesCollector)OperatorGraph.InitialOperator; }
     54    }
     55    private ResultsCollector ResultsCollector {
     56      get { return (ResultsCollector)DataTableValuesCollector.Successor; }
     57    }
     58    #endregion
     59
     60    public ValueAnalyzer()
    5261      : base() {
    53       Initialize();
    54     }
    55 
    56     private void Initialize() {
    5762      #region Create parameters
    58       Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Value", "The value contained in each solution which should be analyzed."));
     63      Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Value", "The value contained in the scope tree which should be analyzed."));
    5964      Parameters.Add(new ValueLookupParameter<DataTable>("Values", "The data table to store the values."));
    6065      Parameters.Add(new ValueLookupParameter<VariableCollection>("Results", "The results collection where the analysis values should be stored."));
     
    6570      ResultsCollector resultsCollector = new ResultsCollector();
    6671
    67       dataTableValuesCollector.CollectedValues.Add(new ScopeTreeLookupParameter<DoubleValue>("Value", null, "Value"));
    68       dataTableValuesCollector.DataTableParameter.ActualName = "Values";
     72      dataTableValuesCollector.CollectedValues.Add(new ScopeTreeLookupParameter<DoubleValue>("Value", null, ValueParameter.Name));
     73      ((ScopeTreeLookupParameter<DoubleValue>)dataTableValuesCollector.CollectedValues["Value"]).Depth = ValueParameter.Depth;
     74      dataTableValuesCollector.DataTableParameter.ActualName = ValuesParameter.Name;
    6975
    70       resultsCollector.CollectedValues.Add(new ScopeTreeLookupParameter<DoubleValue>("Value", null, "Value"));
    71       resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>("Values"));
    72       resultsCollector.ResultsParameter.ActualName = "Results";
     76      resultsCollector.CollectedValues.Add(new ScopeTreeLookupParameter<DoubleValue>("Value", null, ValueParameter.Name));
     77      ((ScopeTreeLookupParameter<DoubleValue>)resultsCollector.CollectedValues["Value"]).Depth = ValueParameter.Depth;
     78      resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>(ValuesParameter.Name));
     79      resultsCollector.ResultsParameter.ActualName = ResultsParameter.Name;
    7380      #endregion
    7481
     
    7885      resultsCollector.Successor = null;
    7986      #endregion
     87
     88      Initialize();
     89    }
     90    [StorableConstructor]
     91    private ValueAnalyzer(bool deserializing) : base() { }
     92
     93    [StorableHook(HookType.AfterDeserialization)]
     94    private void Initialize() {
     95      ValueParameter.DepthChanged += new EventHandler(ValueParameter_DepthChanged);
     96    }
     97
     98    public override IDeepCloneable Clone(Cloner cloner) {
     99      ValueAnalyzer clone = (ValueAnalyzer)base.Clone(cloner);
     100      clone.Initialize();
     101      return clone;
     102    }
     103
     104    private void ValueParameter_DepthChanged(object sender, System.EventArgs e) {
     105      ((ScopeTreeLookupParameter<DoubleValue>)DataTableValuesCollector.CollectedValues["Value"]).Depth = ValueParameter.Depth;
     106      ((ScopeTreeLookupParameter<DoubleValue>)ResultsCollector.CollectedValues["Value"]).Depth = ValueParameter.Depth;
    80107    }
    81108  }
Note: See TracChangeset for help on using the changeset viewer.