Compute the signature of a system
The system signature (Samaniego, 2007) is an alternative to the structure function as a starting point for a structural reliability analysis. This automatically computes the signature of the specified system or network. Here, system implies components are unreliable whereas network implies links are unreliable.
if the cut-sets of the system or network are already known they may be passed in as a list of numeric vectors. This can save time because cut-set computation is the slowest part of the algorithm. Leaving as NULL causes the function to find the cut sets itself.
if TRUE then the function prints out signature elements as fractions rather than returning a decimal signature vector.
The signature of a system is the probability vector s=(s_1, …, s_n) with elements:
s_i = P(T=T_i:n)
where T is the failure time of the system and T_i:n is the ith order statistic of the n component failure times. Likewise the network signature is the same but where components are reliable and it is links which fail. See Samaniego (2007) for details.
The system or network is specified by means of an
igraph object, whereby each end of the system is denoted by nodes names "s" and "t" which are taken to be perfectly reliable. It is easy to construct the appropriate graph representation using the function
computeSystemSignature returns a numeric probability vector which is the system/network signature.
Please feel free to email firstname.lastname@example.org with any queries or if you encounter errors when running this function.
Samaniego, F. J. (2007), System Signatures and Their Applications in Engineering Reliability, Springer.
1 2 3 4 5 6 7 8 9
# Find the signature of two component series system (which is just s=(1, 0)) computeSystemSignature(graph.formula(s -- 1 -- 2 -- t)) # Find the signature of two component parallel system (which is just s=(0, 1)) computeSystemSignature(graph.formula(s -- 1:2 -- t)) # Find the signature of the five component 'bridge' system (which # is s=(0, 0.2, 0.6, 0.2, 0)) computeSystemSignature(graph.formula(s -- 1 -- 2 -- t, s -- 3 -- 4 -- t, 1:2 -- 5 -- 3:4))