Olá Diego, mais uma vez muito obrigado pela ajuda!
É isso mesmo, o indivíduo estava vazio, agora não entendi, porque sempre carrego o individuo_capacitado com um Individuo passado para a classe. - individuo_capacitado.addAll(Individuo); -
Em alguns momentos ele funciona, em outros não. Observei que é aproximadamente na 15ª geração que ele dá o erro. Daí conseguir “tratar” gerando o indivíduo novamente quando ocorre o erro.
- if(individuo_capacitado.size() == 0){
individuo_capacitado =
AG_PMPC_Gera_Individuos_Aleatorios.gera_individuo(tamanho_instancia, numero_medianas, demanda, matriz, capacidade);
} -
Agora,
tenho que gerar 80 indivíduo e armazená-los no ArrayList populacao_inicial - ArrayList populacao_inicial= new ArrayList<>(); -
Entretanto, quando o individuo é introduzido na populacao_inicial, ele sobrepõe os demais que já estão lá dentro, ou seja, quando chega ao final os 80 indivíduos estão todos iguais.
public class AG_PMPC_Pop_Inicial {
public static ArrayList AG_populacao_inicial(int tamanho_instancia, int
numero_medianas, int[]demanda, int[]coord_x, int []coord_y,ArrayList<ArrayList>
matriz,int[]capacidade, int tamanho_populacao){//, int [] demanda, int[] coord_x, int []coord_y, int capacidade){
float fo_Individuo= 0;
int criterio_parada = 0;
ArrayList<ArrayList> populacao_inicial= new ArrayList<>();
while(criterio_parada < tamanho_populacao){
ArrayList<Integer> Individuo = new ArrayList<>(tamanho_instancia);
Individuo = AG_PMPC_Gera_Individuos_Aleatorios.gera_individuo(tamanho_instancia,
numero_medianas, demanda, matriz, capacidade);
fo_Individuo = AG_PMPC_Avalia_fo.avalia(Individuo, tamanho_instancia, matriz);
populacao_inicial.add(Individuo);
criterio_parada++;
}
return populacao_inicial;
}
}