Documentation / User's manual in Python :
The FORM (First Order Reliability Method) and SORM (Second Order Reliability Method) try to estimate the probability of failure of a system. It is often used when a monte-carlo approach is not affordable due to evaluation cost.
In short, its principle uses the notion of design point: the most probable point that exceeds safety threshold. A probability transformation is applied to pass from physical space to a gaussian space, where all random variables are standard normal ones, statistically independent one from another. In this space, FORM approximates the separate function between safe and unsafe solutions with a tangent hyper-plane, while SORM approximates it with a second order taylor expansion. From this design point, FORM estimation is directly calculable, while SORM needs to evaluate the curves around it. Design point search is treated as a constrained optimisation problem.
Currently, Multi-FORM and Multi-SORM are not available, as well as the conjoint use of importance sampling with FORM SORM.
A FORM-SORM problem is a kind of parametric studies. So, it could make the best of the Relauncher architecture. Having this in mind, having a look at Chapter VIII is crucial in order to get good understanding of the following, already-introduced, concepts.
Before getting into the heart of its study, the user has to define the reliability function, which determines if the system is secure or not. The standard steps to make a FORM SORM studies are:
define the problem
declare the input parameters with their statistical law.
choose the probability transformation between random spaces.
define the
TEval
providing the reliability function.compose the two previous functions in a
TSormEval
.
find the design point (optimisation problem)
define a
TDataServer
choose an optimisation solver (eventually configure it),
create the corresponding master (eventually configure it), and declare the objective and constraints of the problem.
run the optimisation.
(FORM estimation is directly accessible from the last step in the
TDataServer
)calculate SORM estimation
define the
TSorm
object.run the estimation.
and finally, analyse the results.
To match the relauncher mold, separating evaluation from study, all parts but first are on the study side.
The second part deals with a constraint optimisation problem: find the most probable solution (objective) that is
unsafe (constraint). As the transformation function does not provide the gradient matrix and problem is constrained,
the TNloptCobyla
algorithm is the recommended local solver. See the Reoptimizer chapter for details.
The FORM estimation is implicit and the SORM estimation is optional. The classes dedicated to FORM SORM studies are described in the next chapter.
Currently, the only available probability transformation in Uranie is the simplest one. It supposes that all random variables are independent and have its statistical law known.
TSimpleTransform
is a TEval
subclass: it does not returned the
gradient matrix. Its constructor has no argument. The addParameter
method adds the
physical random variables.
In fact, it is the inverse transformation that is implemented. The inputs are the normal variable values, and it computes the physical values, the Hasofer-Lind indicator, and the FORM estimation.
TFormEval is a TComposeEval
subclass used to compose the probability transformation and the
safety function. The constructor have two arguments corresponding to this two functions. To complete the
definition, the addConstraint
method select the output variable used to classify safe and
unsafe items. It looks like the addConstraint
method of Reoptimizer classes and has the
same arguments: a TAttribute
and an optional modifier.
This class has a helper method (addOjective
) to declare both the objective and the constraint
to the design point optimisation problem.
The SORM estimation needs the principal curves of the design point. The implemented method approximates these curve: for each half axe of the hyper-plane, it searches the border line points of the separation function. The returned probability uses the Breitung approximation.
The TSorm
class is a TMaster
subclass. The constructor has the two
standard arguments: a TDataServer
and a TRun
.
For each design points found in the TDataServer
, the solverLoop
method performs an estimation of the curves, and completes its data with the FORM correction factor and SORM
estimation. If they are many design points in the TDataServer
, it may be useful to filter
them to perform a SORM estimation only with principal ones.
These searches can be done in parallel using an adequate TRun
. It does not exploit if there is
many points (it is often not the case), but inside a point estimation, can treat each half axe searches in parallel.
For a 6 input variable problem, 10 evaluation resources may be exploited.