  We are interested in the design of robust (or resilient) capacitated rooted
Steiner networks in case of terminals with uniform demands. Formally, we are
given a graph, capacity and cost functions on the edges, a root, a subset of
nodes called terminals, and a bound k on the number of edge failures. We first
study the problem where k = 1 and the network that we want to design must be a
tree covering the root and the terminals: we give complexity results and
propose models to optimize both the cost of the tree and the number of
terminals disconnected from the root in the worst case of an edge failure,
while respecting the capacity constraints on the edges. Second, we consider the
problem of computing a minimum-cost survivable network, i.e., a network that
covers the root and terminals even after the removal of any k edges, while
still respecting the capacity constraints on the edges. We also consider the
possibility of protecting a given number of edges. We propose three different
formulations: a cut-set based formulation, a flow based one, and a bilevel one
(with an attacker and a defender). We propose algorithms to solve each
formulation and compare their efficiency.
