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)
(numeric(1)
)
Small positive value.
a Scalarizer
object.
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.
Other Scalarizers:
Scalarizer
,
scalarizer_linear()
# 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