public void GerarPopulacao()
        {
            AlgoritmoGen algoritmoGen = new AlgoritmoGen(0.8, 0.01);
            Populacao    populacao    = new Populacao();

            Populacao novaPopulacao = algoritmoGen.ExecutaAG(populacao);

            Assert.NotEqual(populacao, novaPopulacao);
            Assert.NotEqual(populacao.ToString(), novaPopulacao.ToString());
        }
        private void btnExecucao_Click(object sender, System.EventArgs e)
        {
            btnExecucao.Enabled = btnPopulacao.Enabled = false;
            algoritmoGen        = new AlgoritmoGen((double)txtCrossover.Value, (double)txtMutacao.Value);
            for (int i = 0; i < txtIteracao.Value; i++)
            {
                populacao = algoritmoGen.ExecutaAG(populacao);
                mediaPopulacao.Add(i, populacao.Media);

                grafPopulacao.GraphPane.CurveList.Clear();
                grafPopulacao.GraphPane.GraphObjList.Clear();
                grafMediaPopulacao.GraphPane.CurveList.Clear();
                grafMediaPopulacao.GraphPane.GraphObjList.Clear();

                populacaoGrafico = new PointPairList();
                for (int j = 0; j < Constantes.TamanhoPopulacao; j++)
                {
                    populacaoGrafico.Add(populacao[j].Valor, populacao[j].Aptidao);
                }

                LineItem media      = paneMediaPopulacao.AddCurve("Média", mediaPopulacao, Color.Red, SymbolType.None);
                LineItem func       = panePopulacao.AddCurve("Função", curvaGrafico, Color.Red, SymbolType.None);
                LineItem individuos = panePopulacao.AddStick("Indivíduos", populacaoGrafico, Color.Blue);

                AtualizarGraficoPopulacao();
                AtualizarGraficoMediaPopulacao();
            }

            populacao.OrdenarPopulacao();

            StringBuilder pioresIndividuos = new StringBuilder();

            for (int i = 0; i < 10; i++)
            {
                pioresIndividuos.AppendLine(populacao[i].ToString());
            }

            StringBuilder melhoresIndividuos = new StringBuilder();

            for (int i = Constantes.TamanhoPopulacao - 1; i > (Constantes.TamanhoPopulacao - 1) - 10; i--)
            {
                melhoresIndividuos.AppendLine(populacao[i].ToString());
            }

            txtMelhoresIndividuos.Text = melhoresIndividuos.ToString();
            txtPioresIndividuos.Text   = pioresIndividuos.ToString();

            btnExecucao.Enabled = btnPopulacao.Enabled = true;
        }