private static void Main(string[] args) { Środowisko srodowisko = new Środowisko(); srodowisko.Populacja = new Populacja(); srodowisko.Populacja.GenerujPierwsząPopulację(); // Tutaj mamy się kręcić w pętli przez 1000 pokoleń tak czy tak, więc wywalone //if (srodowisko.WarunekStopu()) // Stop(); for (int i = 0; i < 1000; i++) { if (i % 50 == 0) { Console.WriteLine("x=" + Populacja.NajlepszyWHistorii.Fenotyp + ", f(x)=" + Środowisko.Funkcja(Populacja.NajlepszyWHistorii.Fenotyp)); } srodowisko.Populacja.GenerujNowąPopulację_Turniej(); } Osobnik x = Populacja.NajlepszyWHistorii; Console.WriteLine("x=" + x.Fenotyp + ", f(x)=" + Środowisko.Funkcja(x.Fenotyp)); Console.ReadKey(); }
public Osobnik Selekcja_Turniej() { 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 => Środowisko.Funkcja(x.Fenotyp)).First()); // zwraca najlepszego z turnieju` }