public Osobnik Selekcja_Turniej() { Osobnik[] Osobniki = new Osobnik[RozmiarPopulacji]; Random rng = new Random(); Osobnik[] turniej = new Osobnik[RozmiarTurnieju]; for (int i = 0; i < RozmiarTurnieju; i++) { turniej[i] = Osobniki[rng.Next(RozmiarPopulacji)]; } return(turniej.OrderByDescending(x => Osobnik.FunkcjaDopasowania(x.m_fenotyp)).First()); // zwraca najlepszego z turnieju` }
public static Osobnik NaprawOsobnika(Osobnik osobnik, Dziedzina dziedzina) { if (FunkcjaDopasowania(osobnik.m_fenotyp) > dziedzina.Max) { osobnik.m_fenotyp = dziedzina.Max; } else if (FunkcjaDopasowania(osobnik.m_fenotyp) < dziedzina.Min) { osobnik.m_fenotyp = dziedzina.Min; } return(osobnik); }
public static double Fenotyp(Osobnik osobnik) { return(-2 + osobnik.m_genotyp * 1.0 / 1000000000); }