/// <summary>
/// Responsible for population migration
/// </summary>
/// <param name="iteration"></param>
private void MigratePopulation(int iteration)
{
switch (iteration)
{
case 0:
// Migrate values between populations
Parallel.For(0, 5,
migrationIteration =>
_populationArray[migrationIteration].Migrate(_populationArray[5 + migrationIteration],
15, new EliteSelection()));
break;
case 1:
// Migrate values between populations
for (int i = 0; i < 10; i += 2)
{
_populationArray[i].Migrate(_populationArray[i + 1], 15, new EliteSelection());
}
break;
//case 2:
// // Migrate values between populations
// Parallel.For(0, 5,
// migrationIteration =>
// _populationArray[migrationIteration].Migrate(_populationArray[9 - migrationIteration],
// 15, new EliteSelection()));
// break;
}
}