Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Creators/RandomParameterConfigurationCreator.cs @ 4839

Last change on this file since 4839 was 4839, checked in by cneumuel, 14 years ago

#1215 worked on MetaOptimization

  • split configurations into ValueConfigurations and ParameterConfigurations
File size: 2.3 KB
Line 
1using HeuristicLab.Common;
2using HeuristicLab.Core;
3using HeuristicLab.Operators;
4using HeuristicLab.Optimization;
5using HeuristicLab.Parameters;
6using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
7
8namespace HeuristicLab.Problems.MetaOptimization {
9  /// <summary>
10  /// An operator which creates a new random permutation of integer values.
11  /// </summary>
12  [Item("RandomParameterVectorCreator", "An operator which creates a new set of parameters TODO.")]
13  [StorableClass]
14  public sealed class RandomParameterConfigurationCreator : SingleSuccessorOperator, IStochasticOperator, IParameterConfigurationCreator {
15    public override bool CanChangeName {
16      get { return false; }
17    }
18
19    public ILookupParameter<IRandom> RandomParameter {
20      get { return (LookupParameter<IRandom>)Parameters["Random"]; }
21    }
22    public ILookupParameter<IParameterConfiguration> ParameterConfigurationParameter {
23      get { return (ILookupParameter<IParameterConfiguration>)Parameters["ParameterConfiguration"]; }
24    }
25
26    public ILookupParameter<IParameterConfiguration> NewParameterConfigurationParameter {
27      get { return (ILookupParameter<IParameterConfiguration>)Parameters["NewParameterConfiguration"]; }
28    }
29
30    [StorableConstructor]
31    private RandomParameterConfigurationCreator(bool deserializing) : base(deserializing) { }
32    private RandomParameterConfigurationCreator(RandomParameterConfigurationCreator original, Cloner cloner) : base(original, cloner) { }
33    public RandomParameterConfigurationCreator()
34      : base() {
35        Parameters.Add(new LookupParameter<IRandom>("Random", "The pseudo random number generator which should be used to initialize the new random permutation."));
36        Parameters.Add(new LookupParameter<IParameterConfiguration>("ParameterConfiguration", "The new random parameter set."));
37    }
38    public override IDeepCloneable Clone(Cloner cloner) {
39      return new RandomParameterConfigurationCreator(this, cloner);
40    }
41
42    public override IOperation Apply() {
43      NewParameterConfigurationParameter.ActualValue = (IParameterConfiguration)ParameterConfigurationParameter.ActualValue.Clone();
44      //NewParameterConfigurationParameter.ActualValue.Randomize();
45      return base.Apply();
46    }
47  }
48}
Note: See TracBrowser for help on using the repository browser.