public void Evolve() { if (Result != null) { if (!NextStep()) { IsTerminated = true; return; } } Result = Calculate(); if (OptimalResult == null || Compare(Result, OptimalResult, Manager.Strategy.OutputParameter.Optimization == Core.Strategies.Base.OutputParameterOptimizationMode.Maximize)) { OptimalResult = Result; CurrentValues.CopyTo(OptimalValues, 0); } }