Skip to content

Commit 02c646a

Browse files
committed
Document that HV contribution is P-hard.
1 parent 5b0acfd commit 02c646a

4 files changed

Lines changed: 34 additions & 10 deletions

File tree

python/doc/source/reference/functions.metrics.rst

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,6 @@ Hypervolume metric
143143
hypervolume
144144
Hypervolume
145145
RelativeHypervolume
146-
hv_contributions
147146
total_whv_rect
148147
whv_rect
149148

@@ -156,12 +155,12 @@ dominate :math:`\vec{r}` do not contribute to the hypervolume value, thus,
156155
ideally, the reference point must be strictly dominated by all points in the
157156
true Pareto front.
158157

159-
More precisely, the hypervolume is the `Lebesgue measure <https://en.wikipedia.org/wiki/Lebesgue_measure>`_ of the union of
160-
axis-aligned hyperrectangles
161-
(`orthotopes <https://en.wikipedia.org/wiki/Hyperrectangle>`_), where each
162-
hyperrectangle is defined by one point from :math:`\vec{a} \in A` and the
163-
reference point. The union of axis-aligned hyperrectangles is also called an
164-
*orthogonal polytope*.
158+
More precisely, the hypervolume is the `Lebesgue measure
159+
<https://en.wikipedia.org/wiki/Lebesgue_measure>`_ of the union of axis-aligned
160+
hyperrectangles (`orthotopes <https://en.wikipedia.org/wiki/Hyperrectangle>`_),
161+
where each hyperrectangle is defined by one point from :math:`\vec{a} \in A`
162+
and the reference point. The union of axis-aligned hyperrectangles is also
163+
called an *orthogonal polytope*.
165164

166165
The hypervolume is compatible with Pareto-optimality
167166
:cite:p:`KnoCor2002cec,ZitThiLauFon2003:tec`, that is, :math:`\nexists A,B
@@ -173,7 +172,24 @@ Conversely, if the hypervolume of a set is larger than the hypervolume of
173172
another, then we know for sure than the latter set cannot be better than the
174173
former in terms of Pareto-optimality.
175174

176-
Like most measures of unions of high-dimensional geometric objects, computing the hypervolume is #P-hard :cite:p:`BriFri2010approx`.
175+
Like most measures of unions of high-dimensional geometric objects, computing
176+
the hypervolume is #P-hard :cite:p:`BriFri2010approx`, which means that the
177+
best possible algorithm takes an exponential time on the number of objectives
178+
or points, in the worst-case.
179+
180+
181+
Hypervolume contribution
182+
------------------------
183+
184+
.. autosummary::
185+
:toctree: generated/
186+
187+
hv_contributions
188+
189+
The hypervolume contribution of point :math:`\vec{p} \in X` is defined as
190+
:math:`\text{hvc}(\vec{p}) = \text{hyp}(X) - \text{hyp}(X \setminus
191+
\{\vec{p}\})`. Like the hypervolume, computing the hypervolume contribution is #P-hard :cite:p:`BriFri2012tcs`.
192+
177193

178194

179195
.. _hv_approximation:

r/R/hv.R

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@
4141
#' former in terms of Pareto-optimality.
4242
#'
4343
#' Like most measures of unions of high-dimensional geometric objects,
44-
#' computing the hypervolume is #P-hard \citep{BriFri2010approx}.
44+
#' computing the hypervolume is #P-hard \citep{BriFri2010approx}, which means
45+
#' that the best possible algorithm takes an exponential time on the number of
46+
#' objectives or points, in the worst-case.
4547
#'
4648
#' For 2D and 3D, the algorithms used
4749
#' \citep{FonPaqLop06:hypervolume,BeuFonLopPaqVah09:tec} have \eqn{O(n \log n)}
@@ -157,6 +159,8 @@ hypervolume <- function(x, reference, maximise = FALSE)
157159
#' `ignore_dominated` does not change the result, but the default value is
158160
#' significantly faster.
159161
#'
162+
#' Like the hypervolume, computing the hypervolume contribution is #P-hard \citep{BriFri2012tcs}.
163+
#'
160164
#' The current implementation uses a \eqn{O(n\log n)} dimension-sweep
161165
#' algorithm for 2D. With `ignore_dominated=TRUE`, the 3D case uses the HVC3D
162166
#' algorithm \citep{GueFon2017hv4d}, which has \eqn{O(n\log n)} complexity.

r/man/hv_contributions.Rd

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

r/man/hypervolume.Rd

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)