private void PlotLines(Population pop, Color color)
        {
            Pen penBest = new Pen(color, 4);
            int genA, genB;

            Individuo best = pop.GetBest();

            for (int i = 0; i < ConfigurationGA.tamCromossomo; i++)
            {
                if (i < ConfigurationGA.tamCromossomo - 1)
                {
                    genA = best.GetGene(i);
                    genB = best.GetGene(i + 1);
                }
                else
                {
                    genA = best.GetGene(i);
                    genB = best.GetGene(0);
                }

                int[] vetA = TablePoints.getCoordenadas(genA);
                int[] vetB = TablePoints.getCoordenadas(genB);

                g.DrawLine(penBest, vetA[0], vetA[1], vetB[0], vetB[1]);
            }
        }
        private void BtnSalvar_Click(object sender, EventArgs e)
        {
            //Criar "Dados" para colocar os conteudos dentro dar get nos dados depois ...

            SaveFileDialog saveFileDialog1 = new SaveFileDialog();

            //define o titulo
            saveFileDialog1.Title = "Salvar Arquivo Texto";
            //Define as extensões permitidas
            saveFileDialog1.Filter = "tsp File|.tsp";
            //define o indice do filtro
            saveFileDialog1.FilterIndex = 0;
            //Atribui um valor vazio ao nome do arquivo
            saveFileDialog1.FileName = "arq_" + lbQtdeCidades.Text;
            //Define a extensão padrão como .txt
            saveFileDialog1.DefaultExt = ".tsp";
            //define o diretório padrão
            saveFileDialog1.InitialDirectory = @"c:\";
            //restaura o diretorio atual antes de fechar a janela
            saveFileDialog1.RestoreDirectory = true;
            //exibe aviso se o usuario informar um caminho que nao existe
            saveFileDialog1.CheckPathExists = true;

            //Abre a caixa de dialogo e determina qual botão foi pressionado
            DialogResult resultado = saveFileDialog1.ShowDialog();

            PlotPoints();
            if (pop != null && count_exec != 0)
            {
                PlotLines(pop, Color.Blue);
            }
            //Se o ousuário pressionar o botão Salvar
            if (resultado == DialogResult.OK)
            {
                //Cria um stream usando o nome do arquivo
                FileStream   fs     = new FileStream(saveFileDialog1.FileName, FileMode.Create);
                StreamWriter writer = new StreamWriter(fs);
                //Colocar informacoes dos dados...
                writer.WriteLine("Name: TC_AG ");
                writer.WriteLine("Type: TSP ");
                writer.WriteLine("DIMENSION: " + pointCount);
                writer.WriteLine("EDGE_WEIGHT_TYPE: EUC_2D");
                writer.WriteLine("NODE_COORD_SECTION");
                for (int i = 0; i < TablePoints.pointCount; i++)
                {
                    int[] coo = TablePoints.getCoordenadas(i);
                    writer.Write(i + 1 + " ");
                    writer.Write(coo[0] + " ");
                    writer.Write(coo[1] + "\r\n");
                }
                writer.WriteLine("EOF");
                writer.Close();
            }
        }
        private void PlotPoints()
        {
            //Vericando se a tabela possui pontos
            if (TablePoints.pointCount > 0)
            {
                for (int i = 0; i < TablePoints.pointCount; i++)
                {
                    //Criar um lapis
                    Pen blackPen = new Pen(Color.Red, 3);
                    //Vetor de coordenadas (x, y) (0, 1)
                    int[] coo = TablePoints.getCoordenadas(i);

                    Rectangle rect = new Rectangle(coo[0] - 5, coo[1] - 5, 10, 10);
                    g.DrawEllipse(blackPen, rect);
                    g.DrawString((i + 1).ToString(), new Font("Arial Black", 11), Brushes.Black, coo[0] + 3, coo[1]);
                    g.DrawString("X:" + coo[0].ToString(), new Font("Arial Black", 6), Brushes.Black, coo[0] - 20, coo[1] - 25);
                    g.DrawString("Y:" + coo[1].ToString(), new Font("Arial Black", 6), Brushes.Black, coo[0] - 20, coo[1] - 18);
                }
            }
        }