Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/28/21 11:31:24 (3 years ago)
Author:
mkommend
Message:

#3075: Changed Feynman problem instances to new normal distributed RNG.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/Feynman/Feynman17.cs

    r17805 r17966  
    1010    private readonly int trainingSamples;
    1111
    12     public Feynman17() : this((int) DateTime.Now.Ticks, 10000, 10000, null) { }
     12    public Feynman17() : this((int)DateTime.Now.Ticks, 10000, 10000, null) { }
    1313
    1414    public Feynman17(int seed) {
    15       Seed            = seed;
     15      Seed = seed;
    1616      trainingSamples = 10000;
    17       testSamples     = 10000;
    18       noiseRatio      = null;
     17      testSamples = 10000;
     18      noiseRatio = null;
    1919    }
    2020
    2121    public Feynman17(int seed, int trainingSamples, int testSamples, double? noiseRatio) {
    22       Seed                 = seed;
     22      Seed = seed;
    2323      this.trainingSamples = trainingSamples;
    24       this.testSamples     = testSamples;
    25       this.noiseRatio      = noiseRatio;
     24      this.testSamples = testSamples;
     25      this.noiseRatio = noiseRatio;
    2626    }
    2727
     
    2929      get {
    3030        return string.Format("I.15.3x (x-u*t)/sqrt(1-u**2/c**2) | {0}",
    31           noiseRatio == null ? "no noise" : string.Format(System.Globalization.CultureInfo.InvariantCulture, "noise={0:g}",noiseRatio));
     31          noiseRatio == null ? "no noise" : string.Format(System.Globalization.CultureInfo.InvariantCulture, "noise={0:g}", noiseRatio));
    3232      }
    3333    }
     
    3636
    3737    protected override string[] VariableNames {
    38       get { return new[] {"x", "u", "c", "t", noiseRatio == null ? "x1" : "x1_noise"}; }
     38      get { return new[] { "x", "u", "c", "t", noiseRatio == null ? "x1" : "x1_noise" }; }
    3939    }
    4040
    41     protected override string[] AllowedInputVariables { get { return new[] {"x", "u", "c", "t"}; } }
     41    protected override string[] AllowedInputVariables { get { return new[] { "x", "u", "c", "t" }; } }
    4242
    4343    public int Seed { get; private set; }
     
    4949
    5050    protected override List<List<double>> GenerateValues() {
    51       var rand = new MersenneTwister((uint) Seed);
     51      var rand = new MersenneTwister((uint)Seed);
    5252
    5353      var data = new List<List<double>>();
    54       var x    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 5, 10).ToList();
    55       var u    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 2).ToList();
    56       var c    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 3, 20).ToList();
    57       var t    = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 2).ToList();
     54      var x = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 5, 10).ToList();
     55      var u = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 2).ToList();
     56      var c = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 3, 20).ToList();
     57      var t = ValueGenerator.GenerateUniformDistributedValues(rand.Next(), TestPartitionEnd, 1, 2).ToList();
    5858
    5959      var x1 = new List<double>();
     
    7171
    7272      if (noiseRatio != null) {
    73         var x1_noise    = new List<double>();
    74         var sigma_noise = (double) Math.Sqrt(noiseRatio.Value) * x1.StandardDeviationPop();
    75         x1_noise.AddRange(x1.Select(md => md + NormalDistributedRandom.NextDouble(rand, 0, sigma_noise)));
     73        var x1_noise = new List<double>();
     74        var sigma_noise = (double)Math.Sqrt(noiseRatio.Value) * x1.StandardDeviationPop();
     75        x1_noise.AddRange(x1.Select(md => md + NormalDistributedRandomPolar.NextDouble(rand, 0, sigma_noise)));
    7676        data.Remove(x1);
    7777        data.Add(x1_noise);
Note: See TracChangeset for help on using the changeset viewer.