Propose new live points from a multidimensional p-norm ball centered
on a randomly selected live point. The radius of the balls are set
such that each ball encompasses at least two live points.
Value
A list with class c("mini_ball", "ernest_lrps"). Use with
ernest_sampler() to specify nested sampling behaviour.
Details
The p-norm naturally defines a distance that makes the vector space
a metric space. For two points x and y, their distance in \(L^p\)
space is given by $$||x-y||_p = \sigma{(x_i - y_i)^p}^{1/p}$$.
The p-norm ball is the set of all vectors such that the distance between
itself and the ball's centre c is less than the radius r. The distance
r is updated throughout a run to ensure that at least one other live point
is contained within the ball.
Status
This LRPS is experimental and has not been extensively validated across different nested sampling problems. You are encouraged to use it, but please exercise caution interpretting results and report any issues or unexpected behaviour.
References
Buchner, J. (2014). A Statistical Test for Nested Sampling Algorithms. Statistics and Computing, 26(1–2), 383–392. doi:10.1007/s11222-014-9512-y
Buchner, J. (2019). Collaborative Nested Sampling: Big Data versus Complex Physical Models. Publications of the Astronomical Society of the Pacific, 131(1004), 108005. doi:10.1088/1538-3873/aae7fc
See also
Other ernest_lrps:
multi_ellipsoid(),
no_underrun(),
rwmh_cube(),
slice_rectangle(),
unif_cube(),
unif_ellipsoid()
Examples
data(example_run)
euclid_balls <- mini_balls(method = "euclidean")
euclid_balls <- mini_balls(p = 2)
# Supremum balls (or L-infinity norm)
suprenum_balls <- mini_balls(method = "maximum")
suprenum_balls <- mini_balls(p = Inf)
ernest_sampler(
example_run$log_lik_fn,
example_run$prior,
sampler = euclid_balls
)
#> nested sampling specification <ernest_sampler>
#> • No. Points: 500
#> • LRPS Method: mini_balls
#>
#> ernest LRPS method <mini_balls/ernest_lrps>
#> • Dimensions: 3
#> • No. Log-Lik Calls: 0
#> • Distance: Euclidean
#> • Radius: Undefined