Constructs a Scalarizer that does Chebyshev scalarization, as employed in ParEGO by Knowles (2006).

The Chebyshev scalarization for a single individual with fitness values f and given weight vector w is min(w * f) + rho * sum(w * f), where rho is a hyperparameter given during construction.

scalarizer_chebyshev(rho = 0.05)

Arguments

rho

(numeric(1))
Small positive value.

Value

a Scalarizer object.

References

Knowles, Joshua (2006). “ParEGO: A hybrid algorithm with on-line landscape approximation for expensive multiobjective optimization problems.” IEEE Transactions on Evolutionary Computation, 10(1), 50--66.

See also

Other Scalarizers: Scalarizer, scalarizer_linear()

Examples

# fitnesses: three rows (i.e. thee indivs) with two objective values each
fitnesses <- matrix(0:5, ncol = 2)

# weights: contains one matrix for each row of 'fitnesses' (i.e. each indiv)
# which get multiplied with their respective row.
weights <- list(
 matrix(c(1, 0, 0, 1), ncol = 2),
 matrix(c(1, 2, 0, 0), ncol = 2),
 matrix(c(0, 1, 0, 1), ncol = 2)
)

sc <- scalarizer_chebyshev()

# The resulting row-vectors are the different scalarizations according to the
# columns in the 'weights' matrices.
sc(fitnesses, weights)
#>      [,1] [,2]
#> [1,] 0.00 0.15
#> [2,] 1.45 0.00
#> [3,] 0.25 0.25

sc <- scalarizer_chebyshev(rho = 0.1)
sc(fitnesses, weights)
#>      [,1] [,2]
#> [1,]  0.0  0.3
#> [2,]  1.9  0.0
#> [3,]  0.5  0.5