public void Actualizare() { SeteazaParintii(); for (int i = 0; i < numarTotalCromozomi; i++) { Cromozom[] parintiTemp = ExtrageDoiParinti(); Cromozom temp = new Cromozom(parintiTemp[0], parintiTemp[1]); temp.Mutatie(); cromozomi[i] = temp; } numarGeneratie++; }
public Populatie(int numarDeCromozomi, int numarDeCromozomiParinti) { numarTotalCromozomi = numarDeCromozomi; numarCromozomiParinti = numarDeCromozomiParinti; cromozomi = new Cromozom[numarTotalCromozomi]; parinti = new Cromozom[numarCromozomiParinti]; for (int i = 0; i < numarTotalCromozomi; i++) { cromozomi[i] = new Cromozom(); } numarGeneratie = 1; }
public void Ordonare() { for (int i = 0; i < numarTotalCromozomi - 1; i++) { for (int j = i + 1; j < numarTotalCromozomi; j++) { if (cromozomi[i].Adecvare() < cromozomi[j].Adecvare()) { Cromozom c = cromozomi[i]; cromozomi[i] = cromozomi[j]; cromozomi[j] = c; } } } }
public Cromozom(Cromozom parinteA, Cromozom parinteB) { gene = new int[Populatie.numarGene]; int punctTaietura = Program.rnd.Next(gene.Length); for (int i = 0; i < gene.Length; i++) { if (i < punctTaietura) { gene[i] = parinteA.gene[i]; } else { gene[i] = parinteB.gene[i]; } } }