private Result calculateAverageFitness(Result result)
	{
		ArrayList<Double> dataPoints = new ArrayList<>();
		float fitness = 0f;
		float fitness_stdev = 0f;
		int N = 0;

		for (int Run = 0; Run < rawGenerationData.size(); Run++)
		{
			for (int generation = 0; generation < rawGenerationData.get(Run).size(); generation++)
			{
				for (int cell = 0; cell < rawGenerationData.get(Run).get(generation).size(); cell++)
				{
					fitness += rawGenerationData.get(Run).get(generation).get(cell).getFitnessNorm();
					dataPoints.add(rawGenerationData.get(Run).get(generation).get(cell).getFitnessNorm());
					N++;
				}
			}
		}
		result.averageFitness = fitness / N;

		for (int i = 0; i < dataPoints.size(); i++)
		{
			Double dataPoint = dataPoints.get(i);
			fitness_stdev += Math.pow(dataPoint - result.averageFitness, 2);
		}
		result.averageFitness_stdev = (float) (Math.sqrt(fitness_stdev / N));

		return result;
	}