private void HandleBatchRunIndividualEvaluated(EvaluatedIndividualEventArgs e) { if (e.AverageSpeed > 0) { batchRunIndividualEvaluatedInfo += "Average individual: "; batchRunIndividualEvaluatedInfo += "["; for (int ii = 0; ii < e.AverageIndividualSpeedIndex.Count - 1; ii++) { batchRunIndividualEvaluatedInfo += e.AverageIndividualSpeedIndex[ii].ToString("0") + " "; } batchRunIndividualEvaluatedInfo += e.AverageIndividualSpeedIndex[e.AverageIndividualSpeedIndex.Count - 1].ToString("0") + "]" + ", "; batchRunIndividualEvaluatedInfo += "Index: " + e.SpeedProfileIndex.ToString("0").PadLeft(12) + ", "; batchRunIndividualEvaluatedInfo += "Average speed: " + (e.AverageSpeed * 3.6).ToString("0.0").PadLeft(4) + ", "; batchRunIndividualEvaluatedInfo += "Fitness: " + e.Fitness.ToString("0.00000").PadLeft(9) + ", "; batchRunIndividualEvaluatedInfo += "================================= \r\n"; } else { batchRunIndividualEvaluatedInfo += e.Fitness.ToString("0.00000").PadLeft(9) + ", "; batchRunIndividualEvaluatedInfo += "["; for (int ii = 0; ii < e.AverageIndividualSpeedIndex.Count - 1; ii++) { batchRunIndividualEvaluatedInfo += e.AverageIndividualSpeedIndex[ii].ToString("0") + " "; } batchRunIndividualEvaluatedInfo += e.AverageIndividualSpeedIndex[e.AverageIndividualSpeedIndex.Count - 1].ToString("0") + "]" + ", "; batchRunIndividualEvaluatedInfo += e.SpeedProfileIndex.ToString("0").PadLeft(12) + "\r\n"; } }
private void ThreadSafeHandleBatchRunIndividualEvaluated(object sender, EvaluatedIndividualEventArgs e) { if (InvokeRequired) { this.Invoke(new MethodInvoker(() => HandleBatchRunIndividualEvaluated(e))); } else { HandleBatchRunIndividualEvaluated(e); } }
private void OnNewBestIndividualFound(List <int> individualSpeedIndexList, long speedProfileIndex, double averageSpeed, double fitness, OptimizableStructure individual, int individualIndexInGeneration, int generationIndex, bool isIndividualFeasible) { if (NewBestIndividualFound != null) { EvaluatedIndividualEventArgs e = new EvaluatedIndividualEventArgs(individualSpeedIndexList, speedProfileIndex, averageSpeed, fitness, individual, individualIndexInGeneration, generationIndex, isIndividualFeasible); EventHandler <EvaluatedIndividualEventArgs> handler = NewBestIndividualFound; handler(this, e); } }