Esempio n. 1
0
        //Mostramos los resultados finales.
        public static void DisplayResults(Chromosome bestSoFarIn)
        {
            Console.Clear();

            string display = "ASIGNACIÓN ÓPTIMA:" + "\n\n";
            string aux = "";
            int counter = 0;

            for (int i = 0; i < bestSoFarIn.Students.Length; i++)
            {
                switch (bestSoFarIn.Scholarships[i])
                {
                    case 1: aux = "Media"; counter++;  break;
                    case 2: aux = "Total"; counter++;  break;
                    default: aux = "Nada"; break;
                }

                display += bestSoFarIn.Students[i].Name + ", " + aux + "\n";
            }

            display +=  "\nValor Total Asignado: \t\t"     + bestSoFarIn.Budget +
                        "\nNúmero de Becas Asignadas: \t"  + counter;

            Console.Write(display);
            Console.ReadLine();
        }
        //SE GENERA LA POBLACIÓN INICIAL.
        //Se asigna un número aletorio entre el 0 y el 2 a cada casilla dentro del arreglo de becas de cada individuo. El  0 indica
        //que no se le asigna beca, mientras que el 1 y el 2 indican que se asignó beca media o completa, respectivamente. Una vez
        //creado, cada individuo es reparado y evaluado (ver constructor de la clase Cromosoma).
        public void GenerateInitialPopulation()
        {
            for (int i = 0; i < this.population.Length; i++)
            {
                this.population[i] = new Chromosome(this.students, this.averageMin, this.incomeMax, this.incomeMin, this.budgetMax);
                this.breedingPool[i] = new Chromosome(this.students, this.averageMin, this.incomeMax, this.incomeMin, this.budgetMax);
            }

            this.bestSoFar = this.population[0];
        }