TuringLang / NestedSamplers.jl

Implementations of single and multi-ellipsoid nested sampling
https://turinglang.org/NestedSamplers.jl/stable/
MIT License
42 stars 8 forks source link

PolyChord sampling support #30

Closed yebai closed 4 years ago

yebai commented 4 years ago

PolyChord is a Bayesian inference tool for the simultaneous calculation of evidence and sampling of posterior distributions. It is a variation on John Skilling's Nested Sampling, utilising Slice Sampling to generate new live points.

It would be interesting to investigate support for the PolyChord sampling algorithm, either via Julia's excellent Fortran call interface, or rewrite the algorithm in pure Julia.

Python interface for Fortran backend: https://github.com/PolyChord/PolyChordLite

References:

  1. Handley, W. J., Hobson, M. P., & Lasenby, A. N. (2015). polychord: nested sampling for cosmology. Monthy Notices of the Royal Astronomical Society Letters, 450(1), L61–L65.

  2. Feroz, F., Hobson, M. P., Cameron, E., & Pettitt, A. N. (2019). Importance Nested Sampling and the MultiNest Algorithm. The Open Journal of Astrophysics, 2, 10.

mileslucas commented 4 years ago

Following the 0.2 release, this can now be approached by creating a new Proposals.AbstractProposal: Proposals.RandSlice (mimicking dynesty's rslice mode).

mileslucas commented 4 years ago

Traditional Polychord method mostly enabled with the merge of #44.

yebai commented 4 years ago

Traditional Polychord method mostly enabled with the merge of #44.

Anything missing for state-of-the-art Polychord (apart from distributed implementation)? Is it the k-means clustering algorithm for live points?

mileslucas commented 4 years ago

Nope k means is present in the multi ellipsoidal code. I just don't want to brand anything as being "the polychord algorithm" when there might be minor implementation differences.

yebai commented 4 years ago

That makes sense!