question: public void adapt ( ) { double [ ] zmin = new double [ numberOfObjectives ] ; double [ ] zmax = new double [ numberOfObjectives ] ; Arrays . fill ( zmin , Double . POSITIVE_INFINITY ) ; Arrays . fill ( zmax , Double . NEGATIVE_INFINITY ) ; for ( Solution solution : this ) { for ( int i = 0 ; i < numberOfObjectives ; i ++ ) { zmin [ i ] = Math . min ( zmin [ i ] , solution . getObjective ( i ) ) ; zmax [ i ] = Math . max ( zmax [ i ] , solution . getObjective ( i ) ) ; } } weights . clear ( ) ; for ( double [ ] weight : originalWeights ) { double [ ] newWeight = weight . clone ( ) ; for ( int i = 0 ; i < numberOfObjectives ; i ++ ) { newWeight [ i ] *= Math . max ( 0.01 , zmax [ i ] - zmin [ i ] ) ; } weights . add ( Vector . normalize ( newWeight ) ) ; } minAngles = new double [ weights . size ( ) ] ; for ( int i = 0 ; i < weights . size ( ) ; i ++ ) { minAngles [ i ] = smallestAngleBetweenWeights ( i ) ; } }
target:  Normalize the reference vectors.