Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/18/17 01:15:25 (7 years ago)
Author:
pkimmesw
Message:

#2665 BenchmarkSuite, all examples, partially tested, VectorExpressions added

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Benchmark/ProblemTests.cs

    r14834 r14875  
    1010  using HeuristicLab.Problems.ProgramSynthesis.Push.Configuration;
    1111  using HeuristicLab.Problems.ProgramSynthesis.Push.Expressions;
    12   using HeuristicLab.Problems.ProgramSynthesis.Push.Generators;
    1312  using HeuristicLab.Problems.ProgramSynthesis.Push.Generators.CodeGenerator;
    1413  using HeuristicLab.Problems.ProgramSynthesis.Push.Interpreter;
     
    136135      var iterations = 100;
    137136      var best = double.MaxValue;
    138       var globalExecCounter = 0;
     137      var globalExecCounter = 0L;
    139138      var lockObj = new object();
    140139      var lockCount = new object();
     
    148147      var data = instance.LoadData(descriptor);
    149148
    150       Parallel.For(0, iterations, i => {
    151         var execCounter = 0;
    152         var results = new double[data.OriginalTrainingCount];
     149      Parallel.For(0u, iterations, i => {
     150        var execCounter = 0L;
     151        var results = new double[data.TrainingCount];
    153152        PushProgram program;
    154153
     
    156155          program = RecursiveCodeGenerator.RandomProgram(maxProgramSizeLimit, random);
    157156
    158           for (var j = 0; j < data.OriginalTrainingCount; j++) {
     157          for (var j = 0; j < data.TrainingCount; j++) {
    159158            var example = data.Examples[i];
    160159
    161160            interpreter.BooleanStack.Push(example.InputBoolean);
    162             interpreter.IntegerStack.Push(example.InputInt);
     161            interpreter.IntegerStack.Push(example.InputInteger);
    163162            interpreter.FloatStack.Push(example.InputFloat);
    164163
    165164            interpreter.Run(program);
    166165
    167             var diff = GetDiff(example.OutputInt, interpreter.IntegerStack)
     166            var diff = GetDiff(example.OutputInteger, interpreter.IntegerStack)
    168167                       + GetDiff(example.OutputFloat, interpreter.FloatStack)
    169168                       + GetDiff(example.OutputBoolean, interpreter.BooleanStack);
     
    192191      });
    193192
    194       var resultsTest = new double[data.OriginalTestCount];
    195       Parallel.For(data.OriginalTestCount, data.OriginalTestCount, i => {
     193      var resultsTest = new double[data.TestCount];
     194      Parallel.For(data.TestCount, data.TestCount, i => {
    196195        using (var interpreter = pool.Create()) {
    197196          var example = data.Examples[i];
    198197
    199198          interpreter.BooleanStack.Push(example.InputBoolean);
    200           interpreter.IntegerStack.Push(example.InputInt);
     199          interpreter.IntegerStack.Push(example.InputInteger);
    201200          interpreter.FloatStack.Push(example.InputFloat);
    202201
    203202          interpreter.Run(bestProgram);
    204203
    205           var diff = GetDiff(example.OutputInt, interpreter.IntegerStack) +
     204          var diff = GetDiff(example.OutputInteger, interpreter.IntegerStack) +
    206205                     GetDiff(example.OutputFloat, interpreter.FloatStack) +
    207206                     GetDiff(example.OutputBoolean, interpreter.BooleanStack);
Note: See TracChangeset for help on using the changeset viewer.