Changeset 14875 for branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Benchmark/ProblemTests.cs
- Timestamp:
- 04/18/17 01:15:25 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Tests/Benchmark/ProblemTests.cs
r14834 r14875 10 10 using HeuristicLab.Problems.ProgramSynthesis.Push.Configuration; 11 11 using HeuristicLab.Problems.ProgramSynthesis.Push.Expressions; 12 using HeuristicLab.Problems.ProgramSynthesis.Push.Generators;13 12 using HeuristicLab.Problems.ProgramSynthesis.Push.Generators.CodeGenerator; 14 13 using HeuristicLab.Problems.ProgramSynthesis.Push.Interpreter; … … 136 135 var iterations = 100; 137 136 var best = double.MaxValue; 138 var globalExecCounter = 0 ;137 var globalExecCounter = 0L; 139 138 var lockObj = new object(); 140 139 var lockCount = new object(); … … 148 147 var data = instance.LoadData(descriptor); 149 148 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]; 153 152 PushProgram program; 154 153 … … 156 155 program = RecursiveCodeGenerator.RandomProgram(maxProgramSizeLimit, random); 157 156 158 for (var j = 0; j < data. OriginalTrainingCount; j++) {157 for (var j = 0; j < data.TrainingCount; j++) { 159 158 var example = data.Examples[i]; 160 159 161 160 interpreter.BooleanStack.Push(example.InputBoolean); 162 interpreter.IntegerStack.Push(example.InputInt );161 interpreter.IntegerStack.Push(example.InputInteger); 163 162 interpreter.FloatStack.Push(example.InputFloat); 164 163 165 164 interpreter.Run(program); 166 165 167 var diff = GetDiff(example.OutputInt , interpreter.IntegerStack)166 var diff = GetDiff(example.OutputInteger, interpreter.IntegerStack) 168 167 + GetDiff(example.OutputFloat, interpreter.FloatStack) 169 168 + GetDiff(example.OutputBoolean, interpreter.BooleanStack); … … 192 191 }); 193 192 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 => { 196 195 using (var interpreter = pool.Create()) { 197 196 var example = data.Examples[i]; 198 197 199 198 interpreter.BooleanStack.Push(example.InputBoolean); 200 interpreter.IntegerStack.Push(example.InputInt );199 interpreter.IntegerStack.Push(example.InputInteger); 201 200 interpreter.FloatStack.Push(example.InputFloat); 202 201 203 202 interpreter.Run(bestProgram); 204 203 205 var diff = GetDiff(example.OutputInt , interpreter.IntegerStack) +204 var diff = GetDiff(example.OutputInteger, interpreter.IntegerStack) + 206 205 GetDiff(example.OutputFloat, interpreter.FloatStack) + 207 206 GetDiff(example.OutputBoolean, interpreter.BooleanStack);
Note: See TracChangeset
for help on using the changeset viewer.