PartialRejectionSampling.jl
documentation
This module provides a Julia implementation of the Partial Rejection Sampling (PRS) methodology developed by Heng Guo , Mark Jerrum , Jingcheng Liu (2019). With PRS, you generate exact samples from product distributions subject to some constraints, see e.g., some Graph point processes and Spatial point processes.
Given an initial sample from the (unconstrained) product distribution:
- Vanilla rejection sampling resample all variables if any constraint is violated; until all constraints are satisfied,
- Partial rejection sampling instead identifies a subset of variables to be resampled, starting from variables involved in violated constraints, and preserves the state of the variables outside of this resampling set; until all constraints are satisfied.
In both cases, the output sample is guaranteed to have the right distribution, i.e., the product distribution subject to the prescribed constraints.
Getting Started
Installation
PartialRejectionSampling.jl
is not yet a registered package. But you can to install it through
julia> ]add https://github.com/guilgautier/PartialRejectionSampling.jl
see also how to manage packages with Pkg
.
Usage
To start using the package, simply enter
julia> using PartialRejectionSampling
# const PRS = PartialRejectionSampling is made available so you can then use
# PRS.<type/function_you_want_to_use>
Tutorial Jupyter notebooks
You can also have a look at the tutorial Jupyter notebooks
to play with the code.
Index
Types
PartialRejectionSampling.AbstractCellGridPRS
PartialRejectionSampling.AbstractGraphPointProcess
PartialRejectionSampling.AbstractRectangleWindow
PartialRejectionSampling.AbstractSpatialPointProcess
PartialRejectionSampling.AbstractSpatialWindow
PartialRejectionSampling.BallWindow
PartialRejectionSampling.BallWindow
PartialRejectionSampling.GraphCellGridPRS
PartialRejectionSampling.GraphNode
PartialRejectionSampling.HardCoreGraph
PartialRejectionSampling.HardCoreGraph
PartialRejectionSampling.HardCorePointProcess
PartialRejectionSampling.HardCorePointProcess
PartialRejectionSampling.HomogeneousPoissonPointProcess
PartialRejectionSampling.HomogeneousPoissonPointProcess
PartialRejectionSampling.Ising
PartialRejectionSampling.Ising
PartialRejectionSampling.Ising
PartialRejectionSampling.PatternFreeString
PartialRejectionSampling.PatternFreeString
PartialRejectionSampling.RectangleWindow
PartialRejectionSampling.RectangleWindow
PartialRejectionSampling.RootedSpanningForest
PartialRejectionSampling.RootedSpanningForest
PartialRejectionSampling.SinkFreeGraph
PartialRejectionSampling.SinkFreeGraph
PartialRejectionSampling.SpatialCellGridPRS
PartialRejectionSampling.SquareWindow
PartialRejectionSampling.SquareWindow
PartialRejectionSampling.StraussPointProcess
PartialRejectionSampling.StraussPointProcess
Functions
Base.in
Base.in
Base.isempty
Base.iterate
Base.rand
Base.rand
Base.rand
Base.rand
Base.rand
PartialRejectionSampling._check_extension!
PartialRejectionSampling._generate_sample_rooted_spanning_forest_prs
PartialRejectionSampling._generate_sample_rooted_spanning_forest_wilson
PartialRejectionSampling._pattern_can_occur_if_reassignment_at
PartialRejectionSampling._pattern_free_string_prs
PartialRejectionSampling.backward_extend!
PartialRejectionSampling.bayes_filter
PartialRejectionSampling.dimension
PartialRejectionSampling.dimension
PartialRejectionSampling.dimension
PartialRejectionSampling.directed_forest_from_successors
PartialRejectionSampling.find_bad_cells_indices!
PartialRejectionSampling.find_cells_to_resample_indices!
PartialRejectionSampling.forward_coupling
PartialRejectionSampling.generate_sample
PartialRejectionSampling.generate_sample
PartialRejectionSampling.generate_sample
PartialRejectionSampling.generate_sample
PartialRejectionSampling.generate_sample
PartialRejectionSampling.generate_sample
PartialRejectionSampling.generate_sample
PartialRejectionSampling.generate_sample
PartialRejectionSampling.generate_sample
PartialRejectionSampling.generate_sample
PartialRejectionSampling.generate_sample!
PartialRejectionSampling.generate_sample!
PartialRejectionSampling.generate_sample!
PartialRejectionSampling.generate_sample_conditional!
PartialRejectionSampling.generate_sample_dcftp
PartialRejectionSampling.generate_sample_gibbs_perfect
PartialRejectionSampling.generate_sample_grid_prs
PartialRejectionSampling.generate_sample_poisson_union_balls
PartialRejectionSampling.generate_sample_prs
PartialRejectionSampling.generate_sample_prs
PartialRejectionSampling.generate_sample_prs
PartialRejectionSampling.generate_sample_prs
PartialRejectionSampling.generate_sample_prs
PartialRejectionSampling.generate_sample_prs
PartialRejectionSampling.generate_sample_prs
PartialRejectionSampling.generate_sample_prs
PartialRejectionSampling.gibbs_interaction
PartialRejectionSampling.gibbs_interaction
PartialRejectionSampling.gibbs_interaction
PartialRejectionSampling.gibbs_interaction
PartialRejectionSampling.initialize_cells
PartialRejectionSampling.initialize_cells
PartialRejectionSampling.intensity
PartialRejectionSampling.intensity
PartialRejectionSampling.intensity
PartialRejectionSampling.interaction_coefficient
PartialRejectionSampling.interaction_coefficient
PartialRejectionSampling.interaction_range
PartialRejectionSampling.interaction_range
PartialRejectionSampling.is_inner_interaction_possible
PartialRejectionSampling.is_inner_interaction_possible
PartialRejectionSampling.is_outer_interaction_possible
PartialRejectionSampling.is_outer_interaction_possible
PartialRejectionSampling.isattractive
PartialRejectionSampling.isattractive
PartialRejectionSampling.isattractive
PartialRejectionSampling.isrepulsive
PartialRejectionSampling.isrepulsive
PartialRejectionSampling.isrepulsive
PartialRejectionSampling.papangelou_conditional_intensity
PartialRejectionSampling.papangelou_conditional_intensity
PartialRejectionSampling.papangelou_conditional_intensity
PartialRejectionSampling.rectangle_square_window
PartialRejectionSampling.upper_bound_papangelou_conditional_intensity
PartialRejectionSampling.upper_bound_papangelou_conditional_intensity
PartialRejectionSampling.upper_bound_papangelou_conditional_intensity
PartialRejectionSampling.volume
PartialRejectionSampling.volume
PartialRejectionSampling.volume
PartialRejectionSampling.weighted_interaction_graph
PartialRejectionSampling.weighted_interaction_graph
PartialRejectionSampling.window
PartialRejectionSampling.window