Beispiel #1
0
        public static Gen Aleatoreo()
        {
            var asg = AsignaturaHelper.Aleatorea();
            var hor = HorarioHelper.HorarioAleatoreo();

            return(new Gen()
            {
                Asignatura = asg,
                Aula = AulaHelper.Aleatorea(asg.TipoAula, hor),
                Horario = hor
            });
        }
Beispiel #2
0
        public override void Evaluar()
        {
            int valor = 0;
            var genes = Genes.Select(gen => new
            {
                Horario    = gen.Horario,
                Asignatura = gen.Asignatura.Nombre,
                Aula       = gen.Aula.Nombre,
                Profesor   = gen.Asignatura.NombreProfesor
            });

            valor += 10 * genes
                     .GroupBy(gen => new
            {
                CodigoProf = gen.Profesor,
                Horario    = gen.Horario
            })
                     .Where(gen => gen.Count() > 1)
                     .Count();


            valor += 10 * genes
                     .GroupBy(gen => new
            {
                Horario = gen.Horario,
                Aula    = gen.Aula
            })
                     .Where(res => res.Count() > 1)
                     .Count();

            valor += 5 * genes.
                     GroupBy(gen => new
            {
                Asignatura = gen.Asignatura,
                Aula       = gen.Aula
            })
                     .Where(res => res.Count() != 4)
                     .Count();

            valor += 3 * genes
                     .GroupBy(gen => new
            {
                Asignatura = gen.Asignatura,
                Aula       = gen.Aula,
                Dia        = HorarioHelper.Dia(gen.Horario)
            })
                     .Where(res => res.Count() > 1)
                     .Count();



            this.Fitness = valor;
        }
Beispiel #3
0
        public override List <Individual> getNeighbourhood()
        {
            individuos.Clear();
            int horarios = HorarioHelper.NumHorarios();

            for (int i = 0; i < 5; i++)
            {
                var genes = Genes
                            .Select(gen =>
                {
                    return(new Gen()
                    {
                        Asignatura = AsignaturaHelper.Aleatorea(),
                        Coste = 0,
                        Horario = gen.Horario,
                        Aula = gen.Aula
                    });
                });
                individuos.Add(new IndividuoPrescolar(genes));
            }
            return(individuos);
        }