Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/16/16 17:10:05 (7 years ago)
Author:
abeham
Message:

#2701:

  • Reusing similiarty calculator in BinaryMemPR
  • Fixing distance calculation for linear linkage and LinearLinkageMemPR
  • Small changes to base algorithm
  • Added biased model trainer for permutation (rank and fitness)
  • Fixing best known quality calculation for GCP
File:
1 copied

Legend:

Unmodified
Added
Removed
  • branches/MemPRAlgorithm/HeuristicLab.Algorithms.MemPR/3.3/Permutation/SolutionModel/Univariate/BiasedModelTrainer.cs

    r14487 r14496  
    2424using HeuristicLab.Common;
    2525using HeuristicLab.Core;
     26using HeuristicLab.Data;
    2627using HeuristicLab.Encodings.PermutationEncoding;
    2728using HeuristicLab.Optimization;
     29using HeuristicLab.Parameters;
    2830using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2931
    3032namespace HeuristicLab.Algorithms.MemPR.Permutation.SolutionModel.Univariate {
    31   [Item("Unbiased Univariate Model Trainer (Permutation)", "", ExcludeGenericTypeInfo = true)]
     33  [Item("Biased Univariate Model Trainer (Permutation)", "", ExcludeGenericTypeInfo = true)]
    3234  [StorableClass]
    33   public class UniasedModelTrainer<TContext> : NamedItem, ISolutionModelTrainer<TContext>
     35  public class BiasedModelTrainer<TContext> : ParameterizedNamedItem, ISolutionModelTrainer<TContext>
    3436    where TContext : IPopulationBasedHeuristicAlgorithmContext<SingleObjectiveBasicProblem<PermutationEncoding>, Encodings.PermutationEncoding.Permutation>,
    3537    ISolutionModelContext<Encodings.PermutationEncoding.Permutation> {
    36    
     38
     39    [Storable]
     40    private IValueParameter<EnumValue<ModelBiasOptions>> modelBiasParameter;
     41    public ModelBiasOptions ModelBias {
     42      get { return modelBiasParameter.Value.Value; }
     43      set { modelBiasParameter.Value.Value = value; }
     44    }
     45
    3746    [StorableConstructor]
    38     protected UniasedModelTrainer(bool deserializing) : base(deserializing) { }
    39     protected UniasedModelTrainer(UniasedModelTrainer<TContext> original, Cloner cloner) : base(original, cloner) { }
    40     public UniasedModelTrainer() {
    41       Name = ItemName;
    42       Description = ItemDescription;
     47    protected BiasedModelTrainer(bool deserializing) : base(deserializing) { }
     48    protected BiasedModelTrainer(BiasedModelTrainer<TContext> original, Cloner cloner)
     49      : base(original, cloner) {
     50      modelBiasParameter = cloner.Clone(original.modelBiasParameter);
     51    }
     52    public BiasedModelTrainer() {
     53      Parameters.Add(modelBiasParameter = new ValueParameter<EnumValue<ModelBiasOptions>>("Model Bias", "What kind of bias towards better individuals is chosen."));
    4354    }
    4455
    4556    public override IDeepCloneable Clone(Cloner cloner) {
    46       return new UniasedModelTrainer<TContext>(this, cloner);
     57      return new BiasedModelTrainer<TContext>(this, cloner);
    4758    }
    4859
    4960    public void TrainModel(TContext context) {
    50       context.Model = Trainer.Train(context.Random, context.Population.Select(x => x.Solution).ToList(), context.Problem.Encoding.Length);
     61      context.Model = Trainer.TrainBiased(ModelBias, context.Random, context.Problem.Maximization, context.Population.Select(x => x.Solution).ToList(), context.Population.Select(x => x.Fitness).ToList(), context.Problem.Encoding.Length);
    5162    }
    5263  }
Note: See TracChangeset for help on using the changeset viewer.