Example #1
0
        // целочисленная кодировка
        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;
        }
Example #2
0
        // целочисленная кодировка
        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);
        }
Example #3
0
        // целочисленная кодировка  с уплотнением сетки
        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);
        }