otaf.uncertainty package

Module contents

Reliability analysis, failure probability estimation, and LP problem optimization.

otaf.uncertainty.compute_failure_probability_FORM(ot_function, composed_distribution, threshold=0.0, start_point=None, verbose=False, solver=None)[source]

Compute failure probability using FORM.

Calculate the failure probability for an event defined by a threshold violation by finding the design point in the standard normal space and applying a first-order approximation.

Parameters:
  • ot_function (ot.Function) – The performance function of the system.

  • composed_distribution (JointDistribution) – The joint probability distribution of the input random variables.

  • threshold (float, optional) – The limit state threshold. Default is 0.0.

  • start_point (ot.Point, optional) – Initial starting point for the optimization algorithm in physical space. Default is None.

  • verbose (bool, optional) – If True, print reliability diagnostics. Default is False.

  • solver (ot.OptimizationAlgorithm, optional) – The optimization algorithm to find the design point. Uses ot.Cobyla() with strict convergence tolerances if None.

Returns:

The calculated failure probability and the full FORM result object.

Return type:

tuple[float, ot.FORMResult]

otaf.uncertainty.compute_failure_probability_NAIS(ot_python_function, distribution, threshold=0.0, quantile_level=0.001, verbose=False)[source]

Compute failure probability using the NAIS algorithm.

Parameters:
  • ot_python_function (ot.PythonFunction) – The performance function g(X).

  • distribution (JointDistribution) – The input random vector distribution.

  • threshold (float, optional) – The threshold value. Default is 0.0.

  • quantile_level (float, optional) – The quantile level for the NAIS algorithm. Default is 0.001.

  • verbose (bool, optional) – If True, print additional information. Default is False.

Returns:

  • proba (float) – The estimated failure probability.

  • result (ot.SimulationResult) – Additional NAIS algorithm results object.

Return type:

tuple[float, SimulationResult]

otaf.uncertainty.compute_failure_probability_SUBSET(ot_python_function, distribution, threshold=0.0, verbose=False, proposal_range=2, target_probability=0.1)[source]

Compute failure probability using subset sampling.

Parameters:
  • ot_python_function (ot.PythonFunction) – The performance function g(X).

  • distribution (JointDistribution) – The input random vector distribution.

  • threshold (float, optional) – The threshold value. Default is 0.0.

  • verbose (bool, optional) – If True, print additional information. Default is False.

  • proposal_range (float, optional) – The proposal range for the Markov chain Monte Carlo steps. Default is 2.0.

  • target_probability (float, optional) – The target probability for each conditional step. Default is 0.1.

Returns:

  • proba (float) – The estimated failure probability.

  • result (ot.SimulationResult) – Additional subset sampling algorithm results object.

  • algo (ot.SubsetSampling) – The subset sampling algorithm instance used for the simulation.

Return type:

tuple[float, SimulationResult, Any]

otaf.uncertainty.compute_failure_probability_subset_sampling(constraint_matrix_generator, defect_distribition_vector, C=None, bounds=None, n_cpu=1)[source]

Calculate failure probability for a sample of defects.

Parameters:
  • constraint_matrix_generator (Callable) – Class or callable for fixing deviations and defining constraints.

  • defect_distribition_vector (ot.RandomVector) – The random vector representing the defect distribution.

  • C (np.ndarray, optional) – Coefficient matrix for the linear objective function. Default is None.

  • bounds (list of list of float or np.ndarray, optional) – Bounds for gap variables. Default is None.

  • n_cpu (int, optional) – Number of CPUs to use for parallel execution. Default is 1.

Returns:

The simulation result object containing the estimated failure probability and simulation diagnostics.

Return type:

ot.SimulationResult

otaf.uncertainty.compute_gap_optimizations_on_sample(constraint_matrix_generator, deviation_array, C=None, bounds=None, n_cpu=1, progress_bar=False)[source]

Compute gap optimizations for a set of samples using MILP.

Solve a sequence of Mixed-Integer Linear Programming (MILP) problems derived from a system of constraints to determine the optimal gap for each sample.

Parameters:
  • constraint_matrix_generator (SystemOfConstraintsAssemblyModel) – Generator object that produces the constraint matrices and bounds.

  • deviation_array (np.ndarray) – Array representing deviations to be processed.

  • C (np.ndarray, optional) – Coefficient matrix for the linear objective function. Default is None.

  • bounds (list of list of float or np.ndarray, optional) – Bounds for the optimization variables. Default is None.

  • n_cpu (int, optional) – Number of CPUs to use for parallel processing. Default is 1.

  • progress_bar (bool, optional) – Whether to display a progress bar. Default is False.

Returns:

A list of optimization result objects for each sample in the input array.

Return type:

list of OptimizeResult

otaf.uncertainty.compute_gap_optimizations_on_sample_batch(constraint_matrix_generator, deviation_array, C=None, bounds=None, n_cpu=1, batch_size=1000, progress_bar=False, verbose=0, dtype='float32')[source]

Compute gap optimizations using batch processing and MILP.

Perform parallel batch optimization for a system of constraints, grouping samples into batches to improve computational throughput and reduce parallelization overhead.

Parameters:
  • constraint_matrix_generator (SystemOfConstraintsAssemblyModel) – Generator object that produces constraint matrices.

  • deviation_array (np.ndarray) – Array of deviations to process.

  • C (np.ndarray, optional) – Coefficient matrix for the linear objective function. Default is None.

  • bounds (list of list of float or np.ndarray, optional) – Bounds for the optimization variables. Default is None.

  • n_cpu (int, optional) – Number of CPUs for parallel processing. Negative values are relative to total available CPUs. Default is 1.

  • batch_size (int, optional) – Number of points per parallel batch. Default is 1000.

  • progress_bar (bool, optional) – Whether to display a progress bar. Default is False.

  • verbose (int, optional) – Verbosity level for debugging. Default is 0.

  • dtype (str, optional) – Data type for the resulting optimized decision variable array. Default is 'float32'.

Returns:

Optimized decision variables for all samples stacked into a single array.

Return type:

np.ndarray

otaf.uncertainty.milp_batch_sequential(c, bounds, a_ub, b_ub, a_eq, b_eq)[source]

Optimize a batch of linear programming problems sequentially.

Solve a sequence of Mixed-Integer Linear Programming (MILP) problems sharing common objective coefficients and constraint matrices, but varying constraint bounds.

Parameters:
  • c (np.ndarray) – Coefficients of the linear objective function to be minimized.

  • bounds (np.ndarray) – An (n, 2) array defining the lower and upper bounds of variables.

  • a_ub (np.ndarray) – 2D array for the upper-bound inequality constraints.

  • b_ub (np.ndarray) – 2D array of upper-bound values for each inequality constraint per problem.

  • a_eq (np.ndarray) – 2D array for the equality constraints.

  • b_eq (np.ndarray) – 2D array of equality constraint values per problem.

Returns:

2D array of optimized decision variables for each problem in the batch.

Return type:

np.ndarray

Notes

This function solves MILP problems using scipy.optimize.milp. Solver options are set to disp=False and presolve=True for efficiency. Problems share c, a_ub, and a_eq, while b_ub and b_eq vary per batch element.