private void asignarFitness() {
        //Marcar la poblacion como no dominada
        for (Individuo ind : poblacion) {
            ind.setDominado(false);
        }

        int frentes = 0; // cuenta de frentes
        double df = (double) qap.getN(); // dummyFitness para la poblacion inicial

        List<Individuo> poblacionaux = new ArrayList<Individuo>();

        poblacionaux.addAll(poblacion); //poblacionaux para sacar individuos

        while (!poblacionaux.isEmpty()) {
            frentes++;
            for (int i = 0; i < poblacionaux.size(); i++) {
                for (int j = 0; j < poblacionaux.size(); j++) {
                    //comparar los individuos
                    if ((i != j)
                            && dominaA(poblacionaux.get(j), poblacionaux.get(i))) {

                        poblacionaux.get(i).setDominado(true);
                        break;
                    }
                }
            }
            // sacar todos los individuos no dominados
            List<Individuo> frentePareto = new ArrayList<Individuo>();
            for (Individuo ind : poblacionaux) {
                //boolean b = ind.isDominado();
                if (!ind.isDominado()) {
                    //asignarles el dummyFitness
                    ind.setFitness((double) df);
                    frentePareto.add(ind);
                }
            }
            fitnessSharing(frentePareto);

            // df para el siguiente frente
            df = siguienteDF(frentePareto);

            removerDePoblacion(poblacionaux, frentePareto);

            for (Individuo ind : poblacionaux) {
                ind.setDominado(false);
            }
        }

    }