// целочисленная кодировка private void Test_Individ() { /*int LeGen = Convert.ToInt32(LengthGene.Text); * float Mut = float.Parse(Mutation.Text); * float Inv = float.Parse(Inversion.Text); * int point = (int)Math.Floor(LeGen * float.Parse(VerPoint.Text)); * int point2 = 0; // (int)Math.Floor(LeGen * (1 - float.Parse(VerPoint.Text))); * //Следить что бы р1 был меньше р2 */ Individ test_Ind1 = new Individ(Aa); Individ test_Ind2 = new Individ(Aa); MtextBox.Text = MtextBox.Text + "Особь 1" + Environment.NewLine + test_Ind1.Prin_Ind(Aa) + Environment.NewLine; MtextBox.Text = MtextBox.Text + "-------------" + Environment.NewLine; MtextBox.Text = MtextBox.Text + "Особь 2" + Environment.NewLine + test_Ind2.Prin_Ind(Aa) + Environment.NewLine; MtextBox.Text = MtextBox.Text + "-------------" + Environment.NewLine; MtextBox.Text = MtextBox.Text + "Особь 1" + Environment.NewLine + test_Ind1.Prin_Fen(Aa) + Environment.NewLine; MtextBox.Text = MtextBox.Text + "Особь 2" + Environment.NewLine + test_Ind2.Prin_Fen(Aa) + Environment.NewLine; MtextBox.Text = MtextBox.Text + "-------------" + Environment.NewLine; //проверка на поинт2 и его наличие если 0 то 1 точечное Individ[] C = Individ.PointCrossOver(Aa, test_Ind1, test_Ind2); string ind = ""; for (int i = 0; i < C.Length; i++) { ind = ind + "Потомок " + (i + 1) + Environment.NewLine + C[i].Prin_Ind(Aa) + Environment.NewLine; ind = ind + "Потомок " + (i + 1) + Environment.NewLine + C[i].Prin_Fen(Aa) + Environment.NewLine; } MtextBox.Text = MtextBox.Text + ind + Environment.NewLine; }
public void Select(Parametrs a) { Individ[] Ind_popul = new Individ[a.Popultion]; Individ f, g; Individ[] C = { new Individ(a), new Individ(a) }; // Individ[] q = new Individ[a.Tutu]; for (int i = 0; i < (int)Math.Floor(a.Popultion / 2.0); i++) { f = Turnir2(Rand_Turnir(a)); g = Turnir2(Rand_Turnir(a)); C = Individ.PointCrossOver(a, f, g); C[0].MutateAll(a); C[1].MutateAll(a); Ind_popul[2 * i] = C[0]; Ind_popul[2 * i + 1] = C[1]; Ind_popul[2 * i].Fank_out = Fank_(Ind_popul[2 * i], a); Ind_popul[2 * i + 1].Fank_out = Fank_(Ind_popul[2 * i + 1], a); } Popul_all = Ind_popul; // Mut_all(Mut, Inv, 3); }