@Override
    public int compare(Genotipo o1, Genotipo o2) 
    {
        int m = 1;
        if(mode==ComparasionMode.Maximize)  {
            m = -1;
        }       
        double r1 = Double.NaN;
        double r2 = Double.NaN;
        switch(compMode) {
            case ByValue:
                r1 = o1.getFitnessValue();
                r2 = o2.getFitnessValue();
                break;
            case ByScaledValue:
                //TODO: ¿como seria si guardamos el valor original
                //y el escalado
                r1 = o1.getFitnessValueScaled();
                r2 = o2.getFitnessValueScaled();
                break;
        }
        
        return Double.compare(r1, r2)* m;
    }