We study the problem of containing spreading processes in arbitrary directed
networks by distributing protection resources throughout the nodes of the
network. We consider two types of protection resources are available: (i)
Preventive resources able to defend nodes against the spreading (such as
vaccines in a viral infection process), and (ii) corrective resources able to
neutralize the spreading after it has reached a node (such as antidotes). We
assume that both preventive and corrective resources have an associated cost
and study the problem of finding the cost-optimal distribution of resources
throughout the nodes of the network. We analyze these questions in the context
of viral spreading processes in directed networks. We study the following two
problems: (i) Given a fixed budget, find the optimal allocation of preventive
and corrective resources in the network to achieve the highest level of
containment, and (ii) when a budget is not specified, find the minimum budget
required to control the spreading process. We show that both resource
allocation problems can be solved in polynomial time using Geometric
Programming (GP) for arbitrary directed graphs of nonidentical nodes and a wide
class of cost functions. Furthermore, our approach allows to optimize
simultaneously over both preventive and corrective resources, even in the case
of cost functions being node-dependent. We illustrate our approach by designing
optimal protection strategies to contain an epidemic outbreak that propagates
through an air transportation network