public static List<Cromossomo> roleta(List<Cromossomo> cromossomos, int nElementos) {
        int dimensao = cromossomos.size();
        double fitnessTotal = 0;
        double[] fitness = new double[dimensao];

        //pegar o primeiro fitness como menor temporariamente
        double menorFitness = 1 / cromossomos.get(0).getFitness();
        for (int i = 0; i < dimensao; i++) {
            double fitnessAtual = 1 / cromossomos.get(i).getFitness();
            if (fitnessAtual < menorFitness) {
                menorFitness = fitnessAtual;
            }
            fitness[i] = fitnessAtual;
        }

        //faz o escalonamento
        for (int i = 0; i < dimensao; i++) {
            fitness[i] = fitness[i] + menorFitness;
            fitnessTotal += fitness[i];
            fitness[i] = fitnessTotal;
        }
        ArrayList<Cromossomo> cromossomosSelecionados = new ArrayList<>();
        for (int i = 0; i < nElementos; i++) {
            double rand = 0 + (Math.random() * ((fitnessTotal - 0)));
            for (int j = 0; j < dimensao; j++) {
                if (rand <= fitness[j]) {
                    cromossomosSelecionados.add(cromossomos.get(i));
                }
            }
        }
        if (cromossomosSelecionados.size() != nElementos) {
            //throw new RuntimeException("Nao foi achado o fitness na roleta");
        }
        return cromossomosSelecionados;

    }