## 2 Related Work
In a case study, they showed that by employing three classes of nodes, which fail independently and with different probabilities, a more resilient network can be obtained as compared to a monoculture topology, which is composed solely by nodes from the most reliable class. The optimum assignment is reached when for every class there is at least one path, consisting of nodes of the same class, set up among every pair of end-nodes. [PERSON] et al. proposed in [13] to decompose the network diversification problem in two subproblems: One for identifying the number of nodes per class should be used to minimize the entire network vulnerability, and another to determine the location of those different node classes to maximize the average connectivity of the entire network. The work presented here is a substantial extension of the ideas exposed in [13]. The key differences between the works are: (i) Here the network design starts one step earlier by selecting the network technologies; (ii) classes are mapped here to technologies, bringing our earlier theoretical work to a more applied setting; (iii) the vulnerability index introduced in [13] is now defined through the number of risks exhibited by a technology; (iv) the devices' placement method is improved here by formulating an optimization problem that aims to locate the more resilient nodes at the most vulnerable network zones; and (v) novel methods for solving the proposed optimization problems are presented here. Other approaches have been also employed for improving resilience and survivability. [PERSON] et al. presented a new model for network survivability based upon network heterogeneity [32]. They introduced the concept of diversity space, where different network elements, like OSs, communication media, service models, network protocols, routing mechanisms, etc., were mapped onto different dimensions. Equipped with this definition for a diversity space, the authors used the distance between network elements as a metric for stating that, the larger the distance between network elements, the higher the diversity and smaller the network vulnerability. In [33], [PERSON] and [PERSON] proposed a bug tolerant router. This router contains several virtual implementations running in parallel inside the same hardware. The idea is that software diversification makes unlikely that every implementation fails at the same time. Finally, the output of the virtual instances enters a voting process that selects the router output. Another two different applications of network diversity for increasing network survivability and reliability were introduced in the contexts of cyber-security [34; 35; 36; 37] and virus contention [38; 39; 40; 41]. In [34; 35] attack graphs and attack paths are defined as the ways an attacker can get access to a network asset. Security metrics were designed to characterize how difficult it is for the attacker to exploit the security mechanism of each node between him and the asset. Thus, node diversity imposes independent efforts from the attacker to get access to each of them. In [36] [PERSON] et al. proposed both the least attacking effort and the average attacking effort metrics to compute a distance between an attacker and an asset. These metrics were based upon the number of hops and the number of different types of nodes separating the attacker and the asset. Consequently, the more diverse the types of nodes the more resilient the network in the face of 0-day attacks. In [37], the authors aimed to allocate heterogeneous security mechanisms at the network nodes, thereby making difficult the access of an attacker to a target asset of interest. Their main research idea relied on allocating nodes in such a way that neighbors should not share the same vulnerabilities. This idea produced a decrease in the severity of cyber-attacks by reducing the repetition of a single vulnerability in every attack path. To avoid malware spreading the theory of perfect coloring, which aims to prevent that two neighboring nodes share the same color, was used.