private void AddChildren()//создание дочернего генома из двух родительских { Genom tmp = new Genom { age = 0, del = false, genomList = new List <int>(), t = 'c' }; int mid = poolLIst.Count / 2; Genom p1 = poolLIst[random.Next(mid)]; Genom p2 = poolLIst[mid + random.Next(mid)]; for (int i = 0; i < p1.genomList.Count; i++) { if (random.Next(2) == 0) { tmp.genomList.Add(p1.genomList[i]); } else { tmp.genomList.Add(p2.genomList[i]); } } tmp.Raiting(genCount, inputData, MO); poolLIst.Add(tmp); }
private void Mutation()//добавляет новй геном изменяя один из существующих { Genom tmp = new Genom { age = 0, del = false, genomList = new List <int>(), t = 'm' }; int coutn = poolLIst.Count / 10; int begin = coutn * 9; int numGenom = begin + random.Next(coutn); tmp.genomList = poolLIst[numGenom].genomList.GetRange(0, genomCount); int changGen = random.Next(genomCount); int genValue = random.Next(genCount); tmp.genomList[changGen] = genValue; tmp.Raiting(genCount, inputData, MO); poolLIst.Add(tmp); }
private void AddRandom()//создание рандомнго генома !!!!!!!!!!!! { Genom tmp = new Genom { age = 0, del = false, genomList = new List <int>(), t = 'r' }; for (int i = 0; i < genomCount; i++) { tmp.genomList.Add(random.Next(genCount)); } tmp.Raiting(genCount, inputData, MO); poolLIst.Add(tmp); }