//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]; }