Subset Simulation
In the subset simulation method [13] the probability of failure \(P_f\) is approximated by a product of probabilities of more frequent events. That is, the failure event \(G = \{\textbf{X} \in \mathbb{R}^n:g(\textbf{X}) \leq 0\}\), is expressed as the of union of M nested intermediate events \(G_1,G_2,\cdots,G_M\) such that \(G_1 \supset G_2 \supset \cdots \supset G_M\), and \(G = \cap_{i=1}^{M} G_i\). The intermediate failure events are defined as \(G_i=\{g(\textbf{X})\le b_i\}\), where \(b_1>b_2>\cdots>b_M=0\) are non-negative thresholds selected such that each conditional probability \(P(G_{i+1} | G_{i}),\ i=1,2,\cdots,M-1\) equals a target probability value \(p_0\). The probability of failure \(P_f\) is estimated as:
where the probability \(P(G_1)\) is computed through Monte Carlo simulations. In order to estimate the conditional probabilities \(P(G_{i+1}|G_i),~i=1,2,\cdots,M-1\) generation of Markov Chain Monte Carlo (MCMC) samples from the conditional pdf \(p_{\textbf{X}}(\textbf{x}|G_i)\) is required. In the context of subset simulation, the Markov chains are constructed through a two-step acceptance/rejection criterion. Starting from a Markov chain state \(\textbf{X}\) and a proposal distribution \(q(\cdot|\textbf{X})\), a candidate sample \(\textbf{W}\) is generated. In the first stage, the sample \(\textbf{W}\) is accepted/rejected with probability
and in the second stage is accepted/rejected based on whether the sample belongs to the failure region \(G_i\).
SubsetSimulation
can be used with any of the available (or custom) MCMC
classes in the
Sampling
module.
The SubsetSimulation
class is imported using the following command:
>>> from UQpy.reliability.SubsetSimulation import SubsetSimulation
Methods
- class SubsetSimulation(runmodel_object, sampling, samples_init=None, conditional_probability=0.1, nsamples_per_subset=1000, max_level=10)[source]
Perform Subset Simulation to estimate probability of failure.
This class estimates probability of failure for a user-defined model using Subset Simulation. The class can use one of several MCMC algorithms to draw conditional samples.
- Parameters:
runmodel_object (
RunModel
) – The computational model. It should be of typeRunModel
.sampling (
MCMC
) – Specifies theMCMC
algorithm.samples_init (
Optional
[ndarray
]) – A set of samples from the specified probability distribution. These are the samples from the original distribution. They are not conditional samples. The samples must be an array of sizesamples_number_per_subset x dimension
. Ifsamples_init
is not specified, theSubsetSimulation
class will use theMCMC
class created with the aid ofsampling
to draw the initial samples.conditional_probability (
Union
[float
,int
]) – Conditional probability for each conditional level. Default: \(0.1\)nsamples_per_subset (
int
) – Number of samples to draw in each conditional level. Default: \(1000\)max_level (
int
) – Maximum number of allowable conditional levels. Default: \(10\)
Attributes
-
SubsetSimulation.dependent_chains_CoV:
float
Coefficient of variation of the probability of failure estimate with dependent chains.
-
SubsetSimulation.independent_chains_CoV:
float
Coefficient of variation of the probability of failure estimate assuming independent chains.
-
SubsetSimulation.performance_function_per_level:
list
A list of arrays containing the evaluation of the performance function at each sample in each conditional level. The size of the list is equal to the number of levels.