SharpNEAT

SharpNEAT 2.4.1

Download: Release v2.4.1 on github

Overview

The most significant difference between v2.4.0 and v2.4.1 is the upgrade of the redzen library to a version that uses a completely new PRNG as its source of randomness, in particular for random initialisation of new genome populations and random mutations. In v2.4.1 the default PRNG changed from George Marsaglia's xorshift128 to xoshiro256**. This new PRNG passes more of the standard statistical tests compared to xorshift128, whilst being approximately equivalent in terms of performance.

Otherwise the differences between v2.4.0 and v2.4.1 are minimal and mostly relate to API changes in the redzen library, tweaks to IO parsing (making genome and network IO locale/region agnostic), and GUI tweaks (neural network rendering layout and colours). However, given the importance of the PRNG to the operation of sharpneat it was thought prudent to run the efficacy sampling tests for this release to ensure that the change in PRNG did not result in any unexpected or undesirable effects.

The efficacy sampling histograms (below) show that sharpneat v2.4.1 continues to operate similary to v2.4.0, with the only observable difference being a possible slight performance improvment, as indicated by the slight shift to the right of the two evaluatioun count histograms. This is likely due to the new PRNG having slightly improved performance on the test platform. The efficacy sampling runs were performed using .NET Framework 4.7.1; this is the same dotnet platform used for the v2.4.0 tests.


Changes


Efficacy Sampling Tests

Efficacy sampling was performed on the two standard benchmark tasks and the results compared between this and the previous version (version 2.4.0). The resulting best fitness histograms are shown below. To recap, these histograms show the best fitness achieved on each of a large number of independent SharpNEAT runs, each of which terminates after one minute of execution (clock-time). Histograms are also provided comparing the evaluation counts achieved in each 60 second run.


Figure 1.
Comparison of best fitness histograms obtained from SharpNEAT v2.4.0 and v2.4.1;
on the Binary11 Multiplexer and Generative Sinewave tasks.

Figure 2.
Comparison of evaluation count histograms obtained from SharpNEAT v2.4.0 and v2.4.1;
on the Binary11 Multiplexer and Generative Sinewave tasks.



Appendix 1: Test Platform Environment Details

OS Name: Microsoft Windows 10 Home SP0.0
Architecture: 64-bit
.NET Framework: 4.7.1 (CLR 4.0.30319.42000)

CPU
   Brand: GenuineIntel
   Name: Intel Core i7-6700T CPU @ 2.80GHz
   Architecture: x64
   Cores: 4
   Frequency: 2808
   RAM: 16 GB


Appendix 2: Resources

R Scripts
Histogram CSV data

Colin,
July 10th, 2018



Copyright 2018 Colin Green.
This article is licensed under a Creative Commons Attribution 3.0 License