In formal terms, a Boolean network can be represented as a graph G = (V, E) consisting of a set of n nodes V = {v1, …, vn} and a set of k edges E = {e1, …, ek} between the nodes. For every time point t, each node vi has a state vi(t) ∈ {0, 1} denoting either no expression or expression of a gene or absence or presence of activity of a regulatory property, respectively. In a non-probabilistic Boolean network, the state vector, or simply the state S(t) of the network at time t corresponds to the vector of the node states at time t, i.e., S(t) = (v1(t), …, vn(t)). Thus, since every vi(t) can take only 2 possible values 0 or 1, the number of all possible states is 2n. In probabilistic Boolean networks (PBNs), as we will outline below, we are dealing with a probability distribution over several states at each time point. This is why, in order to extend the definition of states to probabilistic Boolean Networks, we will refer to a specific state as Si from now on where i ∈ {0, …, 2n}, independent of the time of its appearance. Every node is updated at every time point by application of a set of update functions F = {F1, …, Fn} that integrate the input information of edges on one node. In other words, the function Fi assigns a new state value to the node vi at time t + 1, i.e., vi(t + 1). They depend on the state of k input nodes with k ∈ {0, …, n} at time t.