Title: | Generate Random Vectors Whose Components Sum Up to One |
---|---|
Description: | A single method implementing multiple approaches to generate pseudo-random vectors whose components sum up to one (see, e.g., Maziero (2015) <doi:10.1007/s13538-015-0337-8>). The components of such vectors can for example be used for weighting objectives when reducing multi-objective optimisation problems to a single-objective problem in the socalled weighted sum scalarisation approach. |
Authors: | Jakob Bossek [aut, cre, cph] |
Maintainer: | Jakob Bossek <[email protected]> |
License: | BSD_2_clause + file LICENSE |
Version: | 1.0.0 |
Built: | 2024-11-07 02:40:27 UTC |
Source: | https://github.com/jakobbossek/rrandvec |
Generate an matrix. Each row vector is a
probability vector
with
.
The function offers several methods to generate the rows in a way that the
components are unbiased which means that they are required to have similar /
the same probability distributions.
[1] Maziero, J. Generating Pseudo-Random Discrete Probability Distributions. Brazilian Journal of Physics 45, 377–382 (2015). https://doi.org/10.1007/s13538-015-0337-8
[2] Grimme, C. Picking a Uniformly Random Point from an Arbitrary Simplex. Technical Report. https://doi.org/10.13140/RG.2.1.3807.6968
rrandvec(n, d, method = "normalization", shuffle = FALSE, as.df = FALSE)
rrandvec(n, d, method = "normalization", shuffle = FALSE, as.df = FALSE)
n |
[ |
d |
[ |
method |
[ |
shuffle |
[ |
as.df |
[ |
[matrix(n, d)
] matrix even if
.
R = rrandvec(1000, 2) R = rrandvec(1000, 5, method ="iterative") R = rrandvec(1000, 3, method = "trigonometric", shuffle = TRUE, as.df = TRUE) if (require("scatterplot3d")) { scatterplot3d::scatterplot3d(R, angle = 120, cex.symbols = 0.5, pch = 3, color = "blue") }
R = rrandvec(1000, 2) R = rrandvec(1000, 5, method ="iterative") R = rrandvec(1000, 3, method = "trigonometric", shuffle = TRUE, as.df = TRUE) if (require("scatterplot3d")) { scatterplot3d::scatterplot3d(R, angle = 120, cex.symbols = 0.5, pch = 3, color = "blue") }