// Consult readme.md for information about how to run this program.
// Consult readme.md for additional information about how to run this program.
// Consult fjn1g13@soton.ac.uk if you don't understand something.
// Consult fjn1g13@soton.ac.uk if you don't understand something.
// This code is not exemplar C#; rather, the idea is that it should be fairly easy for anyone to reimplement the model from looking at it without taking too long to run.
// This code is not exemplar C#; rather, the idea is that it should be fairly easy for anyone to reimplement the model, but it should also reproduce the experiments from the paper.
staticvoidMain()
staticvoidMain()
{
{
// none of our matrices are big enough to warrent multi-threading
// none of our matrices are big enough to warrant multi-threading
MathNet.Numerics.Control.UseSingleThread();
MathNet.Numerics.Control.UseSingleThread();
// runs a bunch of experiments with the 'standard' configuration, only varying Z
// runs a bunch of experiments with the 'standard' configuration, only varying Z
...
@@ -279,6 +279,36 @@ namespace IVMCTrim
...
@@ -279,6 +279,36 @@ namespace IVMCTrim
return(double)wins.Last()/runonEpisodeCount;
return(double)wins.Last()/runonEpisodeCount;
}
}
/// <summary>
/// Runs a few episodes, recording the fitness per evolutionary step with the given sample period.
/// </summary>
/// <returns>
/// A list of <see cref="DataPoint"/> comprising the evolutionary step and fitness.