Ejemplo n.º 1
0
        /// <summary>
        /// Este método apenas converte o array de inteiros (resultado final) em um tipo DataTable para ser exibino no formulario
        /// </summary>
        private void ArrayRotaToTable(int origem, int[] rota)
        {
            this.MelhorRota = new DataTable();

            Capital   capital = new Capital();
            DataTable cidade  = capital.Cidade;

            this.MelhorRota.Columns.Add("Percurso");
            this.MelhorRota.Rows.Add(cidade.Rows[origem][0].ToString());

            foreach (int item in rota)
            {
                this.MelhorRota.Rows.Add(cidade.Rows[item][0].ToString());
            }
            this.MelhorRota.Rows.Add(cidade.Rows[origem][0].ToString());
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Este método calcula o total de distância da rota
        /// Origem = Cidade de Origem;
        /// Rota = array de inteiros, cada inteiro representa uma capital
        /// </summary>
        public static int Fitness(int origem, int[] rota)
        {
            int result = 0;

            Capital capital = new Capital();

            result += capital.Distancia(origem, rota[0]);

            for (int i = 0; i < rota.Length - 1; i++)
            {
                int capital1 = rota[i];
                int capital2 = rota[i + 1];

                result += capital.Distancia(capital1, capital2);
            }

            result += capital.Distancia(rota[rota.Length - 1], origem);
            return(result);
        }