void Update() { if (RequireReset) { Model = new Model(this); Evolution = new Evolution(Model, PopulationSize, Elites); RequireReset = false; } Model.UpdateState(); Generations = 0; ElapsedTime = 0.0; if (!Model.IsConverged(Evolution.GetSolution())) { while (ElapsedTime < MaximumFrameTime && !Model.IsConverged(Evolution.GetSolution())) { // while(Generations < 1) { System.DateTime then = System.DateTime.Now; if (Evolution.Evolve()) { Assign(Evolution.GetSolution()); } Generations += 1; ElapsedTime += (System.DateTime.Now - then).Duration().TotalSeconds; } } }
private void Initialise() { if (Evolution == null) { Evolution = new Evolution(new Model(this), PopulationSize, Elites, UseThreading); } }
private void DeInitialise() { if (Evolution != null) { Evolution.Kill(); Evolution = null; } }
public void Initialise(int populationSize, int elites) { Model = new Model(transform); Evolution = new Evolution(Model, populationSize, elites, Model.GetTargetConfiguration()); Generations = 0; ElapsedTime = 0.0; IterationTime = 0.0; RequireReset = false; }