Abstract
We develop a polynomial time algorithm for the single-source all destinations shortest paths problem for interval temporal graphs (s). While a polynomial time algorithm for this problem is known for contact sequence temporal graphs (s), no such prior algorithm is known for s. We benchmark our algorithm against that for s using datasets that can be solved using either algorithm. Using synthetic datasets, experimentally, we show that our algorithm for s obtains a speedup of up to relative to the state-of-the-art algorithm for s.
1. Introduction
Temporal graphs are dynamic graphs that can change over time. Edges and Vertices in a temporal graph may evolve over time and thus have temporal information associated with them. Temporal graphs can be used to model many real-world problems such as modeling the spread of viral diseases, traffic flow in road networks, information flow in social networks and other such problems representing dynamic connectivity [1,2,3,4,5,6,7]. Recently, temporal graphs have been used in machine learning as temporal graph neural networks (s) [8].
Different models can be used to represent a temporal graph [3]. One such popular model is a contact sequence temporal graph (). Every instance of time when a communication can be initiated from a vertex u to a vertex v is represented by a unique temporal edge in the model. t is the departure time and is the travel time along this edge, such that the arrival time at v when departing u along this edge would be . Figure 1 shows an example of a .
Figure 1.
Contact sequence temporal graph.
An alternate representation of a temporal graph is an interval temporal graph (). Temporal information on an edge connecting two vertices in an is modeled as a vector of contiguous time intervals , with an associated travel time for each interval i. Figure 2 illustrates an example of an . Communication from u to v may be initiated at any time t such that for one of the intervals i along this edge.
Figure 2.
Interval temporal graph.
While every CSG has an equivalent ITG, the reverse is true only when time is discrete.
Some applications of temporal graphs are described below:
- Intelligent Transportation Systems—Road networks can be modeled by temporal graphs where vertices represent street intersections [9]. Varying traffic and street conditions are represented as temporal edges. Such temporal graphs enable building intelligence in transportation systems to improve safety, mobility and efficiency.
- E-health and bioinformatics—Temporal graphs can be used to model pandemic spread by building proximity networks [10,11,12]. This kind of modeling can help understand the source of pandemic spread and the best methods to contain the pandemic spread.
- Social Networks—Social networks are usually large dynamic graphs. Refs. [1,13] present a framework for modeling social networks. Santoro et al. [5] propose an approach for studying temporal metrics in social graphs using temporal graphs.
- Artificial Intelligence—Graph Neural Networks (GNNs) have become popular in recent times due to their ability to learn complex systems of relations or interactions. They provide a framework for deep learning models on graphs. Recently, new frameworks have been proposed for deep learning on dynamic or temporal graphs. For example, Rossi et al. [8] propose a framework for deep learning on temporal graphs that they call Temporal Graph Networks (TGNs). Smith et al. [14] propose a novel architecture for online learning with temporal neural networks.
Path and walk problems on temporal graphs are studied, for example, in [9,15,16,17,18,19,20]. While [16,18,19] focus on s, Refs. [15,17,20,21] use the model. Wu et al. [15] demonstrate that the studied path problems can be solved faster using the algorithms proposed by them on the representation when compared to the algorithms proposed on the representation by Xuan et al. [16]. However, Jain et al. [18,19] subsequently developed algorithms for s that outperform the algorithms of Wu et al. [15] for most of the studied path problems as well as the ITG algorithms of Xuan et al. [16]. Gheibi et al. [20] proposed an alternate TRG data structure for representing s that results in faster algorithms than the algorithms of Wu et al. [15] for most of the studied path problems.
Bentert et al. [17] developed a polynomial time algorithm, for s, to compute walks that optimize any linear combination of the optimization criteria studied by [15,16,18,20] with min and max waiting time constraints at each vertex. Jain et al. [19] show that a linear combination of multiple criteria can be used to find walks and paths with a secondary optimization criterion for, e.g., min-hop foremost () paths or min-wait foremost () walks.
Jain et al. [19] present algorithms for dual criteria () and () for s. Their ITG algorithms solve the and problems in less time than when the algorithm of Bentert et al. [17] is used on the corresponding CSGs and the coefficients of the linear combination optimization criteria in Bentert et al.’s algorithm are chosen so as to compute and walks. Jain et al. [21] also develop an algorithm to compute walks optimizing any linear combination of the criteria considered by Bentert et al. [17] with waiting time constraints, outperforming the algorithm by Bentert et al. by up to a factor of 77. However, the limitation of the algorithm by Jain et al. is that it only works on s with no zero-duration cycle.
In this paper, we develop an algorithm to find the shortest paths in s. A shortest path between any two vertices A and B in a temporal graph is a feasible path for which the travel time to reach from A to B is minimum. Xuan et al. [16] propose a polynomial time algorithm to find min-hop paths in s. A min-hop path from vertex A to B is a feasible path that travels through the minimum number of edges to reach B. Such a path is also the shortest path from A to B when all edges have the same travel time. However, in general, travel times on the edges of an interval temporal graph may be different. No algorithm has been proposed for finding the shortest paths when the temporal graph is expressed as an . Wu et al. [15], Bentert et al. [17], Jain et al. [21] and others proposed algorithms that can be used to find the shortest paths when temporal graphs are expressed as s. As noted earlier, s cannot be expressed as s when time is continuous. Further, even when time is discrete, the size of the corresponding to a given could be quite large (when the time intervals of edges are large). This paper fills this gap by providing a polynomial time shortest path algorithm for s.
Experimentally, it is demonstrated that as the contiguous time intervals that allow travel on edges in temporal graphs become larger, our shortest path algorithm shows increasing performance gains over the algorithm by Wu et al. [15] running on the same temporal graph expressed as a .
Our main contributions are as follows:
- We develop a polynomial time algorithm to find the shortest paths in an . To the best of our knowledge, no such algorithm is presently available in the literature.
- We provide the complexity analysis of our shortest path algorithm.
- We benchmark our algorithm for s against that of Wu et al. [15] for finding the shortest paths in s. Experimentally, we show that as the activity factor in a temporal graph increases due to large contiguous travel intervals, our algorithm shows increasing performance gains over that of Wu et al. [15] on equivalent temporal graphs expressed as s. Using synthetic datasets, we show that our algorithm for s obtains a speedup of up to relative to the state-of-the-art algorithm for s.
2. Problem Description
Definitions
Definition 1
(Contact sequence temporal graph). In a contact sequence temporal graph , each edge is a tuple , where t is a permissible departure time for travel from u to v along the edge e and λ is the amount of time it takes to travel on edge e from u to v when departing at time t. Thus, v is reached at time . If there are m time instances when departures from u to v are permissible, there will be m such temporal edges . m is the amount of activity on the connection .
Definition 2
(Interval temporal graphs). In an interval temporal graph , each edge is represented by a tuple . This tuple represents a connection from u to v. is a time-ordered non-overlapping vector of tuples . The ith interval starts at time and closes (ends) at time ; is the time it takes to traverse the edge when departing u at a time t if (v is reached at time ). The intervals are in ascending order of start times , and collectively, they define the permissible departure times from u.
The permissible travel intervals for any edge of an (Definition 2) can be adjusted such that for any two consecutive intervals we have . This transformation is explained in Jain and Sahni [18]. In this paper, we assume that the intervals associated with each edge of an satisfy this constraint.
As is evident from Figure 3 and Figure 4, a given temporal graph may need a much larger number of edges to be expressed as a versus an . This is especially true when the graph has large contiguous travel intervals on the edges. Jain et al. [18] demonstrated that several temporal path and walk problems on s may be polynomial in the size of the input graph but NP-hard for the equivalent graph.
Figure 3.
Interval temporal graph with large intervals.
Figure 4.
High-activity contact sequence graph.
Definition 3
(Temporal paths and walks). A (equivalently, valid path, feasible path, temporal path or time-respecting path), , in a temporal graph is an alternating sequence of vertices and departure times from those vertices starting from a source vertex to a destination vertex such that no vertex appears more than once in this sequence. is a permissible departure time from to and , . is the arrival time at when departing at , . For path p, is the source or start vertex and is the destination vertex. The number of hops is . When vertices are permitted to repeat in p, p is a . Note that every path is also a walk but some walks are not paths.
Definition 4
(Shortest paths). A shortest path p in a temporal graph is a feasible temporal path from a start vertex to a destination vertex with minimum length, where the length, , of a path p is the sum of the travel times on the edges on this path.
By contrast, a fastest path from to is a temporal path that minimizes the difference between the arrival time at and the departure time from . Such a path accounts for wait times at all intermediate vertices. Algorithms for fastest paths in interval and contact sequence temporal graphs may be found in [15,16,17,21]. Shortest paths are of interest in applications where there is a cost associated with traveling on an edge but no cost associated with waiting at a vertex. For example, the fuel cost depends on the sum of the s and is independent of the wait times at the vertices.
It is to be noted that the shortest path p from vertex to in a temporal graph is also the shortest walk from to . To see this, assume there is a walk w of shorter length. The walk w can be converted to a path from to by removing all of its cycles. Since edge travel times are non-negative, , contradicting the fact that p is a shortest path from to .
3. Shortest Paths
We need to find the shortest paths p from a start vertex s to all possible destination vertices in a given .
3.1. Dominance Criteria
Let and be two paths from the start vertex s to the same end vertex v. We say that dominates iff every valid extension of is also a valid extension of and has the same or smaller length. A valid extension of a path p from s to v is a valid path from s to , such that goes through v and is the same as p from s to v. Let the arrival time and length of a path p from s (to its end vertex) be denoted by and , respectively. It is easy to see that when Equation (2) is true, dominates (see Figure 5).
Figure 5.
dominates .
When the arrival times and lengths of the paths and are as in Equation (3), then neither of the paths dominates the other. When neither path dominates the other, we say that and are pairwise non-dominant.
3.2. Algorithm
We propose a hop-by-hop algorithm to determine a shortest path from a start vertex s to all possible destinations in an . At every hop count k, we construct a list of non-dominated paths from s to every reachable vertex v by extending the list of such paths for hop count . The algorithm terminates after a maximum of hops, where n is the total number of vertices in the or when no new non-dominated paths are discovered in a given hop.
3.3. Overview
Let be the list of pairwise non-dominant r-hop paths from s to v that arrive at v at time t and have length l, ; the paths are in increasing order of t (equivalently, decreasing order of l). Let be the list of non-dominated k-hop paths from s to v. A high-level description of our shortest paths algorithm can be found in Algorithm 1.
The lists and are initialized in lines 1 and 2 to be lists of 0-hop paths from s to v. The -hop paths in are extended to k-hop paths by adding an outgoing edge in lines 8 and 10. Line 8 considers one edge extensions that use the interval for the case . Of the possible extensions using this interval, the one that departs u at time dominates the others and so only this one is added to . Line 10 considers the remaining case for a legitimate extension, . Again, only the single non-dominated extension is added to . Line 13 removes dominated paths from . In Line 14, the paths in and are merged to obtain (recall that is to contain only non-dominated paths). Additionally, paths in that are dominated by a path in are eliminated from .
| Algorithm 1 Shortest Paths Pseudocode |
|
3.4. Pseudocode Example Walk-Through
We will walk through the pseudocode in Algorithm 1 with an example graph of Figure 6. We are to find the shortest paths from s to all destination vertices in Figure 6. The lists and are initialized as ⌀ in lines 1 and 2 for as 0-hop paths. and are initialized as .
Figure 6.
Shortest paths in example.
- In hop 1, . The condition in line 5 evaluates to true only for the edge . Therefore, lines 6 to 11 add two new paths to as , extending along the two available intervals on edge . Line 13 eliminates the path from as it is dominated by the path as per Equation (2). Merging with in line 14 gives .
- In hop 2, . Line 5 evaluates to true for edges and since . Hence, is extended along each of these edges in lines 6 to 11.
- (a)
- Extending along the two intervals on edge gives
- (b)
- Extending along the two intervals on edge gives
Line 13 eliminates the dominated path from , whereas none of the paths are dominated in . Lists and are merged with and , respectively, in line 14. Therefore, at the end of this iteration, and .. - In hop 3, . We have and as non-empty. Therefore, line 5 evaluates to true for edges and .
- (a)
- Extension of paths in along the intervals on edge gives .
- (b)
- Extension of paths in along the intervals on edge appends to . Therefore, .
Line 13 eliminates the dominated paths from . Therefore, the paths surviving are . After merging with in line 14 we obtain, . .
Line 5 does not evaluate to true for any other edges when , as even though is non-empty, there are no outgoing edges from d. Therefore, the algorithm terminates. The shortest paths to each of the vertices are available in the array .
3.5. Detailed Algorithm
Algorithm 2 is a refinement of Algorithm 1 that provides a greater level of detail.
The function (line 12 of Algorithm 2) finds the earliest possible departure time and corresponding interval on the edge . If t is in the interval , is the same as t, otherwise it is . The lists of paths arriving at a vertex are always kept in increasing order of t. In a list of non-dominated paths, the increasing order of t is the same as the decreasing order of l due to the dominance criteria of Section 3.1. In line 17, prepends extended path to the list since paths from the predecessor vertex u are extended in decreasing order of t. After prepending to , eliminates any subsequent paths in the list that dominates.
In lines 11 to 24, every is extended using an outgoing edge and the earliest possible departure time () from u. Then, is also extended at for every subsequent interval i on , such that , where is the extension time of a previously examined path at u. This is because extension of would be dominated by the extension of if it starts at with the same travel time since .
In line 25, the list of extensions of all paths from u to v is merged with any other such list from a different incoming edge in the current hop, retaining only non-dominated paths. The resulting is added to , which maintains all such lists obtained at every vertex v in hop k.
| Algorithm 2 Shortest Paths Detailed Algorithm |
|
Finally, in line 30, all at every vertex u available in , are evaluated against their respective to obtain the non-dominated paths in hops 1 through k as and the new paths in current hop as .
The algorithm continues until the terminating conditions are met.
Theorem 1.
Algorithm 2 finds the shortest paths from the start vertex s to all reachable vertices v.
Proof.
In an n-vertex temporal graph, a shortest path from a start vertex s to any destination vertex v is a non-dominated path with hops. In Algorithm 2, we examine all non-dominated paths starting from s and keep a record of the shortest path discovered in line 31. Due to our scheme of resolving the ties described in Section 3.2, any walks with cycles are eliminated as these are dominated by paths that have no cycles and have fewer hops. Therefore, the shortest path obtained is a shortest valid path with no cycles. □
3.6. Complexity Analysis
We may associate a label with each path , , and , where is the id of the last edge, , in p with a departure time that is the start, , of some travel interval of and h is the number of hops in the path p from s to u. Note that every has such a as the departure time for the first edge of p is the start of some interval of and the number of edges in p is finite. Let be the portion of p from s to u and that from u to v (see Figure 7). From the way our algorithm works, it follows that is an h-hop path in . Further, since the departure time for no edge in is a start time of a travel interval for that edge (except on ), encounters no wait at intermediate vertices and the length, , (i.e., sum of the edge travel times) of is the same as its duration (arrival time at v - departure time from u).
Figure 7.
A and its label .
Theorem 2.
No has two paths with the same label.
Proof.
Assume there is a that has two paths and with the same label . We shall show that this assumption leads to a contradiction and so must be false. Note that and are pairwise non-dominant.
- Case . Now, and are empty. Thus, and . When , we have . Thus, dominates , which contradicts the fact that and are pairwise non-dominant. A contradiction is similarly obtained for the cases and .
- Case . Now, and are h-hop paths from s to the same vertex u. The first edge of and is and both these paths start from u at time . Thus,
- (a)
- (b)
- Case . Let be the s to v path obtained by concatenating and . Note that is a k-hop time-respecting path with and (Equation (7)). Hence, dominates . Thus, either or a path that dominates both and must be in . This means that cannot be in .
- (c)
- Case . This is similar to the previous case.
□
Theorem 3.
No has two paths with the same label.
Proof.
This is similar to that of Theorem 2. □
The number of distinct path labels is at most , where i is the total number of travel intervals across all edges of the temporal graph. From Theorems 2 and 3, it follows that and for all v and k.
For each value of k, , the at most paths in are considered in increasing order of length (equivalently, decreasing order of arrival time at u) and extended by one hop using an out edge from u. When extending using the edge for each of these up to paths, a binary search is performed over the travel intervals of this edge to determine the first interval for a valid extension (line 12 of Algorithm 2). The remaining (larger start time) intervals are then examined serially until the first interval that has already been used for the extension of a previously considered path in is encountered. Let be the maximum number of travel intervals on any edge. We see that time is spent performing the binary searches for the up to paths and time in examining the remaining intervals. The total time to process is therefore (note that ). The number of k-hop paths generated by extending the paths in using the edge is .
To compute , we need to compute a list of extensions of the paths in for all u such that is an edge of the temporal graph and merge these lists together, eliminating dominated paths. There are at most such path lists to be merged. Each of these has paths and takes time to compute. The time needed to compute all of these lists is therefore . Pairwise merging these path lists takes time (note that during the pairwise merge of two path lists, dominated paths are eliminated, so, from Theorem 3, it follows that the list size remains ; two ordered path lists may be merged in linear time eliminating dominated paths). An alternative to pairwise merging of the path lists is to merge the lists simultaneously using a loser tree. This reduces the merging time to . Regardless, the total time needed to compute is . Hence, for any k, all s may be computed in time, where is the number of edges in the temporal graph.
For any k and v, may be merged with , eliminating dominated pairs from both lists in time as both lists are ordered by arrival time and of size (Theorems 2 and 3). Thus, the overall time taken by Algorithm 2 for each k is and the time over all ks is , which is polynomial in the number of inputs.
4. Experimental Results
In this section, we compare the relative performance of Algorithm 2 for s with the shortest path algorithm of Wu et al. [15] running on equivalent s. Our experimental platform was an Intel Core i9-7900X CPU with a 3.30 GHz processor and 64 GB RAM. The C++ code for the shortest path algorithm of Wu et al. was obtained from the authors of [17]. Our algorithm was also coded in C++. The codes were compiled using the g++ ver. 7.5.0 compiler with option O2. The datasets used for comparison of the relative performance are described in Section 4.1.
4.1. Datasets
Ref. [15] uses datasets from the Koblenz network [22]. These datasets have an (edge) activity that ranges from a low of about 1 to a high of about 3.67, which is rather low. Further, all values are 1. The Koblenz datasets are described in Table 1. These datasets are in the form of s where every allowed travel from one vertex to another is a single time instance. To benchmark our algorithm against the shortest paths algorithm of [15] on a wide variety of temporal graphs, we prepared synthetic datasets using the Koblenz graphs as follows:
Table 1.
Koblenz graph statistics.
- Obtain the underlying static graph from each Koblenz . For this, we replaced each temporal edge by the static edge and eliminated duplicate static edges.
- Represent the static graph obtained in the previous step as an array adjacency list.
- On every static edge, we randomly add temporal intervals. The temporal intervals are added using three random variables, number of allowed travel intervals I, duration of each interval D and the travel time on each interval T. Values are assigned to each of these random variables using a normal distribution around three parameters , respectively. These parameters are the mean values for the normal distribution defining the three random variables , respectively.
We increase the activity factor in the temporal graph by gradually increasing the value of the parameter . For each obtained using the method described above, we obtain an equivalent to benchmark against the shortest path algorithm of [15]. The synthetic datasets obtained as outlined above are described in Table 2. For the dataset, the number of contact sequence edges is too large to accommodate in a 32- integer for and . Therefore, it was infeasible to build a corresponding and run the algorithm from [15] on it. However, we could still run our algorithm on the representation; the run times were quite reasonable. Table 3 reports the size of each of the synthetic datasets on disk. As we increase the activity factor of the temporal graph by increasing the parameter, the size of the representation of the graph increases significantly. For example, for the dataset, the size of the is MB for , as compared to GB for the representation of the same temporal graph, which is a ratio of approximately 563.
Table 2.
Synthetic graphs’ statistics.
Table 3.
Synthetic graphs’ size on disk.
4.2. Run Times
Since the s are much larger in size as compared to the corresponding s, the reading time (from disk) of the is also significantly larger. The comparison of the reading times for the graphs by our algorithm and by that of Wu et al. [15] is reported in Table 4. It is important to note that the reading times for our algorithm are almost the same for the different values of . However, for the s, the reading time increases proportionately to the increase in the activity factor. This is because the number of contact sequence edges also increases proportionately. The size of the representation, however, remains almost similar across different values of the parameter .
Table 4.
Synthetic graphs’ reading times in seconds.
Comparisons of run times (excluding the time to read in the temporal graph) of the two algorithms on all the datasets are reported in Table 5. As expected, the run times of our algorithm remains almost the same across the different values of . However, the run times of the algorithm in [15] increases proportionately to the increase in the value of and, hence, the number of contact sequence edges in the graph. Therefore, our algorithm shows increasing performance gains in run time and in memory consumption over that of Wu et al. [15] when the temporal graph has larger contiguous travel intervals. For our experiments, we limited the duration of the travel intervals to follow a normal distribution around . This is because for much larger travel intervals, the algorithm of Wu et al. [15] runs out of memory due to the large number of contact sequence edges. In contrast, our algorithm comfortably handles large travel durations. One example of this is the dataset for which our algorithm runs in reasonable times for the values of and , whereas it is infeasible to represent the using 32- integers for .
Table 5.
Synthetic graphs’ run time in seconds comparison.
The performance gains obtained by our algorithm over that of Wu et al. [15] with increasing activity factor are shown in Figure 8.
Figure 8.
Performance gains with increasing activity factor.
4.3. Memory Footprint
The ratio of the memory footprint of the algorithm of [15] to the memory footprint of our algorithm is similar to the ratio of the sizes of the corresponding temporal graph representation as and , respectively. This is because both algorithms require the entire graph to be present in memory. As is evident from Table 3, this ratio increases significantly as the activity factor increases, going as high as 560 for our synthetic graphs.
5. Conclusions
We have developed a polynomial time shortest paths algorithm for the representation of temporal graphs. To the best of our knowledge, such an algorithm is not available in the literature. Our algorithm is suitable for temporal graphs with a high activity factor and large contiguous travel intervals. Our algorithm shows increasing performance gains over the known state-of-the-art shortest paths algorithm for s as the activity factor on the temporal graphs increases. Using synthetic datasets, experimentally, we show that our algorithm for s obtains a speedup of up to relative to the state-of-the-art algorithm for s. For graphs with very large activity factors, the CSG algorithm is infeasible, while our algorithm can handle such datasets comfortably.
Author Contributions
Conceptualization, A.J. and S.S.; methodology, A.J. and S.S.; software, A.J.; validation, A.J.; formal analysis, A.J. and S.S.; data curation, A.J.; writing—original draft preparation, A.J. and S.S.; writing—review and editing, S.S.; visualization, A.J.; supervision, S.S.; project administration, S.S. All authors have read and agreed to the published version of the manuscript.
Funding
This research received no external funding.
Data Availability Statement
Data sharing is not applicable.
Conflicts of Interest
Author Anuj Jain was employed by the company Adobe Systems Inc. The remaining authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.
Abbreviations and Notations
The following abbreviations and notations are used in this manuscript:
| ITGs | Interval temporal graphs |
| CSGs | Contact sequence (temporal) graphs |
| TRG | Time-Respecting Graph |
| OSEs | Ordered Sequence of Edges |
| G(V,E) | A graph G with V vertices and E edges |
| Denotes the length or travel time of an edge in the graph |
References
- Scheideler, C. Models and Techniques for Communication in Dynamic Networks. In Annual Symposium on Theoretical Aspects of Computer Science; Springer: Berlin/Heidelberg, Germany, 2002; Volume 2285, pp. 27–49. [Google Scholar]
- Stojmenović, I. Location Updates for Efficient Routing in Ad Hoc Networks. In Handbook of Wireless Networks and Mobile Computing; John Wiley & Sons, Ltd.: Hoboken, NJ, USA, 2002; Chapter 21; pp. 451–471. [Google Scholar] [CrossRef]
- Holme, P.; Saramäki, J. Temporal networks. Phys. Rep. 2012, 519, 97–125. [Google Scholar] [CrossRef]
- Michail, O. An Introduction to Temporal Graphs: An Algorithmic Perspective. arXiv 2015, arXiv:1503.00278. [Google Scholar]
- Santoro, N.; Quattrociocchi, W.; Flocchini, P.; Casteigts, A.; Amblard, F. Time-Varying Graphs and Social Network Analysis: Temporal Indicators and Metrics. arXiv 2011, arXiv:1102.0629. [Google Scholar]
- Kuhn, F.; Oshman, R. Dynamic Networks: Models and Algorithms. SIGACT News 2011, 42, 82–96. [Google Scholar] [CrossRef]
- Bhadra, S.; Ferreira, A. Computing multicast trees in dynamic networks and the complexity of connected components in evolving graphs. J. Internet Serv. Appl. 2012, 3, 269–275. [Google Scholar] [CrossRef]
- Rossi, E.; Chamberlain, B.; Frasca, F.; Eynard, D.; Monti, F.; Bronstein, M. Temporal Graph Networks for Deep Learning on Dynamic Graphs. arXiv 2020, arXiv:2006.10637. [Google Scholar] [CrossRef]
- Guo, F.; Zhang, D.; Dong, Y.; Guo, Z. Urban link travel speed dataset from a megacity road network. Sci. Data 2019, 6, 61. [Google Scholar] [CrossRef] [PubMed]
- Holme, P. Temporal network structures controlling disease spreading. Phys. Rev. E 2016, 94, 022305. [Google Scholar] [CrossRef] [PubMed]
- Holme, P.; Saramäki, J. Temporal networks as a modeling framework. In Temporal Networks; Springer: Berlin/Heidelberg, Germany, 2021. [Google Scholar] [CrossRef]
- Bearman, P.S.; Moody, J.; Stovel, K. Chains of Affection: The Structure of Adolescent Romantic and Sexual Networks. Am. J. Sociol. 2004, 110, 44–91. [Google Scholar] [CrossRef]
- Stehlé, J.; Barrat, A.; Bianconi, G. Dynamical and bursty interactions in social networks. Phys. Rev. E 2010, 81, 035101. [Google Scholar] [CrossRef] [PubMed]
- Smith, J.E. A Temporal Neural Network Architecture for Online Learning. arXiv 2020, arXiv:2011.13844. [Google Scholar] [CrossRef]
- Wu, H.; Cheng, J.; Ke, Y.; Huang, S.; Huang, Y.; Wu, H. Efficient Algorithms for Temporal Path Computation. IEEE TKDE 2016, 28, 2927–2942. [Google Scholar] [CrossRef]
- Bui-Xuan, B.M.; Ferreira, A.; Jarry, A. Evolving graphs and least cost journeys in dynamic networks. In WiOpt’03: Modeling and Optimization in Mobile, Ad Hoc and Wireless Networks; Sophia Antipolis: Valbonne, France, 2003; 10p. [Google Scholar]
- Bentert, M.; Himmel, A.S.; Nichterlein, A.; Niedermeier, R. Efficient computation of optimal temporal walks under waiting-time constraints. Appl. Netw. Sci. 2020, 5, 73. [Google Scholar] [CrossRef]
- Jain, A.; Sahni, S.K. Algorithms for optimal min hop and foremost paths in interval temporal graphs. Appl. Netw. Sci. 2022, 7, 60. [Google Scholar] [CrossRef]
- Jain, A.; Sahni, S. Foremost Walks and Paths in Interval Temporal Graphs. Algorithms 2022, 15, 361. [Google Scholar] [CrossRef]
- Gheibi, S.; Banerjee, T.; Ranka, S.; Sahni, S. An Effective Data Structure for Contact Sequence Temporal Graphs. In Proceedings of the 2021 IEEE Symposium on Computers and Communications (ISCC), Athens, Greece, 5–8 September 2021; pp. 1–8. [Google Scholar] [CrossRef]
- Jain, A.; Sahni, S. Optimal Walks in Contact Sequence Temporal Graphs with No Zero Duration Cycle. In Proceedings of the 2023 IEEE Symposium on Computers and Communications (ISCC), Gammarth, Tunisia, 9–12 July 2023; pp. 392–398. [Google Scholar] [CrossRef]
- Kunegis, J. KONECT: The Koblenz Network Collection. In Proceedings of the 22nd International Conference on World Wide Web (WWW’13 Companion), Rio de Janeiro, Brazil, 13–17 May 2013; pp. 1343–1350. [Google Scholar] [CrossRef]
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).