giacomelli / GeneticSharp

GeneticSharp is a fast, extensible, multi-platform and multithreading C# Genetic Algorithm library that simplifies the development of applications using Genetic Algorithms (GAs).
MIT License
1.27k stars 332 forks source link

Add Randomizations from Redzen package as initial step to implement #60 #69

Closed rafalkozik closed 3 years ago

rafalkozik commented 4 years ago

First step to implement enhancement from #60 is to add Randomization from Redzen package and check how they perform against bundled FastRandom

colgreen commented 3 years ago

I recommend Xoshiro256StarStarRandom, i.e., this one:

https://github.com/colgreen/Redzen/blob/master/Redzen/Random/Xoshiro256StarStarRandom.cs

In the Redzen project I have marked XorShiftRandom as obsolete, as the above implementation is an evolution of that original PRNG created by George Marsaglia, and passes far more statistical tests. For more info see:

http://prng.di.unimi.it/

And I totally understand the desire to minimise dependencies on external nuget packages - it's a slippery slope to complex package management issues/pain.