public override void Evaluar() { return; int valor = 0; //se sumará el coste de los horarios asignados //valor += Genes // .Select(gen => gen.Coste) // .Sum(); var genes = Genes.Select(gen => new { Profesor = gen.Asignatura.NombreProfesor, Horario = gen.Horario, Asignatura = gen.Asignatura.Nombre, Aula = gen.Aula.Nombre }); //se calcula el número de apariciones del profesor //en el mismo horario valor += 5 * genes .GroupBy(gen => new { CodigoProf = gen.Profesor, Horario = gen.Horario }) .Where(gen => gen.Count() > 1) .Count(); //se calcula el número de apariciones del profesor //en el mismo horario valor += 5 * Genes .GroupBy(gen => new { Horario = gen.Horario, Aula = gen.Aula.Nombre }) .Where(res => res.Count() > 1) .Count(); this.Fitness = valor; }