The function whv_rect()
calculates the hypervolume weighted by a set of rectangles (with zero weight outside the rectangles). The function total_whv_rect()
calculates the total weighted hypervolume as hypervolume() + scalefactor * abs(prod(reference - ideal)) * whv_rect()
. The details of the computation are given by DiaLop2020ejor;textualeaf.
whv_rect(data, rectangles, reference, maximise = FALSE)total_whv_rect(
data,
rectangles,
reference,
maximise = FALSE,
ideal = NULL,
scalefactor = 0.1
)
(matrix
| data.frame
) Matrix or data frame of numerical
values, where each row gives the coordinates of a point.
(matrix()
) weighted rectangles that will bias the
computation of the hypervolume. Maybe generated by eafdiff()
with
rectangles=TRUE
or by choose_eafdiff()
.
(numeric()
) Reference point as a vector of numerical values.
(logical()
| logical(1)
) Whether the objectives must be
maximised instead of minimised. Either a single logical value that applies
to all objectives or a vector of logical values, with one value per
objective.
(numeric()
) Ideal point as a vector of numerical values.
(numeric(1)
) real value within
A single numerical value.
TODO
# NOT RUN {
rectangles <- as.matrix(read.table(header=FALSE, text='
1.0 3.0 2.0 Inf 1
2.0 3.5 2.5 Inf 2
2.0 3.0 3.0 3.5 3
'))
whv_rect (matrix(2, ncol=2), rectangles, reference = 6)
whv_rect (matrix(c(2, 1), ncol=2), rectangles, reference = 6)
whv_rect (matrix(c(1, 2), ncol=2), rectangles, reference = 6)
total_whv_rect (matrix(2, ncol=2), rectangles, reference = 6, ideal = c(1,1))
total_whv_rect (matrix(c(2, 1), ncol=2), rectangles, reference = 6, ideal = c(1,1))
total_whv_rect (matrix(c(1, 2), ncol=2), rectangles, reference = 6, ideal = c(1,1))
# }
Run the code above in your browser using DataLab