S2MART
introduces a metamodeling step at each subset simulation
threshold, making number of necessary samples lower and the probability estimation
better according to subset simulation by itself.
1 2 
dimension 
the dimension of the input space 
lsf 
the function defining the failure domain. Failure is lsf(X) < 
Nn 
number of samples to evaluate the quantiles in the subset step 
alpha_quantile 
cutoff probability for the subsets 
failure 
the failure threshold 
... 
All others parameters of the metamodel based algorithm 
plot 
to produce a plot of the failure and safety domain. Note that this requires a lot of
calls to the 
output_dir 
to save the plot into the given directory. This will be pasted with "_S2MART.pdf" 
verbose 
either 0 for almost no output, 1 for medium size output and 2 for all outputs 
S2MART algorithm is based on the idea that subset simulations conditional probabilities are estimated with a relatively poor precision as it requires calls to the expensivetoevaluate limit state function and does not take benefit from its numerous calls to the limit state function in the MetropolisHastings algorithm. In this scope, the key concept is to reduce the subset simulation population to its minimum and use it only to estimate crudely the next quantile. Then the use of a metamodelbased algorithm lets refine the border and calculate an accurate estimation of the conditional probability by the mean of a crude MonteCarlo.
In this scope, a compromise has to be found between the two sources of
calls to the limit state function as total number of calls = (Nn
+
number of calls to refine the metamodel) x (number of subsets) :
Nn
calls to find the next threshold value : the bigger Nn
,
the more accurate the ‘decreasing speed’ specified by the
alpha_quantile
value and so the smaller the number of subsets
total number of calls to refine the metamodel at each threshold
An object of class list
containing the failure probability
and some more outputs as described below:
p 
The estimated failure probability. 
cov 
The coefficient of variation of the MonteCarlo probability estimate. 
Ncall 
The total number of calls to the 
learn_db 
The final learning database, ie. all points where 
lsf_value 
The value of the 
meta_model 
The final metamodel. An object from e1071. 
Problem is supposed to be defined in the standard space. If not,
use UtoX
to do so. Furthermore, each time a set of vector
is defined as a matrix, ‘nrow’ = dimension
and
‘ncol’ = number of vector to be consistent with as.matrix
transformation of a vector.
Algorithm calls lsf(X) (where X is a matrix as defined previously) and expects a vector in return. This allows the user to optimise the computation of a batch of points, either by vectorial computation, or by the use of external codes (optimised C or C++ codes for example) and/or parallel computation; see examples in MonteCarlo.
Clement WALTER clement.walter@cea.fr
J.M. Bourinet, F. Deheeger, M. Lemaire:
Assessing small failure probabilities by combined Subset Simulation and Support Vector Machines
Structural Safety (2011)
F. Deheeger:
Couplage m?canofiabiliste : 2SMART  m?thodologie d'apprentissage stochastique en fiabilit?
PhD. Thesis, Universit? Blaise Pascal  Clermont II, 2008
S.K. Au, J. L. Beck:
Estimation of small failure probabilities in high dimensions by Subset Simulation
Probabilistic Engineering Mechanics (2001)
A. Der Kiureghian, T. Dakessian:
Multiple design points in first and secondorder reliability
Structural Safety, vol.20 (1998)
P.H. Waarts:
Structural reliability using finite element methods: an appraisal of DARS:
Directional Adaptive Response Surface Sampling
PhD. Thesis, Technical University of Delft, The Netherlands, 2000
SMART
SubsetSimulation
MonteCarlo
km
(in package DiceKriging)
svm
(in package e1071)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26  ## Not run:
res = S2MART(dimension = 2,
lsf = kiureghian,
N1 = 1000, N2 = 5000, N3 = 10000,
plot = TRUE)
#Compare with crude MonteCarlo reference value
reference = MonteCarlo(2, kiureghian, N_max = 500000)
## End(Not run)
#See impact of metamodelbased subset simulation with Waarts function :
## Not run:
res = list()
# SMART stands for the pure metamodel based algorithm targeting directly the
# failure domain. This is not recommended by its authors which for this purpose
# designed S2MART : SubsetSMART
res$SMART = mistral:::SMART(dimension = 2, lsf = waarts, plot=TRUE)
res$S2MART = S2MART(dimension = 2,
lsf = waarts,
N1 = 1000, N2 = 5000, N3 = 10000,
plot=TRUE)
res$SS = SubsetSimulation(dimension = 2, waarts, n_init_samples = 10000)
res$MC = MonteCarlo(2, waarts, N_max = 500000)
## End(Not run)

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.
Please suggest features or report bugs with the GitHub issue tracker.
All documentation is copyright its authors; we didn't write any of that.