// целочисленная кодировка 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; }
// целочисленная кодировка private void Test_Popultion() { Population test = new Population(Aa); // создание популяции //int Namber0, int nIters0, double pMut0, double pInv0 // ( (int L, float Mut, float Inv, int point, int point2, int Namber0, int nIters0) Individ test_Ind = test.Turnir2(test.Popul_all); // MtextBox.Text = MtextBox.Text + "------- + 0 + -------" + Environment.NewLine; // MtextBox.Text = MtextBox.Text + test.Print( point, point2) + Environment.NewLine; // MtextBox.Text = MtextBox.Text + test_Ind.Fank_out + Environment.NewLine; // MtextBox.Text = MtextBox.Text + test_Ind.Prin_Fen(Aa) + Environment.NewLine; Pr_param(); MtextBox.Text = MtextBox.Text + "------- + 0 + -------" + Environment.NewLine // + test.Print(Aa) //; + Environment.NewLine + "Min " + test_Ind.Fank_out + Environment.NewLine; for (int i = 0; i < Aa.Itertion; i++) { test.Mut_all(Aa); test.Select(Aa); test_Ind = test.Turnir2(test.Popul_all); MtextBox.Text = MtextBox.Text + //"-------" + (i+1) + "-------" + Environment.NewLine + // test.Print(point, point2)+ Environment.NewLine + "-----" + Environment.NewLine + // test_Ind.Fank_out + Environment.NewLine; // test.Print(Aa) + Environment.NewLine + "Min " + (i + 1) + " " + test_Ind.Fank_out + Environment.NewLine; test.Mut_all(Aa); //MtextBox.Text = MtextBox.Text + test_Ind.Prin_Fen() + Environment.NewLine; } //test_Ind = test.Turnir(test.Popul_all); MtextBox.Text = MtextBox.Text + "-------END-------" + Environment.NewLine + // test.Print(point, point2) + Environment.NewLine + "-----" + Environment.NewLine + test_Ind.Prin_Fen(Aa) + Environment.NewLine; // MtextBox.Text = MtextBox.Text + test_Ind.Prin_Fen() + Environment.NewLine; MtextBox.Text = MtextBox.Text + "-------------" + Environment.NewLine + test_Ind.xrom[0].Prin(Aa) + Environment.NewLine + test_Ind.xrom[1].Prin(Aa) + Environment.NewLine; /////для 4 x1 = test_Ind.Fenotip_1(Aa); x2 = test_Ind.Fenotip_2(Aa); }
// целочисленная кодировка с уплотнением сетки private void Test_Popultion2() { Population test = new Population(Aa); // создание популяции int i; //int Namber0, int nIters0, double pMut0, double pInv0 // ( (int L, float Mut, float Inv, int point, int point2, int Namber0, int nIters0) Individ test_Ind = test.Turnir2(test.Popul_all); // MtextBox.Text = MtextBox.Text + "------- + 0 + -------" + Environment.NewLine; // MtextBox.Text = MtextBox.Text + test.Print( point, point2) + Environment.NewLine; // MtextBox.Text = MtextBox.Text + test_Ind.Fank_out + Environment.NewLine; // MtextBox.Text = MtextBox.Text + test_Ind.Prin_Fen(Aa) + Environment.NewLine; Pr_param(); MtextBox.Text = MtextBox.Text + "------- + 0 + -------" + Environment.NewLine // + test.Print(Aa) //; + Environment.NewLine + "Min " + test_Ind.Fank_out + Environment.NewLine; double minu; for (i = 0; i < Aa.DopIter; i++) //Aa.Itertion { minu = test.TurnirMax(test.Popul_all).Fank_out - test.Turnir2(test.Popul_all).Fank_out; if ((minu > Aa.Itertion)) { test.Mut_all(Aa); test.Select(Aa); test_Ind = test.Turnir2(test.Popul_all); MtextBox.Text = MtextBox.Text + //"-------" + (i+1) + "-------" + Environment.NewLine + // test.Print(point, point2)+ Environment.NewLine + "-----" + Environment.NewLine + // test_Ind.Fank_out + Environment.NewLine; // test.Print(Aa) + Environment.NewLine + "Min " + (i + 1) + " " + test_Ind.Fank_out + Environment.NewLine; test.Mut_all(Aa); //MtextBox.Text = MtextBox.Text + test_Ind.Prin_Fen() + Environment.NewLine; } else { break; } } Aa.Length = Aa.Length * Aa.Setka; Population test2 = new Population(Aa); test2.Copi(Aa, test); Individ test_Ind2 = test2.Turnir2(test2.Popul_all); Aa.point1 = Aa.point1 * Aa.Setka; Aa.point2 = Aa.point2 * Aa.Setka; for (i = Aa.DopIter; i < 50; i++) { minu = test.TurnirMax(test.Popul_all).Fank_out - test.Turnir2(test.Popul_all).Fank_out; if ((minu > Aa.Itertion)) { test2.Mut_all(Aa); test2.Select(Aa); test_Ind2 = test2.Turnir2(test2.Popul_all); MtextBox.Text = MtextBox.Text + //"-------" + (i+1) + "-------" + Environment.NewLine + // test.Print(point, point2)+ Environment.NewLine + "-----" + Environment.NewLine + // test_Ind.Fank_out + Environment.NewLine; // test.Print(Aa) + Environment.NewLine + "Min " + (i + 1) + " " + test_Ind2.Fank_out + Environment.NewLine; test2.Mut_all(Aa); //MtextBox.Text = MtextBox.Text + test_Ind.Prin_Fen() + Environment.NewLine; } else { break; } } //test_Ind = test.Turnir(test.Popul_all); MtextBox.Text = MtextBox.Text + "-------END-------" + Environment.NewLine + // test.Print(point, point2) + Environment.NewLine + "-----" + Environment.NewLine + test_Ind2.Prin_Fen(Aa) + Environment.NewLine; // MtextBox.Text = MtextBox.Text + test_Ind.Prin_Fen() + Environment.NewLine; MtextBox.Text = MtextBox.Text + "-------------" + Environment.NewLine + test_Ind2.xrom[0].Prin(Aa) + Environment.NewLine + test_Ind2.xrom[1].Prin(Aa) + Environment.NewLine; /////для 4 x1 = test_Ind2.Fenotip_1(Aa); x2 = test_Ind2.Fenotip_2(Aa); }