## 4 Reliability, Availability and Fault Tree Analysis
### Fault Tree Analysis  
Fault tree analysis (FTA) is a deductive technique commonly used to evaluate system's dependability [43]. It can be used to describe the root causes that lead to a system failure, in a qualitative or quantitative way. In the former case, it can be used during system development to identify potential problems that could lead to a system failure, or after commissioning, to identify events that caused a system failure. In the latter case, it is mainly used to obtain dependability measures, such as the system's reliability and availability. Fault trees (FT) are a graphical model that represents the combination of events that lead to a system failure. The model uses a treelike structure composed by events and logic gates. Events represent either normal or faulty conditions, such as component failures, environmental conditions, human-made faults, _etc_. They are considered _boolean_, _i.e._, they either occur or not occur. Logic gates are used to represent the cause-effect relationships among events. The inputs of these gates are either single events or combinations of events which result from the output of other gates. There are several types of gates available, such as _and_, _or_ and _k-out-of-n_ (Figure 3). The process of building a FT is performed deductively and starts by defining the top_event_, which represents the _system failure condition_. From this event, and by proceeding backwards, the possible root causes are identified. The events at the bottom of the tree are referred as _basic events_. If a basic event occurs two or more times in a FT it is called a _repeated event_. From a probabilistic point of view, the assessment of a FT consists of calculating the probability of the top event starting from the probabilities of the basic events. This calculation is performed differently for each type of gate. Assuming a gate with \(n\) independent inputs (events), where the occurrence of event \(i\) is described by means of a cumulative distribution function \(F_{i}(t)\), then the gate output CDF \(F_{fc}(t)\) is given according to the Figure 3[42]. When an _and_ gate is used, the failure condition occurs only if all input events have occurred. On the other hand, when an _or_ gate is used, the failure condition occurs if at least one input event have occurred. Finally, if a _k-out-of-n_ gate is used, the failure condition occurs if at least \(k\) input events have occurred. When a FT does not contain any repeated event, the probability of the top event can be obtained through direct calculation using the formulas presented in Figure 3. However, if there are repeated events these equations are no longer valid. Therefore, in these situations it is necessary to employ different approaches. In the literature we can find several techniques to accomplish this task, such as inclusion-exclusion principle, sum of disjoint products, factorization and direct/indirect recursive methods [43]. In the context of this work, we will focus on the _sum of disjoint products_ (SDP) [44]. Figure 3: Cumulative distribution function (\(F_{fc}(t)\)) for the gate output (_and_, _or_, _k-out-of-n_). The SDP method can be efficiently employed in fault trees with repeated events and it is easily automated. The basic idea of SDP is to find a boolean function \(\phi(\mathbf{x})\) that describes the failure condition (_i.e._, the top event), and to transform this function into another function where the individual terms are mutually exclusive. Consider a system with \(n\) components. The first step starts by obtaining the _structure function_ of the system, \(\phi(\mathbf{x})\), which is given by  
\[\phi(\mathbf{x})=\left\{ \begin{array}{ll}1&\quad\text{if the system has failed}\\ 0&\quad\text{if the system has not failed}\end{array} \right. \tag{6}\]  
where \(\mathbf{x}\) is referred as the _state vector_, \(\mathbf{x}=(x_{1},x_{2},\ldots,x_{n})\). Each element \(x_{i}\) is a boolean variable that represents the state of component \(i\) (e.g., \(i=1\Leftrightarrow\) the component has failed).