Changeset 14496 for branches/MemPRAlgorithm/HeuristicLab.Algorithms.MemPR/3.3/Permutation/SolutionModel/Univariate/BiasedModelTrainer.cs
- Timestamp:
- 12/16/16 17:10:05 (7 years ago)
- File:
-
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/MemPRAlgorithm/HeuristicLab.Algorithms.MemPR/3.3/Permutation/SolutionModel/Univariate/BiasedModelTrainer.cs
r14487 r14496 24 24 using HeuristicLab.Common; 25 25 using HeuristicLab.Core; 26 using HeuristicLab.Data; 26 27 using HeuristicLab.Encodings.PermutationEncoding; 27 28 using HeuristicLab.Optimization; 29 using HeuristicLab.Parameters; 28 30 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 29 31 30 32 namespace HeuristicLab.Algorithms.MemPR.Permutation.SolutionModel.Univariate { 31 [Item(" Unbiased Univariate Model Trainer (Permutation)", "", ExcludeGenericTypeInfo = true)]33 [Item("Biased Univariate Model Trainer (Permutation)", "", ExcludeGenericTypeInfo = true)] 32 34 [StorableClass] 33 public class UniasedModelTrainer<TContext> :NamedItem, ISolutionModelTrainer<TContext>35 public class BiasedModelTrainer<TContext> : ParameterizedNamedItem, ISolutionModelTrainer<TContext> 34 36 where TContext : IPopulationBasedHeuristicAlgorithmContext<SingleObjectiveBasicProblem<PermutationEncoding>, Encodings.PermutationEncoding.Permutation>, 35 37 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 37 46 [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.")); 43 54 } 44 55 45 56 public override IDeepCloneable Clone(Cloner cloner) { 46 return new UniasedModelTrainer<TContext>(this, cloner);57 return new BiasedModelTrainer<TContext>(this, cloner); 47 58 } 48 59 49 60 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); 51 62 } 52 63 }
Note: See TracChangeset
for help on using the changeset viewer.