Changeset 14496 for branches/MemPRAlgorithm/HeuristicLab.Algorithms.MemPR/3.3/Permutation/SolutionModel/Univariate/StaticAPI
- Timestamp:
- 12/16/16 17:10:05 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/MemPRAlgorithm/HeuristicLab.Algorithms.MemPR/3.3/Permutation/SolutionModel/Univariate/StaticAPI/Trainer.cs
r14450 r14496 27 27 28 28 namespace HeuristicLab.Algorithms.MemPR.Permutation.SolutionModel.Univariate { 29 public enum ModelBiasOptions { Rank, Fitness } 30 29 31 public static class Trainer { 30 public static ISolutionModel<Encodings.PermutationEncoding.Permutation> Train (IRandom random, IList<Encodings.PermutationEncoding.Permutation> pop, int N) {32 public static ISolutionModel<Encodings.PermutationEncoding.Permutation> TrainUnbiased(IRandom random, IList<Encodings.PermutationEncoding.Permutation> pop, int N) { 31 33 ISolutionModel<Encodings.PermutationEncoding.Permutation> model; 32 34 switch (pop[0].PermutationType) { 33 35 case PermutationTypes.Absolute: 34 model = UnivariateAbsoluteModel.Create (random, pop, N);36 model = UnivariateAbsoluteModel.CreateUnbiased(random, pop, N); 35 37 break; 36 38 case PermutationTypes.RelativeDirected: … … 44 46 return model; 45 47 } 48 49 public static ISolutionModel<Encodings.PermutationEncoding.Permutation> TrainBiased(ModelBiasOptions modelBias, IRandom random, bool maximization, IList<Encodings.PermutationEncoding.Permutation> pop, IList<double> qualities, int N) { 50 if (pop.Count != qualities.Count) throw new ArgumentException("Unequal length of population and qualities list."); 51 ISolutionModel<Encodings.PermutationEncoding.Permutation> model; 52 switch (pop[0].PermutationType) { 53 case PermutationTypes.Absolute: 54 if (modelBias == ModelBiasOptions.Rank) 55 model = UnivariateAbsoluteModel.CreateWithRankBias(random, maximization, pop, qualities, N); 56 else if (modelBias == ModelBiasOptions.Fitness) 57 model = UnivariateAbsoluteModel.CreateWithFitnessBias(random, maximization, pop, qualities, N); 58 else throw new ArgumentException(string.Format("Bias type {0} is not supported.", modelBias)); 59 break; 60 case PermutationTypes.RelativeDirected: 61 if (modelBias == ModelBiasOptions.Rank) 62 model = UnivariateRelativeModel.CreateDirectedWithRankBias(random, maximization, pop, qualities, N); 63 else if (modelBias == ModelBiasOptions.Fitness) 64 model = UnivariateRelativeModel.CreateDirectedWithFitnessBias(random, maximization, pop, qualities, N); 65 else throw new ArgumentException(string.Format("Bias type {0} is not supported.", modelBias)); 66 break; 67 case PermutationTypes.RelativeUndirected: 68 if (modelBias == ModelBiasOptions.Rank) 69 model = UnivariateRelativeModel.CreateUndirectedWithRankBias(random, maximization, pop, qualities, N); 70 else if (modelBias == ModelBiasOptions.Fitness) 71 model = UnivariateRelativeModel.CreateUndirectedWithFitnessBias(random, maximization, pop, qualities, N); 72 else throw new ArgumentException(string.Format("Bias type {0} is not supported.", modelBias)); 73 break; 74 default: throw new ArgumentException(string.Format("unknown permutation type {0}", pop[0].PermutationType)); 75 } 76 return model; 77 } 46 78 } 47 79 }
Note: See TracChangeset
for help on using the changeset viewer.