Skip to content

Simulations

Various Monte Carlo based simulations for a wide range of applications.

Index

Types

UncertaintyQuantification.SubSetSimulation Type
julia
SubSetSimulation(n::Integer, target::Float64, levels::Integer, proposal::UnivariateDistribution)

Defines the properties of a Subset simulation where n is the number of initial samples, target is the target probability of failure at each level, levels is the maximum number of levels and proposal is the proposal distribution for the markov chain monte carlo.

Examples

julia
julia> SubSetSimulation(100, 0.1, 10, Uniform(-0.2, 0.2))
SubSetSimulation(100, 0.1, 10, Uniform{Float64}(a=-0.2, b=0.2))

References

[16]

source

UncertaintyQuantification.SubSetInfinity Type
julia
SubSetInfinity(n::Integer, target::Float64, levels::Integer, s::Real)

Defines the properties of a Subset-∞ simulation where n is the number of initial samples, target is the target probability of failure at each level, levels is the maximum number of levels and s is the standard deviation for the proposal samples.

Examples

julia
julia> SubSetInfinity(100, 0.1, 10, 0.5)
SubSetInfinity(100, 0.1, 10, 0.5)

References

[17]

[29]

source

UncertaintyQuantification.SubSetInfinityAdaptive Type
julia
SubSetInfinityAdaptive(n::Integer, target::Float64, levels::Integer, Na::Integer, λ::Real, s::Real)

Implementation of: Papaioannou, Iason, et al. "MCMC algorithms for subset simulation." Probabilistic Engineering Mechanics 41 (2015): 89-103

Defines the properties of a Subset-∞ adaptive where n are the number of samples per level, target is the target probability of failure at each level, levels is the maximum number of levels, λ (λ = 1 recommended) is the initial scaling parameter, and Na is the number simulations that will be run before λ is updated. Note that Na must be a multiple of n * target: mod(ceil(n * target), Na) == 0). The initial variance of the proposal distribution is s.

Idea behind this algorithm is to adaptively select the correlation parameter of s at each intermediate level, by simulating a subset Na of the chains (which must be choosen without replacement at random) and modifying the acceptance rate towards the optimal αstar = 0.44

Constructors

  • SubSetInfinityAdaptive(n::Integer, target::Float64, levels::Integer, Na::Integer) (default: λ = s = 1)

  • SubSetInfinityAdaptive(n::Integer, target::Float64, levels::Integer, Na::Integer, λ::Real) (λ = s)

  • SubSetInfinityAdaptive(n::Integer, target::Float64, levels::Integer, Na::Integer, λ::Real, s::Real)

Note

The following constructors will run the same number of samples, but SubSetInfinityAdaptive will update s after each chain:

  • SubSetInfinityAdaptive(400, 0.1, 10, 40)

  • SubSetInfinity(400, 0.1, 10, 0.5)

Examples

julia
julia> SubSetInfinityAdaptive(200, 0.1, 10, 2)
SubSetInfinityAdaptive(200, 0.1, 10, 2, 1, 1)

References

[30]

[31]

source