Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/15/10 23:41:33 (13 years ago)
Author:
cneumuel
Message:

#1215

  • improved exchangeability of crossover and mutation operators for parameter values
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/MetaOptimizationProblem.cs

    r5110 r5111  
    3636  [Creatable("Problems")]
    3737  [StorableClass]
    38   public sealed class MetaOptimizationProblem : SingleObjectiveProblem<IMetaOptimizationEvaluator, IParameterConfigurationCreator> {
     38  public sealed class MetaOptimizationProblem : SingleObjectiveProblem<IParameterConfigurationEvaluator, IParameterConfigurationCreator> {
    3939    public const string AlgorithmTypeParameterName = "AlgorithmType";
    4040    public const string ProblemTypeParameterName = "ProblemType";
     
    4242    public const string ParameterConfigurationParameterName = "InitialParameterConfigurationTree";
    4343    public const string RepetitionsParameterName = "Repetitions";
     44
     45    public const string IntValueManipulatorParameterName = "IntValueManipulator";
     46    public const string DoubleValueManipulatorParameterName = "DoubleValueManipulator";
     47    public const string IntValueCrossoverParameterName = "IntValueCrossover";
     48    public const string DoubleValueCrossoverParameterName = "DoubleValueCrossover";
    4449
    4550    #region Parameter Properties
     
    5863    public IValueParameter<IntValue> RepetitionsParameter {
    5964      get { return (ValueParameter<IntValue>)Parameters[RepetitionsParameterName]; }
     65    }
     66
     67    public IValueParameter<IIntValueManipulator> IntValueManipulatorParameter {
     68      get { return (ValueParameter<IIntValueManipulator>)Parameters[IntValueManipulatorParameterName]; }
     69    }
     70
     71    public IValueParameter<IDoubleValueManipulator> DoubleValueManipulatorParameter {
     72      get { return (ValueParameter<IDoubleValueManipulator>)Parameters[DoubleValueManipulatorParameterName]; }
    6073    }
    6174    #endregion
     
    91104      Parameters.Add(new ValueParameter<IntValue>(RepetitionsParameterName, "The number of evaluations for each problem.", new IntValue(3)));
    92105
     106      var validIntManipulators = new ItemSet<IIntValueManipulator>( ApplicationManager.Manager.GetInstances<IIntValueManipulator>());
     107      var validDoubleManipulators = new ItemSet<IDoubleValueManipulator>(ApplicationManager.Manager.GetInstances<IDoubleValueManipulator>());
     108      Parameters.Add(new ConstrainedValueParameter<IIntValueManipulator>(IntValueManipulatorParameterName, "", validIntManipulators, new UniformIntValueManipulator()));
     109      Parameters.Add(new ConstrainedValueParameter<IDoubleValueManipulator>(DoubleValueManipulatorParameterName, "", validDoubleManipulators, new NormalDoubleValueManipulator()));
     110
     111
    93112      Maximization = new BoolValue(false);
    94113      SolutionCreator = new RandomParameterConfigurationCreator();
    95       Evaluator = new MetaOptimizationEvaluator();
     114      Evaluator = new ParameterConfigurationEvaluator();
    96115
    97116      InitializeOperators();
     
    136155    }
    137156    private void ParameterizeEvaluator() {
    138       ((MetaOptimizationEvaluator)Evaluator).ParameterConfigurationParameter.ActualName = ((RandomParameterConfigurationCreator)SolutionCreator).ParameterConfigurationParameter.ActualName;
     157      ((ParameterConfigurationEvaluator)Evaluator).ParameterConfigurationParameter.ActualName = ((RandomParameterConfigurationCreator)SolutionCreator).ParameterConfigurationParameter.ActualName;
    139158    }
    140159    private void ParameterizeAnalyzer() {
Note: See TracChangeset for help on using the changeset viewer.