public double Evaluate(IChromosome chromosome) { var c = chromosome as CarChromosome; ChromosomesToBeginEvaluation.Add(c); do { Thread.Sleep(1000); c.Fitness = c.MaxDistance + c.MaxVelocity; } while (!c.Evaluated); ChromosomesToEndEvaluation.Add(c); do { Thread.Sleep(100); } while (!c.Evaluated); return(c.MaxDistance + c.MaxVelocity); }
public double Evaluate(IChromosome chromosome) { var c = chromosome as WallBuilderChromosome; ChromosomesToBeginEvaluation.Add(c); var remainingTime = m_secondsForEvaluation; do { Thread.Sleep(1000); remainingTime--; } while (!c.Evaluated && remainingTime > 0); ChromosomesToEndEvaluation.Add(c); do { Thread.Sleep(100); } while (!c.Evaluated); return(c.BricksEndPositions.Max(t => t.y)); }
public double Evaluate(IChromosome chromosome) { var c = chromosome as ShooterChromosome; ChromosomesToBeginEvaluation.Add(c); do { Thread.Sleep(100); c.Fitness = c.MinDistanceFromTarget; //Debug.Log("Begin Evaluation : " + c.ID + " : " + c.Fitness); } while (!c.Evaluated); ChromosomesToEndEvaluation.Add(c); do { Thread.Sleep(100); //Debug.Log("End Evaluation : " + c.ID + " : " + c.Fitness); } while (!c.Evaluated); return(c.MinDistanceFromTarget); }