/* Metodo que imprimir os individuos do meu algoritmo*/ public void imprimirMelhorindividuo() { string linhaLista = ""; population.OrderBy(x => x.getFitness()); Individuo aux = population[0]; for (int i = 0; i < aux.returnTamanhoIndividuo(); i++) { int gene = aux.getGeneAt(i); linhaLista = String.Concat(linhaLista, Aminoacidos[gene]); } linhaLista = String.Concat(linhaLista, "-- " + aux.getFitness().ToString()); Form activeForm = Application.OpenForms["TelaInicial"]; ((ListBox)activeForm.Controls["listaMelhorIndividuo"]).Items.Add(linhaLista); }
/* Metodo que copia os genes que serão transmitidos para os individuos filhos do cruzamento*/ public Individuo CopiarGenes(Individuo pai1, Individuo pai2, Individuo filho, int tradePosition) { int x = 0; while (x < pai1.returnTamanhoIndividuo()) { if (x <= tradePosition) { filho.setGeneAt(pai1.getGeneAt(x), x); } else { filho.setGeneAt(pai2.getGeneAt(x), x); } x++; } return(filho); }
/* Metodo que copia os genes que serão transmitidos para os individuos filhos do cruzamento*/ public Individuo CopiarGenes(Individuo pai1, Individuo pai2, Individuo filho, int tradePosition) { int x = 0; while (x < pai1.returnTamanhoIndividuo()) { if (x <= tradePosition) { filho.setGeneAt(pai1.getGeneAt(x), x); } else { filho.setGeneAt(pai2.getGeneAt(x), x); } x++; } return filho; }
/* Metodo que realiza a mutação de um gene no individuo especifico*/ public Individuo MutationGene(Individuo x) { x.setGeneAt(Random.Next(1, 20), Random.Next(0, x.returnTamanhoIndividuo() - 1)); return x; }
/* Metodo que realiza a mutação de um gene no individuo especifico*/ public Individuo MutationGene(Individuo x) { x.setGeneAt(Random.Next(1, 20), Random.Next(0, x.returnTamanhoIndividuo() - 1)); return(x); }