Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/29/12 09:22:21 (12 years ago)
Author:
jkarder
Message:

#1853:

  • enhanced combinations count calculation
  • restructured code
  • minor code improvements
  • added license information
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ParameterConfigurationEncoding/HeuristicLab.Encodings.ParameterConfigurationEncoding/3.3/ParameterConfigurationTree.cs

    r8524 r8535  
    3737  [StorableClass]
    3838  public class ParameterConfigurationTree : ParameterizedValueConfiguration, IEnumerable {
     39    [Storable]
     40    private long combinationsCount;
     41    public long CombinationsCount {
     42      get { return combinationsCount; }
     43      private set {
     44        if (combinationsCount != value) {
     45          combinationsCount = value;
     46          OnCombinationsCountChanged();
     47        }
     48      }
     49    }
     50
    3951    [Storable]
    4052    private DoubleValue quality;
     
    213225      this.Name = algorithm.ItemName;
    214226
    215       var algproblemitem = new AlgorithmProblemItem();
    216       algproblemitem.AlgorithmParameter.Value = algorithm;
    217       algproblemitem.ProblemParameter.Value = problem;
     227      var algProblemItem = new AlgorithmProblemItem();
     228      algProblemItem.AlgorithmParameter.Value = algorithm;
     229      algProblemItem.ProblemParameter.Value = problem;
    218230      this.discoverValidValues = false;
    219231
    220       this.parameterConfigurations.Add(new SingleValuedParameterConfiguration("Algorithm", algproblemitem.AlgorithmParameter));
    221       this.parameterConfigurations.Add(new SingleValuedParameterConfiguration("Problem", algproblemitem.ProblemParameter));
     232      var algConfig = new SingleValuedParameterConfiguration("Algorithm", algProblemItem.AlgorithmParameter);
     233      var problemConfig = new SingleValuedParameterConfiguration("Problem", algProblemItem.ProblemParameter);
     234
     235      algConfig.CombinationsCountChanged += new EventHandler(UpdateConfigurationsCount);
     236      problemConfig.CombinationsCountChanged += new EventHandler(UpdateConfigurationsCount);
     237
     238      this.parameterConfigurations.Add(algConfig);
     239      this.parameterConfigurations.Add(problemConfig);
    222240
    223241      // problems can be modified in the list of problem instances, so the parameters which are not Optimize=true,
    224242      // must not be modifiable in the parameter configuration tree. otherwise the parameter values would be ambiguous
    225243      ProblemConfiguration.ValuesReadOnly = true;
     244
     245      CombinationsCount = GetCombinationCount(0);
    226246    }
    227247
     
    233253    private void AfterDeserialization() {
    234254      if (ProblemConfiguration != null) ProblemConfiguration.ValuesReadOnly = true;
     255      CombinationsCount = GetCombinationCount(0);
    235256    }
    236257    #endregion
     
    265286    private void Quality_ValueChanged(object sender, EventArgs e) {
    266287      OnQualityChanged();
     288    }
     289
     290    private void UpdateConfigurationsCount(object sender, EventArgs e) {
     291      CombinationsCount = GetCombinationCount(0);
    267292    }
    268293
Note: See TracChangeset for help on using the changeset viewer.