Sharpneat Versions Save

SharpNEAT - Evolution of Neural Networks. A C# .NET Framework.

v4.1.0

4 months ago

v4.0.1

9 months ago

Minor change release

This release make one small change. The connection weight random deltas are sampled from a gaussian distribution; this changes changes the sigma of that distribution from 0.1 to 0.01. This matches the behaviour of SharpNEAT 2.x.

The intention for the SharpNEAT 4.0 release was to keep parameters such as these identical to SharpNEAT 2.x, so that the core neuroevolution algorithm is as close as possible between the two versions, despite the big architectural overhaul that was made as part of the 4.0 release. This allows us to compare the performance/efficacy of 2.x and 4.x, to give some assurance that there isn't some bug/flaw in the new 4.0 code base that impacts performance.

Future releases can then be free to explore tuning of hyper parameters and such, once we have established that 4.x performs at least as well as 2.x.

v4.0.0

1 year ago

For details see: SharpNEAT 4.0.0 Release Notes

Major rewrite/refactor performed over a period of about 6 years (between 2017 and 2022).

The target platform is now .NET [Core] 7. Previously SharpNEAT was a .NET Framework project, with some parts later targeting .NET Standard. All code in this project now targets .NET 7.

This release contains significant performance improvements, through use of Span<T>, ArrayPool, Vector<T>, and general improvements, e.g. to reduce memory allocations and Garbage Collection overhead.

Improved / cleaner API, code structure, and just generally provides a good foundation for future NEAT research.

v2.4.4

3 years ago

v2.4.4

Nuget updates

  • System.Memory 4.5.2 -> 4.5.4
  • System.Memory 4.5.3 -> 4.5.4
  • System.Runtime.CompilerServices.Unsafe 4.5.2 -> 4.7.1
  • Redzen 9.0.0 -> 9.1.1

Prey capture task

  • Fix: The prey's stochastic movement was not as defined in the cited paper. The fix will make the prey more likely to move away from the agent, and thus make the task more difficult.
  • Some code style improvements, and minor performance tweaks.
  • Changed the task experiment parameters; elitism and selection proportions changed to 0.66 to try and help maintain population diversity.
  • Fix: W() function corrected to cause prey to move away from the predator, not directly towards it!
  • Fix: Cartesian to polar coord conversion called Atan2() with x and y parameters swapped, thus rotating the xy plane around y=x.
  • Fix/improvement: Initial position of agent relative to prey was not a symmetrical area around the prey, due to use of Math.Floor() instead of Math.Truncate().
  • Performance improvement: Use lookup table for atan2(y,x) function.
  • Performance improvement: Avoid square root operation by comparing squared lengths instead of lengths.

Code quality

  • Multiple application of the readonly modifier.

v2.4.3

4 years ago

v2.4.2

5 years ago

v2.4.1

5 years ago

v2.4.0

6 years ago

v2.3.1

6 years ago

Full details

Summary

No major changes. This is a marker release to be used to record and report efficacy sampler results against with the gcServer setting enabled which appears to result in a significant performance improvement. Note that the main SharpNEATGUI assemble/project was already set to use gcServer mode, therefore the main GUI app is not affected by that change.

Details

Added OutputSignalArray and OutputMappingSignalArray. These ensure that the neural net output values are always in the interval [0,1] even if the activation output interval is beyond that range.

Activation functions review and clean-up.

Efficacy sampler: Enabled gcServer setting; this seems to result in a significant performance improvement; it may also prevent a sporadic ExecutionEngine exception.

v2.3.0

7 years ago

Fixes to innovation ID re-use. Performance improvement in k-means speciation.

See SharpNEAT 2.3.0 for details.