public void RandomDnaScore() { var c = new DnaCleaner(); var s = new Simulator(c); var score = s.AverageScore(); Assert.IsTrue(score > 500, score.ToString()); }
public Darwin(Func <Dna, double> fitnessFunc, int populationSize = 200) { this.fitnessFunc = fitnessFunc; population = new List <Individual>(200); for (int i = 0; i < populationSize; i++) { var cleaner = new DnaCleaner(); population.Add(new Individual(cleaner.Dna, fitnessFunc(cleaner.Dna))); } }
static void Main(string[] args) { var score = 0d; while (score < 490) { var d = new Darwin(x => new Simulator(new DnaCleaner(x)).AverageScore(100)); var dna = d.Evolove(1000); var c = new DnaCleaner(dna); var s = new Simulator(c); score = s.AverageScore(); Console.WriteLine($"Score: {score}"); } }