public static < S extends Solution < ? > > void weightedProduct ( List < S > solutionsList , double [ ] weights ) { for ( S solution : solutionsList ) { double product = Math . pow ( solution . getObjective ( 0 ) , weights [ 0 ] ) ; for ( int i = 1 ; i < solution . getNumberOfObjectives ( ) ; i ++ ) { product *= Math . pow ( solution . getObjective ( i ) , weights [ i ] ) ; } setScalarizationValue ( solution , product ) ; } }
Objectives are exponentiated by a positive weight and afterwards multiplied .