Computes the hypervolume metric with respect to a given reference point
assuming minimization of all objectives.
Usage
hypervolume(data, reference, maximise = FALSE)
Arguments
- data
(matrix
| data.frame
)
Matrix or data frame of numerical
values, where each row gives the coordinates of a point.
- reference
(numeric()
)
Reference point as a vector of numerical values.
- maximise
(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.
Value
A single numerical value.
Details
The algorithm has \(O(n^{d-2} \log n)\) time and linear space
complexity in the worst-case, but experimental results show that the
pruning techniques used may reduce the time complexity even further.
References
FonPaqLop06:hypervolumeeaf
BeuFonLopPaqVah09:teceaf
Author
Manuel López-Ibáñez
Examples
data(SPEA2minstoptimeRichmond)
# The second objective must be maximized
# We calculate the hypervolume of the union of all sets.
hypervolume(SPEA2minstoptimeRichmond[, 1:2], reference = c(250, 0),
maximise = c(FALSE, TRUE))
#> [1] 7911376