Changeset 15343 for branches/EfficientGlobalOptimization/HeuristicLab.Algorithms.EGO/SamplingMethods
- Timestamp:
- 08/29/17 11:28:16 (7 years ago)
- Location:
- branches/EfficientGlobalOptimization/HeuristicLab.Algorithms.EGO/SamplingMethods
- Files:
-
- 2 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/EfficientGlobalOptimization/HeuristicLab.Algorithms.EGO/SamplingMethods/LatinHyperCubeDesignCreator.cs
r15064 r15343 26 26 using HeuristicLab.Core; 27 27 using HeuristicLab.Data; 28 using HeuristicLab.Optimization; 28 29 using HeuristicLab.Encodings.PermutationEncoding; 29 30 using HeuristicLab.Encodings.RealVectorEncoding; … … 36 37 [StorableClass] 37 38 [Item("LatinHyperCubeDesignCreator", "A latin hypercube sampling strategy for real valued optimization")] 38 public class LatinHyperCubeDesignCreator : RealVectorCreator, IInitialSampling {39 public class LatinHyperCubeDesignCreator : RealVectorCreator, IInitialSampling<RealVector> { 39 40 private IValueLookupParameter<IntValue> DesignSize => (IValueLookupParameter<IntValue>)Parameters["DesignSize"]; 40 41 [Storable] … … 54 55 } 55 56 56 public RealVector[] GetSamples(int noSamples, RealVector[] existingSamples, RealVectorEncoding encoding, IRandom random) { 57 return GetSamples(random, encoding.Length, encoding.Bounds, noSamples); 57 public RealVector[] GetSamples(int noSamples, RealVector[] existingSamples, IEncoding encoding, IRandom random) { 58 var enc = encoding as RealVectorEncoding; 59 60 61 return GetSamples(random, enc.Length, enc.Bounds, noSamples); 58 62 } 59 63 -
branches/EfficientGlobalOptimization/HeuristicLab.Algorithms.EGO/SamplingMethods/UniformRandomDiscreteSampling.cs
r15340 r15343 22 22 using HeuristicLab.Common; 23 23 using HeuristicLab.Core; 24 using HeuristicLab.Encodings.RealVectorEncoding; 24 using HeuristicLab.Optimization; 25 using HeuristicLab.Encodings.IntegerVectorEncoding; 25 26 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 26 27 … … 29 30 30 31 [StorableClass] 31 [Item("UniformRandom Sampling", "A uniform random sampling strategy for real valued optimization")]32 public class UniformRandom Sampling : ParameterizedNamedItem, IInitialSampling{32 [Item("UniformRandomDiscreteSampling", "A uniform random sampling strategy for real valued optimization")] 33 public class UniformRandomDiscreteSampling : ParameterizedNamedItem, IInitialSampling<IntegerVector> { 33 34 34 35 #region HL-Constructors, Serialization and Cloning 35 36 [StorableConstructor] 36 protected UniformRandom Sampling(bool deserializing) : base(deserializing) { }37 protected UniformRandom Sampling(UniformRandomSampling original, Cloner cloner) : base(original, cloner) { }38 public UniformRandom Sampling() {37 protected UniformRandomDiscreteSampling(bool deserializing) : base(deserializing) { } 38 protected UniformRandomDiscreteSampling(UniformRandomDiscreteSampling original, Cloner cloner) : base(original, cloner) { } 39 public UniformRandomDiscreteSampling() { 39 40 } 40 41 public override IDeepCloneable Clone(Cloner cloner) { 41 return new UniformRandom Sampling(this, cloner);42 return new UniformRandomDiscreteSampling(this, cloner); 42 43 } 43 44 44 public RealVector[] GetSamples(int noSamples, RealVector[] existingSamples, RealVectorEncoding encoding, IRandom random) { 45 var res = new RealVector[noSamples]; 45 public IntegerVector[] GetSamples(int noSamples, IntegerVector[] existingSamples, IEncoding encoding, IRandom random) { 46 var enc = encoding as IntegerVectorEncoding; 47 var res = new IntegerVector[noSamples]; 46 48 for (var i = 0; i < noSamples; i++) { 47 var r = new RealVector(encoding.Length);49 var r = new IntegerVector(enc.Length); 48 50 res[i] = r; 49 for (var j = 0; j < enc oding.Length; j++) {50 var b = j % enc oding.Bounds.Rows;51 r[j] = UniformRandom(enc oding.Bounds[b, 0], encoding.Bounds[b, 1], random);51 for (var j = 0; j < enc.Length; j++) { 52 var b = j % enc.Bounds.Rows; 53 r[j] = UniformRandom(enc.Bounds[b, 0], enc.Bounds[b, 1], random); 52 54 } 53 55 } 54 56 return res; 55 57 } 56 private static double UniformRandom(double min, doublemax, IRandom rand) {57 return rand.Next Double() * (max - min) + min;58 private static int UniformRandom(int min, int max, IRandom rand) { 59 return rand.Next(min, max + 1); //TODO check wether max is inclusive or exclusive 58 60 } 59 61 } -
branches/EfficientGlobalOptimization/HeuristicLab.Algorithms.EGO/SamplingMethods/UniformRandomSampling.cs
r15064 r15343 22 22 using HeuristicLab.Common; 23 23 using HeuristicLab.Core; 24 using HeuristicLab.Optimization; 24 25 using HeuristicLab.Encodings.RealVectorEncoding; 25 26 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; … … 30 31 [StorableClass] 31 32 [Item("UniformRandomSampling", "A uniform random sampling strategy for real valued optimization")] 32 public class UniformRandomSampling : ParameterizedNamedItem, IInitialSampling {33 public class UniformRandomSampling : ParameterizedNamedItem, IInitialSampling<RealVector> { 33 34 34 35 #region HL-Constructors, Serialization and Cloning … … 42 43 } 43 44 44 public RealVector[] GetSamples(int noSamples, RealVector[] existingSamples, RealVectorEncoding encoding, IRandom random) { 45 public RealVector[] GetSamples(int noSamples, RealVector[] existingSamples, IEncoding encoding, IRandom random) { 46 var enc = encoding as RealVectorEncoding; 45 47 var res = new RealVector[noSamples]; 46 48 for (var i = 0; i < noSamples; i++) { 47 var r = new RealVector(enc oding.Length);49 var r = new RealVector(enc.Length); 48 50 res[i] = r; 49 for (var j = 0; j < enc oding.Length; j++) {50 var b = j % enc oding.Bounds.Rows;51 r[j] = UniformRandom(enc oding.Bounds[b, 0], encoding.Bounds[b, 1], random);51 for (var j = 0; j < enc.Length; j++) { 52 var b = j % enc.Bounds.Rows; 53 r[j] = UniformRandom(enc.Bounds[b, 0], enc.Bounds[b, 1], random); 52 54 } 53 55 }
Note: See TracChangeset
for help on using the changeset viewer.