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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
|
.. _directional_simulation:
Directional Simulation
----------------------
Using the probability distribution of a random vector :math:`\inputRV`,
we seek to evaluate the following probability:
.. math::
P_f = \Prob{g\left( \inputRV \right) < 0}
Here, :math:`\inputRV` is a random vector, :math:`\model` the function known as
“limit state function” which enables the definition of the event
:math:`\cD_f = \{\vect{x} \in \Rset^{\inputDim} \, / \, \model(\vect{x}) \le 0\}`.
The directional simulation method is an accelerated sampling method. It
implies a preliminary iso-probabilistic transformation, as for FORM and SORM methods;
however, it remains based on sampling and is thus not an approximation method.
In the transformed space, the (transformed) uncertain variables :math:`\RVU` are
independent standard Gaussian variables (mean equal to zero and standard
deviation equal to 1).
Roughly speaking, each simulation of the directional simulation
algorithm is made of three steps. For the :math:`i^\textrm{th}`
iteration, these steps are the following:
- Let :math:`\cS = \big\{ \vect{u} \big| ||\vect{u}|| = 1 \big\}`. A
point :math:`P_i` is drawn randomly on :math:`\cS` according to an
uniform distribution.
- In the direction starting from the origin and passing through
:math:`P_i`, solutions of the equation
:math:`\model(\vect{x}) = 0` (i.e. limits of :math:`\cD_f`) are
searched. The set of values of :math:`\vect{u}` that belong to
:math:`\cD_f` is deduced for these solutions: it is a subset
:math:`I_i \subset \Rset`.
- Then, one calculates the probability
:math:`q_i = \Prob{ ||\RVU|| \in I_i }`. By property of
independent standard variable, :math:`||\RVU||^2` is a random
variable distributed according to a chi-square distribution, which
makes the computation effortless.
Finally, the estimate of the probability :math:`P_f` after :math:`N`
simulations is the following:
.. math::
\widehat{P}_{f,DS} = \frac{1}{N} \sum_{i=1}^N q_i
The following figure illustrates the principle of an iteration in
dimension 2.
The Central Limit Theorem enables the difference between the estimated
value and the sought value to be controlled by means of a confidence
interval (if N is sufficiently large, typically :math:`N` > a few dozens
even if there is now way to say for sure if the asymptotic behavior is
reached). For a probability :math:`\alpha` strictly between 0 and 1
chosen by the user, one can, for example, be sure with a confidence
:math:`\alpha`, that the true value of :math:`P_f` is between
:math:`\widehat{P}_{f,\inf}` and :math:`\widehat{P}_{f,\sup}` calculated
analytically from simple formulae. To illustrate, for :math:`\alpha = 0.95`:
.. math::
\widehat{P}_{f,\inf} = \widehat{P}_{f,DS} - 1.96 \frac{\sigma_q}{\sqrt{N}},\ \widehat{P}_{f,\sup} = \widehat{P}_{f,DS} + 1.96 \frac{\sigma_q}{\sqrt{N}}
.. math::
\textrm{that is to say}\ \Prob{ \widehat{P}_{f,\inf} \leq P_f \leq \widehat{P}_{f,\sup}} = 0.95
where :math:`\sigma_q` denotes the empirical standard deviation of the
sample :math:`\left\{ q_1,\ldots,q_N \right\}`.
In practice the Directional Sampling simulation requires
the choice of:
- a Root Strategy :
- | RiskyAndFast: for each direction, we check whether there is a
sign change of the standard limit state function between the
maximum distant point (at distance *MaximumDistance* from the
center of the standard space) and the center of the standard
space.
| In case of sign change, we research one root in the segment
[origin, maximum distant point] with the selected non linear
solver.
| As soon as founded, the segment [root, infinity point] is
considered within the failure space.
- | MediumSafe: for each direction, we go along the direction by
step of length *stepSize* from the origin to the maximum distant
point (at distance *MaximumDistance* from the center of the
standard space) and we check whether there is a sign change
on each segment so formed.
| At the first sign change, we research one root in the
concerned segment with the selected non linear solver. Then, the
segment [root, maximum distant point] is considered within the
failure space.
| If *stepSize* is small enough, this strategy guarantees us to
find the root which is the nearest from the origin.
- | SafeAndSlow : for each direction, we go along the direction by
step of length *stepSize* from the origin to the maximum distant
point(at distance *MaximumDistance* from the center of the
standard space) and we check whether there is a sign change
on each segment so formed.
| We go until the maximum distant point. Then, for all the
segments where we detected the presence of a root, we research
the root with the selected non linear solver. We evaluate the
contribution to the failure probability of each segment.
| If *stepSize* is small enough, this strategy guarantees us to
find all the roots in the direction and the contribution of this
direction to the failure probability is precisely evaluated.
- a Non Linear Solver:
- Bisection: bisection algorithm,
- Secant: based on the evaluation of a segment between the two last
iterated points,
- Brent: mix of Bisection, Secant and inverse quadratic
interpolation.
- and a Sampling Strategy:
- RandomDirection: we generate some points on the sphere unity
according to the uniform distribution and we consider both
opposite directions so formed.
- OrthogonalDirection: this strategy is parameterized by
:math:`k\in \{1,\dots,d\}`. We generate one direct
ortho-normalized basis :math:`(e_1, \dots, e_d)` uniformly
distributed in the set of direct orthonormal bases. We consider
all the normalized linear combinations of :math:`k` vectors
chosen within the :math:`\inputDim` vectors of the basis, where the
coefficients of the linear combinations are in
:math:`\{+1, -1\}`. This generates :math:`C_\inputDim^k 2^k` new vectors
:math:`v_i`. We sample according to all the directions defined
by the vectors :math:`v_i`.
If :math:`k=1`, we consider all the axes of the standard space.
.. topic:: API:
- See :class:`~openturns.DirectionalSampling`
.. topic:: Examples:
- See :doc:`/auto_reliability_sensitivity/reliability/plot_estimate_probability_directional_sampling`
.. topic:: References:
- Robert C.P., Casella G. (2004). Monte-Carlo Statistical Methods, Springer, ISBN 0-387-21239-6, 2nd ed.
- Rubinstein R.Y. (1981). Simulation and The Monte-Carlo methods, John Wiley \& Sons
- Bjerager, P. (1988). "Probability integration by Directional Simulation". Journal of Engineering Mechanics, vol. 114, no. 8
|