Scalable Approximation Algorithm for Network Immunization
The problem of identifying important players in a given network is of pivotal importance for viral marketing, public health management, network security and various other fields of social network analysis. In this work we find the most important vertices in a graph to immunize so as the chances of an epidemic outbreak is minimized. This problem is directly relevant to minimizing the impact of a contagion spread (e.g. flu virus, computer virus and rumor) in a graph (e.g. social network, computer network) with a limited budget (e.g. the number of available vaccines, antivirus software, filters). It is well known that this problem is computationally intractable (it is NP-hard). In this work we reformulate the problem as a budgeted combinational optimization problem and use techniques from spectral graph theory to design an efficient greedy algorithm to find a subset of vertices to be immunized. We show that our algorithm takes less time compared to the state of the art algorithm. Thus our algorithm is scalable to networks of much larger sizes than best known solutions proposed earlier. We also give analytical bounds on the quality of our algorithm. Furthermore, we evaluate the efficacy of our algorithm on a number of real world networks and demonstrate that the empirical performance of algorithm supplements the theoretical bounds we present, both in terms of approximation guarantees and computational efficiency.
Keywords: Graph Immunization, eigendrop, closed walks
Pairwise interactions between homogeneous entities are commonly modeled as a network. Entities could be computer (computer networks), humans (social network) and electronic components (electricity distribution network) to name a few. Such graphs usually are very large and analytics on them is of pivotal importance among many others, in the field of scientific and engineering research, economics, public health management, and business analytics. In all of these scenarios these systems are threatened by the propagation of harmful entities that moves from a node to its neighbor(s). For instance when a person catches a particular viral disease, the virus will contaminate other people interacting with an already sick person. Similarly, computer virus spread in the whole network with information sharing, and component failure in an electric grid would cause erroneous functionality in the whole network.
If not contained, this spread of malicious contents will result in an outbreak in the graph with serious effects on the functionality of network. We want to provide some extra capability to some of the nodes in a graph such that those selected nodes will neither be contaminated by malicious content nor will they pass it on to their neighbors. We refer to this as these nodes are immunized. Given a graph topology, our goal is to immunize a subset of nodes that will maximally hinder the spread of undesirable content. As there is cost associated with immunization of nodes, we can only immunize a subset of nodes (not exceeding the given budget).
We abstractly formulate, this problem, known as the Network Immunization Problem (Chen & Chau, 2016), as follows.
Given an undirected graph , , and an integer , find a set of nodes such that “ immunizing” nodes in , renders the least “vulnerable” to an attack over all choices of such that .
We need to formally define immunizing a node and vulnerability of the graph for a precise formulation of the problem. We use the SIS model of infection spread, where once a node is immunized it remains protected that time on. We also need to quantify graph’s vulnerability that is our objective.
Definitions and Problem Formulation
For a graph , denotes the adjacency matrix of or just when the graph is clear from the context. For a subset of nodes , is the subgraph induced by nodes in and represents its adjacency matrix (i.e. ). When is a subset of , , , that is is the subgraph obtained after removing the nodes of . We denote by the adjacency matrix of .
or is the eigen spectrum of the graph or its adjacency matrix . Where , is the largest eigenvalue of (also called spectral radius of ) (Chung, 1997).
For a graph, its epidemic threshold is one of its intrinsic properties. It is of interest to us, as it is well known that if virus strength is more than the epidemic threshold of the graph, then an outbreak will occur. From the epidemiology literature we get that the epidemic threshold of a graph depends upon the largest eigenvalue of (Chakrabarti & Faloutsos, 2008). Hence a common parameter to measure network’s vulnerability is the largest eigenvalue of the adjacency matrix of the graph (Chen & Chau, 2016; Ahmad et al., 2016). In this context, our objective reduces to selecting a subset of nodes so as the remaining graph has the as small largest eigenvalue as possible. More precisely, supposed is the largest eigenvalue of the . Our problem can be formulated as follows:
Let be an undirected graph and let be an integer , find a subset of nodes , with such that is the minimum possible over all -subsets of .
In this work we model the Problem 2 as a budgeted combinatorial optimization objective function. Using tools from linear algebra and graph we establish the relationship between the original objective function and the one that we formulate. We define a score of each vertex that is based on the number of closed walks in the graph containing the vertex. We design a randomized approximation algorithm to estimate score of each vertex and greedily select nodes for immunization. Using the fact that our objective function is monotone and sub-modular, we prove a tight analytical guarantee on the quality of our estimate. In addition to theoretical bounds on the quality and runtime of our algorithm we also evaluate our algorithm on various real world graphs. We demonstrate that we achieve up to improvement in terms of drop in vulnerability. Moreover, running time of our algorithm is substantially lower than that of existing solutions.
We provide an outline for the remaining paper. In the following section we provide a detailed background to Problem 2 and discuss its computational intractability and approaches to approximate it. Our proposed algorithm is presented in the section following that, which also contains approximation guarantees and complexity analysis of our algorithm. The subsequent section contains immunization results from tests of our algorithm on several real world graphs. We also provide performance comparisons of our algorithm with other known algorithms. Section Related work contains detailed literature review on the problem. A brief conclusion of this work and discussion on future directions is given in the last section.
Eigendrop quantifies the gain after immunizing a set of nodes. We can compute eigendrop by . Eigendrop depicts how much graph vulnerability has been reduced after immunizing node set . Brute force technique cannot be applied as a solution to problem 2 since computing eigenvalue corresponding to different sets gives runtime of the method (largest eigenvalue of a graph can be computed in (Chen & Chau, 2016))
Indeed, it turns out that solving Problem 2 optimally is NP-Hard. A straight forward reduction from Minimum Vertex Cover Problem follows as, If there exists a set with such that , then is a vertex cover of the graph. It follows from the following implication of famous Perron-Frobenius theorem
(Serre, 2002) Deleting any edge from a simple connected graph strictly decreases the largest eigenvalue of the corresponding adjacency matrix.
Also, If there is a vertex cover of the graph such that then deleting will result in an empty graph which has eigenvalue zero.
Although Problem 1 is NP-Hard, the following greedy algorithm guarantees a -approximation to the optimal solution to Problem 2.
Approximation guarantee of GREEDY-1 follows from Theorem 2.
(Nemhauser & Fisher, 1978) Let be a non-negative, monotone and submodular function, . Suppose is an algorithm, that choose a elements set by adding an element at each step such that . Then is a -approximate algorithm.
For sparse graphs largest eigenvalue can be computed in , running time of GREEDY-1 amounts to . This runtime is impractical for any reasonably large real world graph.
In (Chen & Chau, 2016), a score, shield-value, was assigned to each subset , which measures the approximated eigendrop achieved by removing the set . They defined a monotone sub-modular function, using which they proposed a greedy algorithm with runtime . Afterwards in (Ahmad et al., 2016), same problem was solved using score based on number of closed walks of length and a greedy algorithm was presented.
Our Proposed Algorithm
As stated in introduction section, we use largest eigenvalue as the measure of vulnerability. In this section we give our approximation algorithm to find the best subset for immunization. We first review some basic facts from linear algebra and graph theory to justify our approach. Let be an matrix; the following results from linear algebra [c.f. (Strang, 1988), and (West, 2001)] relate the eigen spectrum and the trace of .
Using the above relation we establish that for immunization problem, we want to find a set of vertices in graph which, when removed, minimizes where is the adjacency matrix of . So goodness of a set is defined as
that we want to minimize. Also define complement of the function as
Clearly minimizing is equivalent to maximizing . Now we give combinatorial definition of the optimization functions defined above using the following fact from graph theory. For a set , and vertices , is the set of neighbors of in and , called degree of in . When , we refer to as . Moreover represents the size of common neighborhood of and in set , i.e . For a vertex , is the set of all closed walks of length in containing at least once and . Similarly we define to be the set of closed walks of length containing vertices of and correspondingly is the cardinality of the set. For simplicity we write as .
(West, 2001) Given a graph with adjacency matrix ,
From the above fact and definition of trace, we get that
Note that this is same equation as (2) and can be rewritten as . This tells us we need to find set which maximizes (equivalently ). Computing is expensive for large value of , but in practice we observe that is sufficiently large.
Given a graph with adjacency matrix
A typical closed walk of length can be represented as . Note that can appear in a closed walk of length at most thrice.
First we count the walks that contain exactly once. Lets assume that appears at the first position, i.e. . Now since can not appear at any other position, we get that . Also , and are paths of length and number of such walks can be , and respectively. But may include case. So to exclude this we subtract from (this will be only if is neighbor of both and ). We get that number of closed walks of length containing only at first position is . Each one position rotation of this walk results in distinct walk of the kind, so we get that walks containing exactly once are .
Now we count the walks containing twice. One way to get such walk is is in first and third positions i.e. . Number of such walks is . Again each rotation gives unique walk, so we have such walks. Another way to have a walk with appearing twice is . There are walks with at first and fourth position which is same as
. Note that only two clockwise rotations result in new walks. This gives that total number of closed walks of length containing twice is
If we consider walks which contain thrice, then there are two possibilities for such walks, one which start at and . Count for either of them is . This gives the total count of these walks as .
So number of closed walks of length containing a vertex in graph is
Clearly computing this number for any vertex takes time where is the time taken for computing . So instead we approximate the number of closed walks of length containing .
Approximating number of walks
An equivalent expression for is
The formula for suggests that we need to approximate the powers of adjacency matrix of . For the purpose, we consider a summary graph of which is weighted undirected graph with adjacency matrix . We generate matrix (graph ) in the following way:
First we partition the vertex set into random subsets using a random hash function . Let the partition of vertices under the hash function be with . Second we construct matrix as
This matrix corresponds to summary graph in which every node (super-node) represents a set of vertices in and entry denotes the number of edges from super-node to super-node (number of edges from vertices in super-node to vertices in super-node ). Lets denote th super-node of by
In order to approximate of a vertex , we use powers of matrix instead those of . We keep and matrices. For each , we compute terms using formula and by .
Note that represents the total number of walks of length from vertices in to vertices in . So we can find the number of closed walks of length containing a specific vertex , by estimating the contribution of this vertex in the total number of walks in . For this purpose, we define the contribution factor of with in as
This can be seen clear if we expand the terms . For instance if we expand , we get one term as which is same as . We define to be . So we get that the estimated value of is following when
Since we partitioned using random hash functions, we use multiple hash functions to normalize the effect of randomness as given follow.
Once we have estimated the walks for each vertex of using multiple hash functions, call it , we can select set for immunization that contain vertices with most number of walks. But for efficient results we would prefer to choose that have vertices which are well spread apart and we do not want to select a lot of those vertices which are connected to each other. In order to deal with this, we define the score of each candidate subset , on basis of which we select for immunization. For , and ,
where is a positive integer. We want to find set such that
But this optimization problem is clearly computationally intractable since it requires computing score for each of sets. So we show that the function is monotonically non-decreasing and sub-modular, allowing us to devise a greedy strategy to construct set with guaranteed good approximation of our results.
First we show that function is monotonically non-decreasing function. Let and with . Consider
Now since is any positive integer, if we keep , last inequality is satisfied and hence function is monotonically non-decreasing. Let with .
Now we prove the sub-modularity of this function.
Proving that our optimization function is sub-modular, and we can use Theorem 2, which guarantees that the greedy strategy will be -approximate algorithm. We give the following greedy algorithm to construct the required set .
Analysis of Algorithm
Now we analyze our proposed algorithm and give its runtime complexity. First we discuss complexity of EstimateWalks function. This function needs to compute the following times (count of hash functions): , , for all sets in partition formed by hash function, for vertices.
Note that matrix for all hash functions can be computed with one scan of the whole graph, which takes time. Computing all the above, except takes at most time. For every hash function, it takes maximum time and finding min for each vertex takes time. This implies function takes time.
Line and first for loop takes steps. The th iteration if loop in lines to takes and line is work. This shows that second loop from line to takes time which is in total.
So GreedyNodeImmunization(, , ,) algorithm takes total time.
We present results of our suggested algorithm in detail in this section. We have compared results of our algorithm with those of NET-SHEILD111https://www.dropbox.com/s/aaq5ly4mcxhijmg/Netshieldplus.tar, Brute Force Method and Walk (Ahmad et al., 2016) to evaluate the quality and efficiency. NET-SHEILD selects the vertices based on the eigen vector corresponding to largest eigenvalue of graph, Brute Force algorithm picks vertices which have maximum number of closed walks of length six passing across them and Walk chooses nodes based on approximation of walks of length for immunization purpose. We have implemented the algorithm in Matlab and we have made our code available at the given link.
|Name||Nodes #||Edges #|
We have used real world graphs for experimentation and all our graphs are undirected and unweighted. The first data set called Karate graph222http://konect.uni-koblenz.de/networks/ucidata-zachary is a small graph of local karate club in which nodes represent members of the club and an edge between two nodes shows friendship among corresponding members. Karate graph consists of 34 nodes and 78 edges.
Second dataset is obtained from Oregon AS (Autonomous System)333http://snap.stanford.edu/data/oregon1.html router graphs. We have constructed a communication graph in which nodes are participating routers and an edge between two routers represents direct peering relationship among them. A number of Oregon graphs are available and each graph is made from communication log of one week. We have selected a graph containing 10,670 nodes and 22,002 edges.
The third data set (AA) is from DBLP444http://dblp.uni-trier.de/xml/ dataset. In this graph a node represents an author and presence of an edge between two nodes shows that two authors have a co-authorship. In DBLP there is total node count of 418,236 and the number of edges among nodes is 2,753,798. We extracted smaller sub-graphs by selecting co-authorship graphs of individual journals (e.g Displays, International Journal of Computational Intelligence and Applications, International Journal of Internet and Enterprise Management, etc.). We ran our experiments on 20 different smaller co-authorship graphs of different journals. For the smaller sub graphs that we have extracted from DBLP dataset, node count goes up to few thousands and edge count goes up to few ten thousands. Details of sub graphs of DBLP data set is given in Table 2. These subgraphs are also undirected and unweighted.
|Computer In Industry||2,844||4,466|
|Computing And Informatics (CAI)||1,598||2,324|
|Decision Support Systems (DSS)||4,926||14,660|
|Engineering Application of AI||4,164||6,733|
We performed extensive experimentation with varying number of nodes to be immunized in graph. In the results shown, x-axis shows the count of nodes being immunized denoted by while y-axis shows the benefit achieved in terms of percentage of eigen drop after immunizing nodes in graph. It is clear from results that our algorithm beats other variants for immunizing the graph in terms of effectiveness. Our algorithm has less computational cost than its competitors and is scalable for larger values of and also for large size graphs. It is worth mentioning that our algorithm achieves high accuracy in terms of approximation with very small . Hence for very large graphs, our algorithm will achieve reasonable level of accuracy in very little time.
In this section we present a review of related work that has been done to target node immunization problem. A vast amount of work has been done to approach this problem using dimensions of spectral graph techniques, information diffusion and selection of central nodes in graph etc. In 2003 Brieseneister, Lincoln and Porras (Briesemeister & Porras, 2003) studied the propagation styles and infection strategies of viruses in communication networks to target susceptible nodes. They aim to do analysis of graphs to make them more defensible against infection. Along with this, the effects of graph topology in the spread of an epidemic are described by Ganesh, Massoulié and Towsley in (Ganesh & Towsley, 2005) and they discuss the conditions under which an epidemic will eventually die out. Similarly Chakrabarti et. al in (Chakrabarti & Faloutsos, 2008) devise a nonlinear dynamical system (NLDS) to model virus propagation in communication networks. They use the idea of birth rate, , death rate,, and epidemic threshold,, for a virus attack where birth rate is the rate with which infection propagates, death rate is the node curing rate and epidemic threshold is a value such that if , infection will die out quickly else if infection will survive and will result in an epidemic. For undirected graphs, they prove that epidemic threshold equals 1/ where is largest eigenvalue of adjacency matrix of the graph. Thus for a given undirected graph, if , then the epidemic will die out eventually.
The problem has also been addressed through edge manipulation schemes. In (Kuhlman & Ravi, 2013) dynamical systems are used to delete appropriate edges to minimize contagion spread. While Tong et al. in (Tong & Faloutsos, 2012) use the edge removal technique to protect a graph from outside contagion. They remove edges from the graph to maximize the eigendrop (difference in largest eigenvalues of original and resultant graphs) by selecting edges on the basis of corresponding left and right eigenvectors of leading eigenvalue of the graph such that for each edge , score() is the dot product of the left and right eigenvectors of leading eigenvalue of adjacency matrix of A.
Graph vulnerability is defined as measure of how much a graph is likely to be affected by a virus attack. As in (Tong & Faloutsos, 2012), the largest eigenvalue of adjacency matrix is selected as a measure of graph vulnerability, in (Chen & Chau, 2016) they also use largest eigenvalue for the purpose but instead of removing edges, nodes are deleted to maximize the eigendrop. Undirected, unweighted graphs are considered and nodes are selected by an approximation scheme using the eigenvector corresponding to largest eigenvalue which cause the maximum eigendrop.
Probabilistic methods are also used for node immunization problem. Zhang et al. and Song et al. adapt the non-preemptive strategy i.e. selection of nodes for immunization is done after the virus starts propagating across the graph. For this they use discrete time model to obtain additional information of infected and healthy nodes at each time stamp. In (Song & Lee, 2015) directed and weighted graphs are used in which weights represent the probability of a healthy node being contaminated by its affected neighbors and node selection is done on the basis of these probabilities. Then results are evaluated on the basis of save ratio (SR) which is the ratio between the number of infected nodes when k nodes are immunized over the number of infected nodes with no immunization. The work in (Zhang & Prakash, 2014a) and (Zhang & Prakash, 2014b) considers undirected graphs and constructs dominator trees for selecting nodes. Results are evaluated in terms of expected number of remaining infected nodes in the graph after the process of immunization.
Other important and closely related problem is facility location and a lot of work is done on this. In filter placement (Erdös & Bestavros, 2012), those nodes are identified whose deletion will maximally reduce information multiplicity in graph and node selection is done on the basis of number of paths passing through it. Moreover some reverse engineering techniques are also used for similar problems to find out the initial culprits of infection propagation. Prakash, Vreeken and Faloutsos (Prakash & Faloutsos, 2012) study the graphs in which virus has already spread for some time and they point out those nodes from where the spread started. From this they find out the likelihood of other nodes being affected.
Another direction to look at the problem is to consider graphs in which some nodes are already infected and these nodes can spread virus among other reachable nodes or graphs in which all nodes are contaminated and the goal is to decontaminate the graph by using some agent nodes which traverse along the edges of the graph and clean the nodes. The problem is usually referred to as decontamination of graph or graph searching problem. Different models are studied to solve the problem and most of them assume the monotonicity in decontamination i.e once a node is decontaminated then it cannot get contaminated again (Bienstock & Seymour, 1991),(Flocchini & Luccio, 2008),(Flocchini & Luccio, 2007),(Fraigniaud & Nisse, 2008). But non-monotonic strategies are also studied (Daadaa & Shabbir, 2016).
Other work that is related to node immunization is the selection of most influential nodes in a given network to maximize the information diffusion in a network. Kempe et al. provided the provably efficient approximation algorithm for the problem (Kempe & Tardos, 2003). Seeman and Singer (Seeman & Singer, 2013) use stochastic optimization models to maximize the information diffusion in social networks. Influence maximization problem is slightly different from immunization problem as in influence maximization problem the goal is to select nodes for seeding which will maximize the spread on new idea while in node immunization problem the aim is to select nodes which will help in minimal spread of virus.
In this work, we explored some links between established graph vulnerability measure and other spectral properties of even powers of adjacency matrix of the graph. We define shield value in terms of trace of the adjacency matrix of the graph. Based on these insights we present a greedy algorithm that iteratively selects nodes such that the impact of each node is maximum in the graph, in the respective iteration, and thus we maximally reduce the spread of a potential infection in the graph by removing those vertices. Our algorithm is scalable to large. We have done experimentation on different real world communication graphs to prove the accuracy and efficiency of our algorithm. Our algorithm beats the state of the art algorithms in performance as well as in quality.
For the future work, we consider the larger values and generalized even parameter , used for our shield value. Hence, we will aim to effectively improve the quality of the estimates. Techniques like locality sensitive hashing can be incorporated for the efficient approximation of the shield value for general .
- Ahmad et al. (2016) Ahmad, M., Tariq, J., Farhan, M., Shabbir, M. & Khan, I. (2016), ‘Who should receive the vaccine ?’, Australasian Data Mining Conference .
- Bienstock & Seymour (1991) Bienstock, D. & Seymour, P. (1991), ‘Monotonicity in graph searching’, Journal of Algorithms 12(2), 239–245.
- Briesemeister & Porras (2003) Briesemeister, L., L. P. & Porras, P. (2003), Epidemic profiles and defense of scale-free networks, in ‘Proceedings of the 2003 ACM workshop on Rapid malcode’, ACM, pp. 67–75.
- Chakrabarti & Faloutsos (2008) Chakrabarti, D., W. Y. W.-C. L. J. & Faloutsos, C. (2008), ‘Epidemic thresholds in real networks’, ACM Transactions on Information and System Security (TISSEC) 10(4), 1.
- Chen & Chau (2016) Chen, C., T. H. P.-B. T. C. E.-R. T. F. C. & Chau, D. (2016), ‘Node immunization on large graphs: Theory and algorithms’, IEEE Transactions on Knowledge and Data Engineering 28(1), 113–126.
- Chung (1997) Chung, F. (1997), Spectral graph theory, American Mathematical Society.
- Daadaa & Shabbir (2016) Daadaa, Y., J. A. & Shabbir, M. (2016), ‘Network decontamination with a single agent’, Graphs and Combinatorics 32(2), 559–581.
- Erdös & Bestavros (2012) Erdös, D., I. V. L.-A. T. E. & Bestavros, A. (2012), ‘The filter-placement problem and its application to minimizing information multiplicity’, Proceedings of the VLDB Endowment 5(5), 418–429.
- Flocchini & Luccio (2007) Flocchini, P., H. M. & Luccio, F. (2007), ‘Decontaminating chordal rings and tori using mobile agents’, Int. J. Found. Comput. Sci. 18(03), 547–563.
- Flocchini & Luccio (2008) Flocchini, P., H. M. & Luccio, F. (2008), ‘Decontamination of hypercubes by mobile agents’, Networks 52(3), 167–178.
- Fraigniaud & Nisse (2008) Fraigniaud, P. & Nisse, N. (2008), ‘Monotony properties of connected visible graph searching’, Information and Computation 206(12), 1383–1393.
- Ganesh & Towsley (2005) Ganesh, A., M. L. & Towsley, D. (2005), The effect of network topology on the spread of epidemics, in ‘Proceedings IEEE 24th Annual Joint Conference of the IEEE Computer and Communications Societies.’, Vol. 2, IEEE, pp. 1455–1466.
- Kempe & Tardos (2003) Kempe, D., K. J. & Tardos, É. (2003), Maximizing the spread of influence through a social network, in ‘Proceedings of the ninth ACM SIGKDD international conference on Knowledge discovery and data mining’, ACM, pp. 137–146.
- Kuhlman & Ravi (2013) Kuhlman, C.J., T. G. S.-S. M. M. & Ravi, S. (2013), Blocking simple and complex contagion by edge removal, in ‘2013 IEEE 13th International Conference on Data Mining’, IEEE, pp. 399–408.
- Nemhauser & Fisher (1978) Nemhauser, G.L., W. L. & Fisher, M. (1978), ‘An analysis of the approximations for maximizing submodular set functions’, Mathematical Programming 14, 265–294.
- Prakash & Faloutsos (2012) Prakash, B.A., V. J. & Faloutsos, C. (2012), Spotting culprits in epidemics: How many and which ones?, in ‘2012 IEEE 12th International Conference on Data Mining’, IEEE, pp. 11–20.
- Seeman & Singer (2013) Seeman, L. & Singer, Y. (2013), Adaptive seeding in social networks, in ‘Foundations of Computer Science (FOCS), 2013 IEEE 54th Annual Symposium on’, IEEE, pp. 459–468.
- Serre (2002) Serre, D. (2002), Matrices, Springer.
- Song & Lee (2015) Song, C., H. W. & Lee, M. (2015), Node immunization over infectious period, in ‘Proceedings of the 24th ACM International on Conference on Information and Knowledge Management’, ACM, pp. 831–840.
- Strang (1988) Strang, G. (1988), ‘Linear algebra and its applications brooks’, Cole Thomson Learning Inc .
- Tong & Faloutsos (2012) Tong, H., P. B. E.-R. T. F. M. & Faloutsos, C. (2012), Gelling, and melting, large graphs by edge manipulation, in ‘Proceedings of the 21st ACM international conference on Information and knowledge management’, ACM, pp. 245–254.
- West (2001) West, D. (2001), Introduction to graph theory, Prentice Hall.
- Zhang & Prakash (2014a) Zhang, Y. & Prakash, B. (2014a), Dava: Distributing vaccines over networks under prior information., in ‘SDM’, SIAM, pp. 46–54.
- Zhang & Prakash (2014b) Zhang, Y. & Prakash, B. (2014b), Scalable vaccine distribution in large graphs given uncertain data, in ‘Proceedings of the 23rd ACM International Conference on Conference on Information and Knowledge Management’, ACM, pp. 1719–1728.