示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }