Пример #1
0
 public GeraQuadroHorarios()
 {
     Professores = new List <string>();
     HorariosRev = new Dictionary <string, int>();
     Horarios    = new List <string>();
     Restricoes  = new List <string>();
     Solucao     = new QuadroHorarios(TamanhoIndividuo);
 }
 public GeraQuadroHorarios()
 {
     Professores = new List<string>();
     HorariosRev = new Dictionary<string, int>();
     Horarios = new List<string>();
     Restricoes = new List<string>();
     Solucao = new QuadroHorarios(TamanhoIndividuo);
 }
Пример #3
0
        public override IIndividuo RealizarCruzamento(IIndividuo a, IIndividuo b)
        {
            IIndividuo novo   = new QuadroHorarios(TamanhoIndividuo);
            int        modulo = TamanhoIndividuo % 2;
            int        metade = (TamanhoIndividuo - modulo) / 2;

            for (int indice = 0; indice < metade; indice++)
            {
                novo.Cromossomos[indice] = a.Cromossomos[indice];
            }

            for (int indice = metade; indice < TamanhoIndividuo; indice++)
            {
                novo.Cromossomos[indice] = b.Cromossomos[indice];
            }

            return(novo);
        }
Пример #4
0
        public override void GerarPopulacaoInicial()
        {
            Random rnd = new Random();

            for (int individuo = 0; individuo < TamanhoPopulacao; individuo++)
            {
                List <String> profs = new List <string>();
                IIndividuo    ind   = new QuadroHorarios(TamanhoIndividuo);
                for (int cromossomo = 0; cromossomo < TamanhoIndividuo; cromossomo++)
                {
                    String p;
                    do
                    {
                        p = Professores[rnd.Next(Professores.Count)];
                    }while(profs.Count(x => x == p) > 1);

                    profs.Add(p);
                    ind.Cromossomos[cromossomo] = p;
                }
                Populacao.Add(ind);
            }
        }
        public override IIndividuo RealizarCruzamento(IIndividuo a, IIndividuo b)
        {
            IIndividuo novo = new QuadroHorarios(TamanhoIndividuo);
            int modulo = TamanhoIndividuo % 2;
            int metade = (TamanhoIndividuo - modulo) / 2;

            for (int indice = 0; indice < metade; indice++)
                novo.Cromossomos[indice] = a.Cromossomos[indice];

            for (int indice = metade; indice < TamanhoIndividuo; indice++)
                novo.Cromossomos[indice] = b.Cromossomos[indice];

            return novo;
        }
        public override void GerarPopulacaoInicial()
        {
            Random rnd = new Random();
            for (int individuo = 0; individuo < TamanhoPopulacao; individuo++)
            {
                List<String> profs = new List<string>();
                IIndividuo ind = new QuadroHorarios(TamanhoIndividuo);
                for(int cromossomo = 0; cromossomo < TamanhoIndividuo; cromossomo++)
                {
                    String p;
                    do {
                        p = Professores[rnd.Next(Professores.Count)];
                    }while(profs.Count(x => x == p) > 1);

                    profs.Add(p);
                    ind.Cromossomos[cromossomo] = p;

                }
                Populacao.Add(ind);
            }
        }