Esempio n. 1
0
 private void InitializePopulation()
 {
     for (int i = 0; i < populationSize; i++)
     {
         _population[i] = EQChromosome.CreateRandomChromosome(numTipoA, numTipoB, numTipoC);
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Operação de crossover entre dois cromossomos. 
        /// <param name="pair"> Recebe um cromossomo (par) que "cruzará" como atual.  </param>
        /// <returns> Retorna um filho com genes do cromossomo atual e do par. </returns>
        /// </summary>
        public EQChromosome Crossover(EQChromosome pair)
        {
            var filho = new ClassCarga[_positions.Length];

            for (int i = 0; i < Positions.Length; i++)
            {
                filho[i] = (i % 2 == 0 ? _positions[i] : pair._positions[i]);
            }

            return new EQChromosome(filho);
        }
Esempio n. 3
0
        /// <summary>
        /// Operação de crossover entre dois cromossomos.
        /// <param name="pair"> Recebe um cromossomo (par) que "cruzará" como atual.  </param>
        /// <returns> Retorna um filho com genes do cromossomo atual e do par. </returns>
        /// </summary>
        public EQChromosome Crossover(EQChromosome pair)
        {
            var filho = new ClassCarga[_positions.Length];

            for (int i = 0; i < Positions.Length; i++)
            {
                filho[i] = (i % 2 == 0 ? _positions[i] : pair._positions[i]);
            }

            return(new EQChromosome(filho));
        }
Esempio n. 4
0
        private List <Carga> ShowChromossome(EQChromosome find)
        {
            var lst = new List <Carga>();
            var i   = 0;

            foreach (var pos in find.Positions)
            {
                if (pos == null)
                {
                    continue;
                }
                //var getSize = EQChromosome.GetTamByTipo(pos.Tipo);
                lst.Add(new Carga
                {
                    X       = pos.posX,
                    Y       = pos.posY,
                    Largura = pos.Largura,
                    Altura  = pos.Altura,
                    Tipo    = pos.Tipo
                });
            }
            return(lst);
        }
Esempio n. 5
0
        private List<Carga> ShowChromossome(EQChromosome find)
        {
            var lst = new List<Carga>();
            var i = 0;

            foreach (var pos in find.Positions)
            {
                if (pos == null)
                    continue;
                //var getSize = EQChromosome.GetTamByTipo(pos.Tipo);
                lst.Add(new Carga
                            {
                                X = pos.posX,
                                Y = pos.posY,
                                Largura = pos.Largura,
                                Altura = pos.Altura,
                                Tipo = pos.Tipo
                            });
            }
            return lst;
        }