コード例 #1
0
ファイル: BaseDoubleSpecies.cs プロジェクト: a-27m/vssdb
        public override BaseDoubleSpecies <TSpecies> Cross(BaseDoubleSpecies <TSpecies> Species)
        {
            if (this == Species)
            {
                //return new BaseDoubleSpecies<TSpecies> (m_Chromosomes);

                return((TSpecies)Activator.CreateInstance(typeof(TSpecies),
                                                          new object[] { m_Chromosomes }));
            }

            TSpecies Other = (TSpecies)Species;

            //В данном конкретном случае лучше работает скрещивание сразу всех хромосом

            double[] chromosomes = new double[m_Chromosomes.Length];
            for (int i = 0; i < chromosomes.Length; ++i)
            {
                chromosomes[i] = Cross(m_Chromosomes[i], Other.Cromosomes[i]);
            }

            return((TSpecies)Activator.CreateInstance(typeof(TSpecies),
                                                      new object[] { chromosomes }));
        }
コード例 #2
0
ファイル: Analytics.cs プロジェクト: a-27m/vssdb
 /// <summary>
 /// Добавить особь в список
 /// </summary>
 /// <param name="species"></param>
 public void Add(BaseDoubleSpecies <TSpecies> species)
 {
     m_bestSpecies.Add((BaseDoubleSpecies <TSpecies>)species.Clone());
 }