Rare-event simulation for random geometric graphs via importance sampling
Project description
pyregg
Rare-event simulation for random geometric graphs.
pyregg estimates the probability of rare events in Gilbert random geometric
graphs using three estimators: Naïve Monte Carlo (NMC), Conditional Monte Carlo
(CMC), and Importance Sampling (IS).
Installation
pip install pyregg
Rare Events
| Module | Rare Event |
|---|---|
pyregg.ec |
Edge count ≤ ℓ |
pyregg.md |
Maximum degree ≤ ℓ |
pyregg.mcc |
Maximum connected component size ≤ ℓ |
pyregg.ntg |
Number of triangles ≤ ℓ |
pyregg.mcs |
Maximum clique size ≤ ℓ |
pyregg.planar |
Graph is planar |
pyregg.forest |
Graph is a forest (acyclic) |
Quick Start
Each module is directly callable with an optional method argument
('ismc' by default). All calls return (probability, rel_variance, n_samples).
import pyregg.ec as ec
# Estimate P(EC(G(X)) ≤ 15) on [0,10]² with κ=0.3, r=1
Z, RV, n = ec(wind_len=10, kappa=0.3, int_range=1.0, level=15)
print(f"P ≈ {Z:.4e} (relative variance {RV:.2f}, {n} samples)")
import pyregg.planar as planar
# Estimate P(G(X) is planar) on [0,10]² with κ=1.2, r=1
Z, RV, n = planar(wind_len=10, kappa=1.2, int_range=1.0)
print(f"P ≈ {Z:.4e} (relative variance {RV:.2f}, {n} samples)")
import pyregg.forest as forest
# Estimate P(G(X) is a forest) on [0,10]² with κ=0.3, r=1
Z, RV, n = forest(wind_len=10, kappa=0.3, int_range=1.0)
print(f"P ≈ {Z:.4e} (relative variance {RV:.2f}, {n} samples)")
API
Calling a module
module(wind_len, kappa, int_range, [level,] method='ismc', **kwargs)
method selects the estimator: 'ismc' (Importance Sampling, default),
'cmc' (Conditional Monte Carlo), or 'nmc' (Naïve Monte Carlo).
**kwargs are forwarded to the chosen estimator (e.g. grid_res, tol).
The three estimators are also available as named functions:
module.naive_mc(...), module.conditional_mc(...),
module.importance_sampling(...).
Common parameters
| Parameter | Description |
|---|---|
wind_len |
Side length of the square window [0, wind_len]² |
kappa |
Intensity of the Poisson point process (points per unit area) |
int_range |
Connection radius — two points are connected if their distance ≤ int_range |
level |
Threshold ℓ (not used for planar or forest) |
method |
Estimator: 'ismc' (default), 'cmc', or 'nmc' |
grid_res |
IS grid cells per interaction-range interval; total cells = (wind_len / int_range × grid_res)² (IS only, default 10) |
max_iter |
Maximum number of samples (default 10⁸) |
warm_up |
Minimum samples before checking convergence |
tol |
Stop when relative variance / n < tol (default 0.001) |
Estimators
'ismc' (default) — Sequential point addition with cells that would violate the
rare event blocked; likelihood-ratio correction ensures unbiasedness.
'cmc' — Sequential point addition with analytic conditioning at each step.
'nmc' — Independent realisations; fraction satisfying the rare event.
Dependencies
Python >= 3.10
NumPy >= 1.24
SciPy >= 1.10
Numba >= 0.57
NetworkX >= 3.0
References
-
S. Moka, C. Hirsch, V. Schmidt & D. P. Kroese (2025). Efficient Rare-Event Simulation for Random Geometric Graphs via Importance Sampling. arXiv:2504.10530. https://arxiv.org/abs/2504.10530
-
C. Hirsch, S. B. Moka, T. Taimre & D. P. Kroese (2022). Rare Events in Random Geometric Graphs. Methodology and Computing in Applied Probability, 24, 1367–1383. https://link.springer.com/article/10.1007/s11009-021-09857-7
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyregg-0.2.12.tar.gz.
File metadata
- Download URL: pyregg-0.2.12.tar.gz
- Upload date:
- Size: 28.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e85b18f2f18c869b95163a507aa9d3b48fd0dc6ab1eee9d730f58074f3a80280
|
|
| MD5 |
bbcabe49cde7ed588cc0bd613fe8c11e
|
|
| BLAKE2b-256 |
56f217ba812f253a6c51e5cb51540a6800863cd6a77ff2d93d93a2d7cd215b08
|
File details
Details for the file pyregg-0.2.12-py3-none-any.whl.
File metadata
- Download URL: pyregg-0.2.12-py3-none-any.whl
- Upload date:
- Size: 51.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e3ca190c40029e289deb476dedb5897dcc6f8a90885d032d35df614b9be3b28e
|
|
| MD5 |
06048082a0c57859e318ac9e7eb10954
|
|
| BLAKE2b-256 |
0830dd4c2e3ee1f2de74ac4ff001c29b37d4068ff611812197534143a85baf02
|