SYS_PROB-class: System Probability Solution Object (SYS_PROB)

SYS_PROB-classR Documentation

System Probability Solution Object (SYS_PROB)

Description

The SYS_PROB class represents a probabilistic system consisting of one or more limit-state functions (SYS_LSF) and a set of reliability algorithms (PROB_MACHINE).

It allows the execution of reliability analyses for serial or parallel systems, aggregation of single limit-state results, and system-level probability evaluation.

Each limit-state function may include multiple random variables (PROB_BASEVAR) with different probability distributions. The transformation between mean/standard deviation and the native distribution parameters is handled automatically.

  • Normal ("norm"): mean = \mu, standard deviation = \sigma. Parameters: mean, sd.

  • Lognormal ("lnorm"): defined by mean m and sd s. Parameters: \mu = \log\left( \frac{m}{\sqrt{1 + (s/m)^2}} \right), \sigma = \sqrt{ \log\left( 1 + (s/m)^2 \right) }.

  • shifted Lognormal ("slnorm"): defined by Mean m, Sd s and x0. Parameters: \mu = \log\left( \frac{m-x0}{\sqrt{1 + (s/(m-x0))^2}} \right), \sigma = \sqrt{ \log\left( 1 + (s/(m-x0))^2 \right) }.

  • Gumbel ("gumbel", package "evd"): location-scale type I extreme value distribution. Parameters: location = \mu - \gamma \cdot \beta, where \gamma is the Euler-Mascheroni constant, and \beta = \frac{\sigma \sqrt{6}}{\pi}.

  • Gamma ("gamma"): shape-scale parameterization. Parameters: k = \frac{\mu^2}{\sigma^2}, \theta = \frac{\sigma^2}{\mu}.

  • Exponential ("exp"): rate \lambda or scale \theta = 1/\lambda. Parameter: \lambda = 1/\mu.

  • Beta ("beta"): bounded on [0,1]. Parameters: \alpha = \mu t, \beta = (1 - \mu) t, with t = \frac{\mu (1-\mu)}{\sigma^2} - 1.

  • Weibull ("weibull"): shape k and scale \lambda. k is determined numerically from the coefficient of variation, with the empirical approximation k \approx \left( \frac{\sigma}{\mu} \right)^{-1.086} as fallback, \lambda = \frac{\mu}{\Gamma\left(1 + \frac{1}{k}\right)}.

  • Empirical ("emp"): non-parametric distribution defined by observed sample. Parameter: obs = numeric vector of observations. The empirical CDF is constructed from the ordered sample. Duplicate values are allowed but may trigger a warning.

  • Student t ("st"): marginal density of a normal-gamma model describing uncertainty in \mu and \sigma. Hyperparameters: (m, s, n, \nu).

  • Log-Student t ("lt"): marginal density of a log-normal-gamma model describing uncertainty in \mu and \sigma. Hyperparameters: (m, s, n, \nu).

The types '"binom"' and '"unif"' are reserved for future extensions. The package automatically checks consistency between mean, standard deviation and coefficient of variation.

Methods available in this class:

* '$runMachines()' - executes all solution algorithms for each limit state function. * '$calculateSystemProbability()' - computes system reliability using bounds or Monte Carlo based methods ('MC_IS', 'MC_CRUDE', 'MC_SubSam'). * '$printResults()' - prints a detailed report to console or file. * '$saveProject(level)' - saves results at different detail levels.

Details

The class is built on setRefClass and therefore uses mutable fields. All objects ('PROB_BASEVAR', 'SYS_LSF', ...) are expected to be already **checked** (via the 'check()' method) before they are passed to 'SYS_PROB'.

Fields

sys_input

List of 'SYS_LSF' objects - the individual limit-state functions.

sys_type

Character string, '"serial"' or '"parallel"'. Used by 'calculateSystemProbability()'.

probMachines

List of 'PROB_MACHINE' objects - the analysis methods.

res_single

List of results per machine for each limit-state function.

res_sys

List of results for the system-level reliability calculation.

beta_single

Matrix of \beta-values obtained from the single-problem analyses.

beta_sys

Matrix of \beta-values obtained from the system reliability calculations.

params_sys

List that stores the parameter sets used in Monte-Carlo runs.

debug.level

Numeric verbosity level (0 = silent, 1 = basic, 2 = detailed).

Methods

calculateSystemProbability(calcType = "simpleBounds", params = list())

Calculates the system probability if more than one lsf is given and a system_type (serial or parallel) is set. If calcType is empty (or simpleBounds), only simple bounds are computed from the single results of runMachines() (the machines can be FORM, SORM, ...). If calcType is MCIS, an importance sampling method for systems is used (serial and parallel systems). If calcType is MCC, a crude Monte Carlo simulation of the system limit-state function is used. If calcType is MCSUS, subset simulation of the system limit-state function is used. A system analysis with FORM or SORM is not available. You can pass arguments to methods via the params field, while the argument has to be a named list (for example check the vignette).

printResults(path = "")

TesiproV can create a report file with all the necessary data for you. If you provide a path (or filename, without ending) it will store the data there, otherwise it will report to the console. Set the path via setwd() or check it via getwd().

runMachines()

Starts solving all given problems (sys_input) with all given algorithms (probMachines). First checks that all analysis methods are loaded before validating limit-state functions.

saveProject(level, filename = "tesiprov_project")

You can save your calculation project with saveProject(). There are four different levels of detail to save 1st Level: Only the beta values 2nd Level: The result Objects of single or systemcalculation 3th Level: All The Probablity System Object, including limit state functions, machines and solutions 4th Level: An image of your entire workspace

Author(s)

(C) 2021-2026 K. Nille-Hauf, T. Feiri, M. Ricker, T. Lux – Hochschule Biberach (until 2022), TU Dortmund University - Chair of Structural Concrete (since 2023)

Examples

ps <- SYS_PROB(
  sys_input = list(SYS_LSF(), SYS_LSF()),
  probMachines = list(PROB_MACHINE()),
  sys_type = "serial"
)
## Not run: 
ps$runMachines()
ps$beta_sys
ps$res_sys
ps$printResults("example_1")
ps$saveProject(4, "example_1")

## End(Not run)


TesiproV documentation built on Oct. 28, 2026, 5:13 p.m.