private void InitializePopulation() { for (int i = 0; i < populationSize; i++) { _population[i] = EQChromosome.CreateRandomChromosome(numTipoA, numTipoB, numTipoC); } }
/// <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); }
/// <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)); }
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); }
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; }