public GeneticIndividualItem GenerateRandomItem(int pos) { var d = _recognizer.Target.Width / _recognizer.DigitsCount; var ret = new GeneticIndividualItem(_recognizer, d * pos + (d - _recognizer.DigitWidth) / 2, (_recognizer.Target.Height - _recognizer.DigitHeight) / 2 ); ret = GeneticIndividualItem.Mutation(ret); return(ret); }
public static GeneticIndividual Mutation(GeneticIndividual a) { var ret = new GeneticIndividual(a._recognizer); var idx = Random.Next(a._recognizer.DigitsCount); for (var i = 0; i < a.Items.Length; i++) { ret.Items[i] = i == idx ? GeneticIndividualItem.Mutation(a.Items[i]) : a.Items[i]; } return(ret); }