InverseFORM¶
- class otrobopt.InverseFORM(*args)¶
Inverse First Order Reliability Method.
The Inverse FORM algorithm solves the inverse reliability problem: given a target reliability index
, find the parameter
to be calibrated of the limit state function
such that the reliability index of the resulting failure event equals
.
In this class,
denotes the stochastic (random) parameters in standard space and
denotes the parameter to be optimized.
Formally, the algorithm seeks a pair
such that:
where
is the Most Probable Point (MPP) on the sphere of radius
in standard space and
is the calibrated parameter value such that
.
The algorithm is iterative. At each iteration
:
Compute the gradient of the limit state function with respect to the physical variables
and with respect to the parameter
.
Compute the direction of update in the standard space:
Compute the parameter update:
Update
and
where
is determined by a step-size control strategy.
The algorithm converges when:
The parameter variation
is below
(variable convergence)
The limit state value
is below
(limit state convergence)
The beta variation
is below
(beta convergence)
- Parameters:
- event
RandomVector Event we are computing the probability of.
- parameterNamestr
Name of the parameter of the limit state function to be calibrated.
- physicalStartingPointsequence of float
Physical space starting point for the design point search.
- event
Methods
Beta convergence criterion accessor.
Accessor to the object's name.
Fixed-step mode accessor.
Fixed-step value accessor.
Limit-state convergence criterion accessor.
Maximum iteration accessor.
getName()Accessor to the object's name.
Result accessor.
Target reliability index accessor.
Variable convergence criterion accessor.
Line search maximum iteration accessor.
hasName()Test if the object is named.
run()Run the algorithm.
setBetaConvergence(betaConvergence)Beta convergence criterion accessor.
setFixedStep(fixedStep)Fixed-step mode accessor.
setFixedStepValue(fixedStepValue)Fixed-step value accessor.
setLimitStateConvergence(limitStateConvergence)Limit-state convergence criterion accessor.
setMaximumIteration(maximumIteration)Maximum iteration accessor.
setName(name)Accessor to the object's name.
setResult(result)Result accessor.
setTargetBeta(targetBeta)Target reliability index accessor.
setVariableConvergence(variableConvergence)Variable convergence criterion accessor.
Line search maximum iteration accessor.
Examples
>>> import openturns as ot >>> import otrobopt >>> ot.RandomGenerator.SetSeed(0)
Define a simple beam deflection limit state with a parametric input:
>>> full = ot.SymbolicFunction(['E', 'F', 'L', 'b', 'h'], ['F*L^3/(48.*E*b*h^3/12.)']) >>> g = ot.ParametricFunction(full, [2], [5.0]) # freeze L = 5.0
Define the random distribution for the inputs:
>>> coll = [ot.LogNormalMuSigmaOverMu(30000., 0.12, 0.).getDistribution(), ... ot.LogNormalMuSigmaOverMu(0.1, 0.2, 0.).getDistribution(), ... ot.LogNormalMuSigmaOverMu(0.2, 0.05, 0.).getDistribution(), ... ot.LogNormalMuSigmaOverMu(0.4, 0.05, 0.).getDistribution()] >>> distribution = ot.JointDistribution(coll) >>> x0 = [coll[i].computeQuantile(0.5)[0] for i in range(len(coll))] >>> vect = ot.RandomVector(distribution) >>> output = ot.CompositeRandomVector(g, vect) >>> event = ot.ThresholdEvent(output, ot.Greater(), 0.02)
Solve the inverse problem: what beam length
yields
?
>>> algo = otrobopt.InverseFORM(event, 'L', x0) >>> algo.setTargetBeta(3.0) >>> algo.run() >>> result = algo.getResult() >>> parameter = result.getParameter()
- __init__(*args)¶
- getBetaConvergence()¶
Beta convergence criterion accessor.
- Returns:
- betaConvfloat
Convergence threshold on
.
- getClassName()¶
Accessor to the object’s name.
- Returns:
- class_namestr
The object class name (object.__class__.__name__).
- getFixedStep()¶
Fixed-step mode accessor.
- Returns:
- fixedStepbool
Whether a fixed step size is used.
- getFixedStepValue()¶
Fixed-step value accessor.
- Returns:
- stepfloat
Step size
used when the fixed-step mode is enabled.
- getLimitStateConvergence()¶
Limit-state convergence criterion accessor.
- Returns:
- gConvfloat
Convergence threshold on
.
- getMaximumIteration()¶
Maximum iteration accessor.
- Returns:
- maxIterint
Maximum number of outer iterations.
- getName()¶
Accessor to the object’s name.
- Returns:
- namestr
The name of the object.
- getResult()¶
Result accessor.
- Returns:
- result
InverseFORMResult The result structure containing the calibrated parameter, convergence criteria, and the standard FORM results.
- result
- getTargetBeta()¶
Target reliability index accessor.
- Returns:
- betafloat
Target reliability index
.
- getVariableConvergence()¶
Variable convergence criterion accessor.
- Returns:
- varConvfloat
Convergence threshold on
.
- getVariableStepMaxIterations()¶
Line search maximum iteration accessor.
- Returns:
- maxIterint
Maximum number of line search iterations.
- hasName()¶
Test if the object is named.
- Returns:
- hasNamebool
True if the name is not empty.
- run()¶
Run the algorithm.
Launches the iterative inverse FORM algorithm. The result is stored internally and can be retrieved with
getResult().
- setBetaConvergence(betaConvergence)¶
Beta convergence criterion accessor.
Sets the tolerance
on the convergence of the reliability index
.
- Parameters:
- betaConvfloat
Convergence threshold on
.
- setFixedStep(fixedStep)¶
Fixed-step mode accessor.
When enabled, the algorithm uses a constant step size
(see
setFixedStepValue()) for the parameter and design point updates. When disabled, an Armijo-like line search is performed at each iteration.- Parameters:
- fixedStepbool
Whether to use a fixed step size.
- setFixedStepValue(fixedStepValue)¶
Fixed-step value accessor.
- Parameters:
- stepfloat
Step size
used when the fixed-step mode is enabled.
- setLimitStateConvergence(limitStateConvergence)¶
Limit-state convergence criterion accessor.
Sets the tolerance
on the convergence of the limit state function value.
- Parameters:
- gConvfloat
Convergence threshold on
.
- setMaximumIteration(maximumIteration)¶
Maximum iteration accessor.
- Parameters:
- maxIterint
Maximum number of outer iterations of the inverse FORM algorithm.
- setName(name)¶
Accessor to the object’s name.
- Parameters:
- namestr
The name of the object.
- setResult(result)¶
Result accessor.
- Parameters:
- result
InverseFORMResult The result structure.
- result
- setTargetBeta(targetBeta)¶
Target reliability index accessor.
- Parameters:
- betafloat
Target reliability index
.
- setVariableConvergence(variableConvergence)¶
Variable convergence criterion accessor.
Sets the tolerance
on the convergence of the calibrated parameter.
- Parameters:
- varConvfloat
Convergence threshold on
.
- setVariableStepMaxIterations(variableStepMaxIterations)¶
Line search maximum iteration accessor.
Maximum number of backtracking steps in the variable step-size (Armijo-like) line search.
- Parameters:
- maxIterint
Maximum number of line search iterations.
otrobopt