Free cookie consent management tool by TermsFeed Policy Generator

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

#1215

  • improved exchangeability of crossover and mutation operators for parameter values
Location:
branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3
Files:
15 added
5 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/HeuristicLab.Problems.MetaOptimization-3.3.csproj

    r5110 r5111  
    130130  <ItemGroup>
    131131    <Compile Include="Analyzers\BestParameterConfigurationAnalyzer.cs" />
    132     <None Include="ClassDiagram1.cd" />
    133132    <None Include="Properties\AssemblyInfo.cs.frame" />
    134133    <None Include="HeuristicLabProblemsMetaOptimizationPlugin.cs.frame" />
    135134    <Compile Include="ConstrainedItemList.cs" />
    136     <Compile Include="Encodings\NullValue.cs" />
    137     <Compile Include="Encodings\ValueConfigurations\NullValueConfiguration.cs" />
    138     <Compile Include="Encodings\RangeConstraints\ConstrainedValue.cs">
     135    <Compile Include="Encoding\NullValue.cs" />
     136    <Compile Include="Encoding\RangeConstraints\PercentValueRange.cs">
    139137      <SubType>Code</SubType>
    140138    </Compile>
    141     <Compile Include="Encodings\RangeConstraints\PercentValueRange.cs" />
    142     <Compile Include="Encodings\RangeConstraints\DoubleValueRange.cs" />
    143     <Compile Include="Encodings\RangeConstraints\IntValueRange.cs" />
    144     <Compile Include="Encodings\ParameterConfigurationTree.cs" />
    145     <Compile Include="Encodings\ValueConfigurations\ValueConfiguration.cs" />
    146     <Compile Include="Encodings\ValueConfigurations\CheckedValueConfigurationCollection.cs" />
     139    <Compile Include="Encoding\ValueConfigurations\NullValueConfiguration.cs" />
     140    <Compile Include="Encoding\RangeConstraints\ConstrainedValue.cs">
     141      <SubType>Code</SubType>
     142    </Compile>
     143    <Compile Include="Encoding\RangeConstraints\DoubleValueRange.cs" />
     144    <Compile Include="Encoding\RangeConstraints\IntValueRange.cs" />
     145    <Compile Include="Encoding\ParameterConfigurationTree.cs" />
     146    <Compile Include="Encoding\ValueConfigurations\ValueConfiguration.cs" />
     147    <Compile Include="Encoding\ValueConfigurations\CheckedValueConfigurationCollection.cs" />
    147148    <Compile Include="Interfaces\ICheckedValueConfigurationCollection.cs" />
     149    <Compile Include="Operators\Crossovers\DiscreteIntValueCrossover.cs" />
     150    <Compile Include="Operators\Interfaces\IDoubleValueCrossover.cs" />
     151    <Compile Include="Operators\Interfaces\IDoubleValueManipulator.cs" />
     152    <Compile Include="Operators\Interfaces\IIntValueManipulator.cs" />
    148153    <Compile Include="Interfaces\IOptimizable.cs" />
    149154    <Compile Include="Interfaces\IParameterConfigurationCreator.cs" />
    150155    <Compile Include="Creators\RandomParameterConfigurationCreator.cs" />
    151     <Compile Include="Encodings\Crossovers\ParameterConfigurationCrossover.cs" />
     156    <Compile Include="Encoding\Crossovers\ParameterConfigurationCrossover.cs" />
    152157    <Compile Include="Interfaces\IParameterConfigurationOperator.cs" />
    153158    <Compile Include="Interfaces\IRange.cs" />
    154     <Compile Include="Evaluators\MetaOptimizationEvaluator.cs" />
    155     <Compile Include="Interfaces\IMetaOptimizationEvaluator.cs" />
     159    <Compile Include="Evaluators\ParameterConfigurationEvaluator.cs" />
     160    <Compile Include="Interfaces\IParameterConfigurationEvaluator.cs" />
    156161    <Compile Include="Interfaces\IParameterConfiguration.cs" />
    157     <Compile Include="Encodings\ParameterConfigurations\ParameterConfiguration.cs" />
     162    <Compile Include="Encoding\ParameterConfigurations\ParameterConfiguration.cs" />
    158163    <Compile Include="Interfaces\IValueConfiguration.cs" />
    159     <Compile Include="Encodings\RangeConstraints\Range.cs" />
     164    <Compile Include="Encoding\RangeConstraints\Range.cs" />
    160165    <Compile Include="Interfaces\IParameterConfigurationManipulator.cs" />
    161     <Compile Include="Manipulators\ParameterConfigurationManipulator.cs" />
     166    <Compile Include="Encoding\Manipulators\ParameterConfigurationManipulator.cs" />
     167    <Compile Include="Operators\Interfaces\IIntValueCrossover.cs" />
     168    <Compile Include="Operators\Interfaces\IValueManipulator.cs" />
     169    <Compile Include="Operators\Manipulators\UniformIntValueManipulator.cs" />
     170    <Compile Include="Operators\Manipulators\UniformDoubleValueManipulator.cs" />
     171    <Compile Include="Operators\Manipulators\NormalDoubleValueManipulator.cs" />
    162172    <Compile Include="Properties\AssemblyInfo.cs" />
    163173    <Compile Include="MetaOptimizationProblem.cs" />
  • branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IOptimizable.cs

    r5023 r5111  
    77
    88namespace HeuristicLab.Problems.MetaOptimization {
     9  public delegate void MutateDelegate(IRandom random, IOptimizable configuartion, ParameterConfigurationManipulator pcmanip);
     10  public delegate void CrossDelegate(IRandom random, IOptimizable configuartion, ParameterConfigurationCrossover pccross);
     11
    912  public interface IOptimizable : IItem {
    1013    bool IsOptimizable { get; }
    1114    bool Optimize { get; set; }
    1215    ConstrainedValue ActualValue { get; set; }
    13 
     16   
    1417    void Randomize(IRandom random);
    15     void Mutate(IRandom random);
    16     void Cross(IOptimizable other, IRandom random);
     18    void Mutate(IRandom random, MutateDelegate mutate, ParameterConfigurationManipulator pcmanip);
     19    void Cross(IRandom random, IOptimizable other, CrossDelegate cross, ParameterConfigurationCrossover pccross);
    1720   
    1821    event EventHandler IsOptimizableChanged;
  • branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IParameterConfiguration.cs

    r5009 r5111  
    1111    ICheckedValueConfigurationCollection ValueConfigurations { get; }
    1212    IItemSet<IItem> ValidValues { get; }
     13    int ActualValueConfigurationIndex { get; set; }
    1314
    1415    void Parameterize(IValueParameter parameter);
  • branches/HeuristicLab.MetaOptimization/HeuristicLab.Problems.MetaOptimization/3.3/Interfaces/IParameterConfigurationManipulator.cs

    r5009 r5111  
    88namespace HeuristicLab.Problems.MetaOptimization {
    99  public interface IParameterConfigurationManipulator : IParameterConfigurationOperator, IManipulator {
    10     ILookupParameter<ParameterConfigurationTree> ParameterConfigurationTreeParameter { get; }
     10    IValueLookupParameter<ParameterConfigurationTree> ParameterConfigurationTreeParameter { get; }
    1111  }
    1212}
  • 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.