| generate_ndset | R Documentation |
Generate a random set of n mutually nondominated points of dimension d
with the shape defined by method.
When integer = FALSE (the default), the points are generated within the
hypercube (0,1)^d and can be scaled to another range using
normalise(). Otherwise, points are scaled to a non-negative integer range
that keeps the points mutually nondominated.
See the visualisations in the vignette \HTMLVignettegenerateSampling Random Nondominated Sets.
generate_ndset(n, d, method, seed = NULL, integer = FALSE)
n |
|
d |
|
method |
|
seed |
|
integer |
|
The available methods are:
'simplex', 'linear', or 'L'Uniformly samples points on the standard simplex. This shape of
nondominated set is also called 'linear' in the literature
\citepLacKlaFon2017box.
The standard (d-1)-simplex is defined by \{x \in \mathbb{R}_+^d :
\sum_i x_i = 1\}. Each point \vec{z} \in (0,1)^d \subset
\mathbb{R}^d is generated by sampling d independent and
identically distributed values (x_1,x_2, \dots, x_d) from the
exponential distribution, then dividing each value by the L1-norm of the
vector, z_i = x_i / \sum_{i=1}^d x_i \citepRubMel1998simulation.
Values sampled from the exponential distribution are guaranteed to be
positive. Sampling from either the standard normal distribution
\citepGueFonPaq2021hv or the uniform distribution
\citepLacKlaFon2017box does not produce a uniform distribution when
projected onto the simplex.
'concave-sphere', 'sphere', or 'C'Uniformly samples points on the positive orthant of the hyper-sphere, which is concave when all objectives are minimised.
Each point \vec{z} \in (0,1)^d \subset \mathbb{R}^d is generated by
sampling d independent and identically distributed values
\vec{x}=(x_1,x_2, \dots, x_d) from the standard normal
distribution, then dividing each value by the l2-norm of the vector,
z_i = \frac{|x_i|}{\|\vec{x}\|_2} \citepMuller1959sphere. The
absolute value in the numerator ensures that points are sampled on the
positive orthant of the hyper-sphere. Sampling from the uniform
distribution \citepLacKlaFon2017box would not result in a uniform
sampling when projected onto the surface of the hyper-sphere.
'convex-sphere' or 'X'Equivalent to 1 - generate_ndset(..., method='concave-sphere'), which
is convex for minimisation. This shape has also been called inverted
convex \citepIshHeSha2019regular. This sampling is uniform.
It corresponds to translating points from the negative orthant of the hyper-sphere to the positive orthant. Thus, the sampling remains uniform.
'convex-simplex'Equivalent to generate_ndset(..., method='simplex')^2, which is convex
for minimisation. Such a set cannot be obtained by any affine
transformation of a subset of the hyper-sphere. This sampling is not
uniform.
The corresponding surface is equivalent to a simplex curved towards the
origin. The generated points \vec{z} \in (0,1)^d \subset
\mathbb{R}^d satisfy \sum_{i=1}^d \sqrt{z_i} = 1. Although the
sampling on the simplex is uniform, the transformed points are not.
'concave-simplex'Equivalent to 1 - generate_ndset(..., method='convex-simplex'), which
is concave for minimisation. This shape has also been called inverted
concave \citepIshHeSha2019regular. This sampling is not uniform
because method='convex-simplex' is also not uniform.
'inverted-simplex' or 'inverted-linear'Equivalent to 1 - generate_ndset(..., method='simplex'). This sampling
is uniform.
Methods 'inverted-simplex', 'concave-simplex' and 'convex-sphere' are
translations of 'simplex', 'convex-simplex' and 'concave', respectively.
These translations have been called inverted shapes in the literature and
have different properties than their regular counterparts
\citepIshHeSha2019regular.
A numeric matrix of size n × d containing nondominated points.
generate_ndset(5, 3, "simplex", seed = 42)
generate_ndset(5, 3, "simplex", seed = 42, integer = TRUE)
generate_ndset(4, 2, "sphere", seed = 123)
generate_ndset(3, 5, "convex-sphere", seed = 123)
generate_ndset(4, 4, "convex-simplex", seed = 123)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.