public static ArrayList<Solucion> reducirConjuntoPareto(
            Integer tamanhoMaximo, ArrayList<Solucion> conjuntoPareto){
        int contador = conjuntoPareto.size();
        int cluster1 = 0;
        int cluster2 = 0;
        Double distanciaMinima;
        ArrayList<Cluster> listaClusters = crearCluster(conjuntoPareto);
        while (contador > tamanhoMaximo){
            distanciaMinima = Double.POSITIVE_INFINITY;
            for(int i = 0;i<listaClusters.size();i++){
                Cluster clusterX = listaClusters.get(i);
                for(int j = 0;j<listaClusters.size();j++){
                    if(i!=j){
                        Cluster clusterY = listaClusters.get(j);
                        Double distancia = calcularDistancia(clusterX, clusterY);
                        if(distancia<distanciaMinima){
                            distanciaMinima = distancia;
                            cluster1 = i;
                            cluster2 = j;
                        }
                    }
                }
            }
            
            Cluster nuevoCluster = new Cluster();
            ArrayList<Solucion> nuevaLista = new ArrayList<>();
            for (Solucion solucion : listaClusters.get(cluster1).getSolucionClusterizada()){
                nuevaLista.add(solucion);
            }
            for (Solucion solucion : listaClusters.get(cluster2).getSolucionClusterizada()){
                nuevaLista.add(solucion);
            }
            nuevoCluster.setSolucionClusterizada(nuevaLista);
            listaClusters.add(nuevoCluster);
            listaClusters.remove(cluster1);
            listaClusters.remove(cluster2);
            contador = listaClusters.size();
        }
        ArrayList<Solucion> nuevoConjuntoPareto = new ArrayList<>();
        for(Cluster cluster : listaClusters){
            Solucion individuoPareto = getCentroide(cluster);
            nuevoConjuntoPareto.add(individuoPareto);
        }
        return nuevoConjuntoPareto;
    }