pystra.reliability.subset_simulation.SubsetSimulation#
Use it: User guide · Worked example · Theory
- class SubsetSimulation(model, limit_state, *, options=None, p0=0.1, proposal_sigma=1.0, rng=None)[source]#
Bases:
AnalysisObjectSubset Simulation (SS) reliability analysis.
Subset Simulation decomposes the rare failure event \(F = \{g(\mathbf{u}) \le 0\}\) into a sequence of more frequent nested intermediate events \(F_1 \supset F_2 \supset \cdots \supset F_m = F\):
\[p_f = P(F_1)\prod_{j=2}^{m} P(F_j \mid F_{j-1})\]The intermediate thresholds \(y_1 > y_2 > \cdots > y_m = 0\) are chosen adaptively so that each conditional probability is approximately equal to the target level \(p_0\). Conditional samples are generated via the Modified Metropolis–Hastings (MMH) algorithm operating component-wise in standard normal space.
- Parameters:
model (
StochasticModel)limit_state (
LimitState)options (
SimulationOptions|None) –n_samplesis the number of samples per level.p0 (
float) – Target conditional failure probability per subset level (default 0.1).proposal_sigma (
float) – Half-width of the uniform proposal kernel used in MMH, measured in standard-deviation units of the standard normal space (default 1.0).rng (
int|integer|Sequence[int] |ndarray|SeedSequence|BitGenerator|Generator|None) – Random source; NumPy’s global generator is not used. A seed recreates the same stream on every run, a generator advances its own state, and None draws fresh entropy.
Notes
The number of samples per level is
options.n_samples.run()returns aSimulationResult; its diagnostics include the thresholds and conditional probabilities.References
Au, S. K., & Beck, J. L. (2001). Estimation of small failure probabilities in high dimensions by subset simulation. Probabilistic Engineering Mechanics, 16(4), 263–277.
Methods
Initialize the model's isoprobabilistic transformation.
Run subset simulation and return a
SimulationResult.- init_run()#
Initialize the model’s isoprobabilistic transformation.
Uses the explicit copula or calibrates the legacy Gaussian Nataf correlation. Must be called at the start of every
run()method in subclasses.- Return type:
None