Skip to contents

[Experimental] 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.

Usage

mini_balls(method, p)

Arguments

method, p

Pick one of method and p: * method Sets the distance measure to be used. This must be one of "euclidean", "maximum", or "manhattan". * p A positive number, indicating the p-norm to use.

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

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