Learn R Programming

eaf (version 1.9-1)

hypervolume: Hypervolume metric

Description

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

C. M. Fonseca, L. Paquete, and M. L<U+00F3>pez-Ib<U+00E1><U+00F1>ez. An improved dimension-sweep algorithm for the hypervolume indicator. In IEEE Congress on Evolutionary Computation, pages 1157-1163, Vancouver, Canada, July 2006.

Nicola Beume, Carlos M. Fonseca, Manuel L<U+00F3>pez-Ib<U+00E1><U+00F1>ez, Lu<U+00ED>s Paquete, and J. Vahrenhold. On the complexity of computing the hypervolume indicator. IEEE Transactions on Evolutionary Computation, 13(5):1075-1082, 2009.

Examples

Run this code
# NOT RUN {
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))

# }

Run the code above in your browser using DataLab