SlideShare a Scribd company logo
Temporal Graph : Storage, 
Traversal, Path discovery 
Submitted by 
Vinay Sarda 
M.Tech(CSE) II Year 
13535054 
Under the guidance of 
Prof. A.K. Sarje
Outline 
 Introduction 
 Graph Database 
 What is a Temporal Graph 
 Traversal in Temporal Path 
 Types of Path in Temporal Graph 
 Algorithms to determine different temporal path 
 Conclusion
Introduction 
 Graph database are best tool for handling highly connected data 
 In Relational or Hierarchical database, some entities have precedence over other 
like key, parent etc. 
 In Graph No node or edge have a higher precedence over other 
 Graph DB are NOSQL, doesn’t have rigid schema 
 Graph uses structures like nodes, edges are used to store and represent data 
 No need to look-up for neighbours as it provides index-free adjacency 
 Graph DB can be used in to determine whether two concept are related or not, or 
is it possible to reach from source to destination within specified interval etc.
Example -Graph 
Roy is boy 
Mary is a girl 
Roy and Mary are friends
Accessing Graph DB 
 TinkerPop is an open source toolkit that provides 
interfaces to implement Blueprint 
 Blueprint is a generic graph API, serves as a base layer for 
graph DB architectures 
 Pipes is a dataflow network using process graphs 
 Gremlin is a graph traversal language for accessing and 
manipulating graphs 
 Frames allows developer to frame a graph element in 
terms of java interface 
 Furnace is a graph algorithm package 
 Rexster is a graph server that exploits blueprint via REST 
 Example Titan Graph DB 
TinkerPop Stack
Temporal Graph 
 Nodes and Edges are active for a specific time instance 
 Visiting nodes or edges at any time other than specific time instance is not possible 
 Example – SMS Network, flight scheduling, stock exchange network 
 Did mail from A to D had any impact on mail send from D to B 
Sender Receipent Time 
A B 0 
A C,E 1 
E D 3 
B C 5 
B D 9 
D B 14 
A D 20 
C A 
B D E 
1 
C A 
5 0 
20 
1 
9 
B D E 
14 
3 
Non-Temporal Graph Temporal Graph
Temporal Graph Traversal 
 Depth First Traversal 
 Temporal Constraint – In traversal from node a to e set of edges {(a,b,1),(b,e,6)} is valid, 
but edge set {(a,b,9),(b,e,6)} is not 
 Multiple edges – When multiple edges occur among the same pair of nodes, only one 
edge has to be chosen avoiding combinatorial effect 
 Edge with highest timestamp value (most recent connection) 
 Edge with lowest timestamp value (first connection) 
A 
B C 
E 
D 
F 
3 
2 
8 
6 
7 
1 
4 
5 
9
Depth First Traversal 
 Create a DFS tree rooted at node ‘a’ with lowest timestamp value 
 Initially every node’s visiting time is infinite 
 At node ‘a’, Eset = {(a,b,9), (a,b,1), (a,e,8), (a,c,2)} 
 Take edge (a,b,1) and visit node ‘b’ and mark time 1 
 Now Eset = {(b,d,7), (b,e,6)} and take edge (b,e,6), mark time t[e] = 6, and then (b,d,7), mark 
time t[d] = 7, and so on 
a 
b c 
e 
d 
2 
7 
1 
5 
a 
c 
e 
b 
d 
3 f 
2 
8 
6 
7 
1 
4 
9 
5 
6
Breadth First Traversal 
 Challenges 
 Temporal Constraint 
 Edges (b, d, 3) and (d, e, 3) forms a valid set of consecutive edges, but (c, d, 5), (d, e, 3) doesn’t. 
 Smallest path may not be earliest path 
 Path from a to d takes only one hop at time t = 7, while the earliest time at which d can be reached from 
a is 3 using edges (a, b, 2) and (b, d, 3) 
 If we mark node ‘d’ using edge a-d and don’t consider it again then ‘e’ cannot be reached 
 Multiple occurrences of a node are possible 
 Terminology 
 u – node 
 dist(u) – distance of node u from source s 
 σ(u) – earliest arrival time to reach node u from source node s 
 p(u) – parent node of u 
 Temporal edge is denoted as (u, v, t) 
a 
b c 
d 
e 
2 
5 
4 
7 
3 5 
3
 While Q is not empty for each node v 
 If v is not in Q (whether v has been visited or not) traverse e, and if σ(v) > t, then visit v 
and push (v, dist(v) = dist(u) + 1, σ (v) = t, p(v) = u) into Q. 
 Else 
 If there exists (v, dist(v), σ (v), p(v)) in Q such that dist(v) = dist(u) + 1: traverse e, and if σ(v) > t, 
then visit v and update σ(v) = t and p(v) = u in Q 
 Else (i.e., dist(v) = dist(u)): traverse e, and if σ(v) > t, then visit v and push (v, dist(v) = dist(u) + 1, 
σ (v) = t, p(v) = u) into Q. 
a 
b c 
d 
e 
2 
5 
4 
7 
3 5 
3 
c 
a 
b 
d 
e 
2 
4 
3 
d 
7 
3 
(a, 0, 1, φ) (b, 1, 2, a) (d, 1, 7, a) (c, 1, 4, a) (d, 2, 3, b) (e, 3, 3, d) 
Q (u, dist(u), σ(u), p(v))
Paths in Temporal Graph 
 A path ρ = {(s, u1, t1), (u1, u2, t2), (u2, u3, t3),……..,(ui-1, ui, ti), ….. (un-1 ,d, tn)} from 
source s to destination d is a temporal path if ti ≤ ti+1 
 Terminology 
 Pset - set of all paths from source s to destination d 
 [ta, tb] – time interval 
 t[u] – time at which node u can be reached from source s 
 tstart(ρ) - timestamp of a path ρ at which it starts at source s 
 tend(ρ) - timestamp of a path ρ at which it ends at destination d 
 dist(ρ) - number of nodes in path ρ 
 duration(ρ) – time taken by path ρ to reach destination node from source node, tend(ρ) - 
tstart(ρ) 
 Transition time – time taken to reach from node to its neighbour node (λ), by default 
assumed to be 1
 Foremost – In a given interval, path that reaches destination as early 
as possible, path ρ ∈ Pset is a foremost path if all path ρ’ ∈ Pset, such 
that tend (ρ’) ≤ tend (ρ) 
 Example – Pset(A,H) = {{(A,B,1), (B,H,3)}, {(A,B,2), (B,H,3)}, {(A,C,4), 
(C,H,6)}}, but only A-B-H is the foremost path 
 Latest- departure path - In a given interval, path that reaches 
destination as early as possible, path ρ ∈ Pset is a latest-departure 
path, if all path ρ’ ∈ Pset, such that tstart (ρ’) ≤ tstart (ρ) 
 Example - Pset(A,H) = {{(A,B,1), (B,H,3)}, {(A,B,2), (B,H,3)}, {(A,C,4), 
(C,H,6)}}, but only A-C-H is the latest-departure path 
 Fastest path – Path that spends minimum time to reach destination d 
from source s, path ρ ∈ Pset is a fastest path if for all path ρ ∈ Pset, 
duration (ρ) <= duration (ρ’) 
 Example – Pset(B,K) = ({(B,H,3),(H,K,7)}, {(B,G,3),(G,K,6)}}, fastest path is 
B-G-K as it takes only 3 units of time 
A 
1 
2 
4 
2 
3 
B C F 
3 
3 
6 5 
G H I 
6 
2 7 8 9 
J K L
 Shortest Path – Path that takes minimum distance to reach the 
destination, path ρ ∈ Pset is a shortest temporal path if for all 
path ρ’ ∈ Pset, dist (ρ) ≤ dist (ρ′) 
 Example – Pset (A,I) = {(A→I), (A→F →J→I)}, then shortest path 
from source A to destination I is A→I 
 Most recent path – path where source and destination node are 
connected using edges with recent timestamp 
 Example – Among two paths from A to K { {(A,B,1), (B,G,3), 
(G,K,6)}, {(A,C,4), (C,H,6), (H,K,7)} }, path A-C-H-K is most recent 
path 
 Edge Constrained Path – path from s to d where adjacent edges 
have timestamp difference lower than certain threshold value 
 Example - Pset(A,L) = {{(A,F,3), (F,I,5), (I,L,8)}, {(A,F,3), (F,I,5), (I,L,9)}, 
{(A,I,2), (I,L,8)}, {(A,I,2), (I,L,9)}} with threshold value of 3 only path 
A-F-I-L satisfies the constraint 
A 
1 
2 
4 
2 
3 
B C F 
3 
3 
6 5 
G H I 
6 
2 7 8 9 
J K L
Observation 
 Optimal path in Temporal Graph v/s Non-Temporal Graph 
 Optimal path in Non-Temporal Graph has property that sub-path of optimal path is 
always optimal 
 But it doesn’t holds in case of Temporal Graph, example shortest path 
A 
B 
C 
D 
2 
3 
7 
4
Temporal Path Discovery Techniques 
 Stream Representation of Temporal Graph 
 Transformation Graph
Stream Representation 
 Edge sequence in the order of their creation is called stream representation of 
edges in a temporal graph 
 Example – {(A→B)/2, (B→C)/3, (C→D)/4, (A→C)/7} 
A 
B 
C 
D 
2 
3 
7 
4
Foremost Path 
 Foremost Path for node ‘s’ in time interval [ta,tb] 
 For each node u in graph G t[u] = ∞ 
 Considering each edge in the sequence in the order 
 Check for two conditions if true then update t[v] = t+λ 
 t+λ ≤ tb and t ≥ t[u] 
 t+λ < t[v] 
 if t+ λ > tb then exit
Example 
 Edge representation is {(a, b, 1, λ), (a, c, 2, λ), (d, f, 3, λ), (b, d, 7, λ)} 
 Foremost path for node ‘a’ in [1,4] assuming λ = 1 
 For all node t[u] =∞ 
 Mark t[a] = 0 
 For edge (a, b, 1, 1), t + λ = 2, satisfies conditions, update t[b] = 2 
 For edge (a, c, 2, 1), t + λ = 3, satisfies conditions, update t[c] = 3 
 For edge (d, f, 3, 1), t + λ = 4, doesn’t satisfies condition t ≥ t[d] as t[d] = ∞ and t = 
3 
t+λ ≤ tb and t ≥ t[u] 
t+λ < t[v] 
a 
c 
b 
d f 
3 
2 
7 
1 
∞ 
∞ 
∞ 
∞ ∞ 
0 a 
3 
c 
b 
d f 
3 
2 
7 
1 
2 ∞ ∞
Fastest Path 
 Lv – sorted list of foremost time for each node v from source node ‘s is maintained, 
(s[v], a[v]), where s[v] represents start time from ‘s’ and a[v] arrival time at v 
 If s’[v] > s[v] and a’[v] ≤ a[v], or s’[v] = s[v] and a’[v] < a[v], then (s’[v], a’[v]) 
dominates (s[v], a[v]) 
A 
1 
2 
1,1 2,2 
B D 
3 
5 
C E 
4 
5 
F 
6 
1,3 
1,4 
2,5 
2,6 
S.No. s[v] a[v] 
a 1 4 
b 2 4 
c 4 6 
d 4 5
Transformation Graph 
 Two Step process 
 Node Creation - for each node in V create nodes in V’ for each oncoming (V’in) and 
outgoing edge (V’out) with distinct label as (name , time) 
 Edge Creation – 
 For each node (v, tin) in V’in(v), add an directed edge from (v, tin) to (v, tout) ∈ V’out(v), such 
that tout is minimum in V’out(v), tout ≥ tin. and no other edge from (v, t’in) to (v, tout) is added 
to G’. 
 Given V’in(v) = {(v, t1), (v, t2), (v, t3), ….,(v, tk)}, where t1 ≤ t2 ≤ t3 ≤ …..tk, then add an edge for 
(v, ti) to (v, ti+1) for 1 ≤ i ≤ k. with weight 0. Similarly add edges for V’out(v). 
 For each edge e = <x, y, t, λ> ∈ E, add a directed edge from (x, t) ∈ V’out(x) to (v, t+ λ) ∈ 
V’out(y).
4 
a’,0 
b,2 
1 0 1 
b,3 
0 0 
c,3 
c,5 
f,6 
f,7 
g,8 
0 
0 
0 
1 
0 0 
1 
1 
0 0 0 
1 
1 
a 
1 
2 2 
b c 
f g 
5 
6 
7 
Example 
Vout 
Vin 
Edge in original 
graph 
Within Vin/Vout 
From Vin to Vout
Foremost Path 
 Process the transformed graph G’ for a simple BFS Traversal 
 If the time t of any node is not in interval, then stop the BFS from that node 
 The minimum time of all the nodes visited (v, t) in G’ is the foremost time from a to 
v in G’ 
 From node a, in first round we visit (b, 2), (b, 3), (c, 3), and (c, 5) 
 Thus, the foremost time from a to b is 2, and from a to c is 3 and so on
Cost Optimal Path with time constraint 
 A graph in which cost of an edge changes with time is called time dependent 
graph 
 Two factors are considered in time dependent graph 
 Time 
 Cost of path 
 Constraints 
 Departure time from source and arrival time at destination must be within specified 
interval 
 Cost of the path must be minimum 
 Problem of finding cost-optimal path is 
 Optimal path from source to destination 
 Optimal waiting time at each node
 Earliest arrival time for each node is calculated so , λ1 = 0, λ2 = 
10, λ3 = 15 and λ4 = 25 and time domain of g1(t), g2(t), g3(t) and 
g4(t) are [0, 60], [10, 60], [15, 60] and [25, 60] respectively 
 Initially ti for all node is infinite except for source s 
 Priority Q is maintained containing all nodes with respect to 
their ti 
 In first iteration, v1 is dequeued as t1= 0 is minimum 
 g2(t) and g3(t) are computed and v1 is removed from Q 
 t2 = 20 and t3 = 5 are set 
 In second iteration, v3, is dequeued from Q 
 As T3 = 30, so S3 is updated as [30,60] 
 g4(t) is updated and t3 = 20 
 In third iteration, v2 is dequeued 
 g3(t) and g4(t) are computed and v2 is removed from Q 
 Similarly v3 is dequeued again in fourth iteration and v4 is 
dequeued in fifth iteration, and thus algorithm terminates
Conclusion 
 Graph DB used to store connected data and different technologies used to access 
them 
 Temporal Graph are used to withhold the temporal information about the data 
 Breadth first and depth traversal techniques on Temporal Graph 
 Different temporal paths and algorithms to determine those path
Thank You 
Q & A

More Related Content

PPTX
PPTX
NGINX: Basics & Best Practices - EMEA Broadcast
PDF
CNN-Basics
PPTX
Debug dpdk process bottleneck & painpoints
PDF
Luận văn Phong cách truyện ngắn Nguyễn Quang Sáng
PPTX
Scylla @ Disney+ Hotstar
PDF
Convolutional neural network
PDF
Cuda introduction
NGINX: Basics & Best Practices - EMEA Broadcast
CNN-Basics
Debug dpdk process bottleneck & painpoints
Luận văn Phong cách truyện ngắn Nguyễn Quang Sáng
Scylla @ Disney+ Hotstar
Convolutional neural network
Cuda introduction

What's hot (11)

PDF
I2c drivers
PDF
Introduction to Deep Learning (NVIDIA)
PDF
Docker swarm introduction
PDF
Slice Recycling Performance and Pitfalls
PDF
오픈소스로 구축하는 클라우드 이야기
PDF
Introduction to Recurrent Neural Network
PDF
Luận văn: Đặc điểm truyện ngắn Lưu Trọng Lư, HAY, 9đ
PPTX
Qt Qml
PPTX
UI Programming with Qt-Quick and QML
PDF
Disk health prediction for Ceph
I2c drivers
Introduction to Deep Learning (NVIDIA)
Docker swarm introduction
Slice Recycling Performance and Pitfalls
오픈소스로 구축하는 클라우드 이야기
Introduction to Recurrent Neural Network
Luận văn: Đặc điểm truyện ngắn Lưu Trọng Lư, HAY, 9đ
Qt Qml
UI Programming with Qt-Quick and QML
Disk health prediction for Ceph
Ad

Similar to Temporal graph (20)

PDF
FADML 06 PPC Graphs and Traversals.pdf
PPTX
logic.pptx
PDF
Problem Solving with Algorithms and Data Structure - Graphs
PDF
Unit-10 Graphs .pdf
PPTX
DATA STRUCTURES.pptx
PPTX
Unit 9 graph
PDF
Temporal networks - Alain Barrat
PPTX
Algorithms and data Chapter 3 V Graph.pptx
PPTX
Unit ix graph
PDF
Introduction to Graph Theory
PDF
Time-Evolving Graph Processing On Commodity Clusters
PPTX
Graph Algorithms
PPT
cs201-tree-graph as a data structure.ppt
PPTX
WEB DEVELOPMET FRONT END WITH ADVANCED RECEAT
PPTX
Data structure Graph PPT ( BFS & DFS ) NOTES
PPTX
Temporal Network
PPTX
ppt 1.pptx
PPTX
Basic Graph Algorithms Vertex (Node): lk
PPTX
data structures and algorithms Unit 2
FADML 06 PPC Graphs and Traversals.pdf
logic.pptx
Problem Solving with Algorithms and Data Structure - Graphs
Unit-10 Graphs .pdf
DATA STRUCTURES.pptx
Unit 9 graph
Temporal networks - Alain Barrat
Algorithms and data Chapter 3 V Graph.pptx
Unit ix graph
Introduction to Graph Theory
Time-Evolving Graph Processing On Commodity Clusters
Graph Algorithms
cs201-tree-graph as a data structure.ppt
WEB DEVELOPMET FRONT END WITH ADVANCED RECEAT
Data structure Graph PPT ( BFS & DFS ) NOTES
Temporal Network
ppt 1.pptx
Basic Graph Algorithms Vertex (Node): lk
data structures and algorithms Unit 2
Ad

Recently uploaded (20)

PDF
Practical Manual AGRO-233 Principles and Practices of Natural Farming
PDF
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
PDF
Chinmaya Tiranga quiz Grand Finale.pdf
PDF
Paper A Mock Exam 9_ Attempt review.pdf.
PPTX
Cell Structure & Organelles in detailed.
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PDF
Microbial disease of the cardiovascular and lymphatic systems
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PDF
01-Introduction-to-Information-Management.pdf
PDF
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
PPTX
Orientation - ARALprogram of Deped to the Parents.pptx
PPTX
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
PPTX
master seminar digital applications in india
PDF
Weekly quiz Compilation Jan -July 25.pdf
PPTX
UV-Visible spectroscopy..pptx UV-Visible Spectroscopy – Electronic Transition...
PDF
LDMMIA Reiki Yoga Finals Review Spring Summer
PPTX
Microbial diseases, their pathogenesis and prophylaxis
PDF
Yogi Goddess Pres Conference Studio Updates
PPTX
Radiologic_Anatomy_of_the_Brachial_plexus [final].pptx
Practical Manual AGRO-233 Principles and Practices of Natural Farming
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
Chinmaya Tiranga quiz Grand Finale.pdf
Paper A Mock Exam 9_ Attempt review.pdf.
Cell Structure & Organelles in detailed.
STATICS OF THE RIGID BODIES Hibbelers.pdf
Module 4: Burden of Disease Tutorial Slides S2 2025
Microbial disease of the cardiovascular and lymphatic systems
Final Presentation General Medicine 03-08-2024.pptx
01-Introduction-to-Information-Management.pdf
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
Orientation - ARALprogram of Deped to the Parents.pptx
Introduction-to-Literarature-and-Literary-Studies-week-Prelim-coverage.pptx
master seminar digital applications in india
Weekly quiz Compilation Jan -July 25.pdf
UV-Visible spectroscopy..pptx UV-Visible Spectroscopy – Electronic Transition...
LDMMIA Reiki Yoga Finals Review Spring Summer
Microbial diseases, their pathogenesis and prophylaxis
Yogi Goddess Pres Conference Studio Updates
Radiologic_Anatomy_of_the_Brachial_plexus [final].pptx

Temporal graph

  • 1. Temporal Graph : Storage, Traversal, Path discovery Submitted by Vinay Sarda M.Tech(CSE) II Year 13535054 Under the guidance of Prof. A.K. Sarje
  • 2. Outline  Introduction  Graph Database  What is a Temporal Graph  Traversal in Temporal Path  Types of Path in Temporal Graph  Algorithms to determine different temporal path  Conclusion
  • 3. Introduction  Graph database are best tool for handling highly connected data  In Relational or Hierarchical database, some entities have precedence over other like key, parent etc.  In Graph No node or edge have a higher precedence over other  Graph DB are NOSQL, doesn’t have rigid schema  Graph uses structures like nodes, edges are used to store and represent data  No need to look-up for neighbours as it provides index-free adjacency  Graph DB can be used in to determine whether two concept are related or not, or is it possible to reach from source to destination within specified interval etc.
  • 4. Example -Graph Roy is boy Mary is a girl Roy and Mary are friends
  • 5. Accessing Graph DB  TinkerPop is an open source toolkit that provides interfaces to implement Blueprint  Blueprint is a generic graph API, serves as a base layer for graph DB architectures  Pipes is a dataflow network using process graphs  Gremlin is a graph traversal language for accessing and manipulating graphs  Frames allows developer to frame a graph element in terms of java interface  Furnace is a graph algorithm package  Rexster is a graph server that exploits blueprint via REST  Example Titan Graph DB TinkerPop Stack
  • 6. Temporal Graph  Nodes and Edges are active for a specific time instance  Visiting nodes or edges at any time other than specific time instance is not possible  Example – SMS Network, flight scheduling, stock exchange network  Did mail from A to D had any impact on mail send from D to B Sender Receipent Time A B 0 A C,E 1 E D 3 B C 5 B D 9 D B 14 A D 20 C A B D E 1 C A 5 0 20 1 9 B D E 14 3 Non-Temporal Graph Temporal Graph
  • 7. Temporal Graph Traversal  Depth First Traversal  Temporal Constraint – In traversal from node a to e set of edges {(a,b,1),(b,e,6)} is valid, but edge set {(a,b,9),(b,e,6)} is not  Multiple edges – When multiple edges occur among the same pair of nodes, only one edge has to be chosen avoiding combinatorial effect  Edge with highest timestamp value (most recent connection)  Edge with lowest timestamp value (first connection) A B C E D F 3 2 8 6 7 1 4 5 9
  • 8. Depth First Traversal  Create a DFS tree rooted at node ‘a’ with lowest timestamp value  Initially every node’s visiting time is infinite  At node ‘a’, Eset = {(a,b,9), (a,b,1), (a,e,8), (a,c,2)}  Take edge (a,b,1) and visit node ‘b’ and mark time 1  Now Eset = {(b,d,7), (b,e,6)} and take edge (b,e,6), mark time t[e] = 6, and then (b,d,7), mark time t[d] = 7, and so on a b c e d 2 7 1 5 a c e b d 3 f 2 8 6 7 1 4 9 5 6
  • 9. Breadth First Traversal  Challenges  Temporal Constraint  Edges (b, d, 3) and (d, e, 3) forms a valid set of consecutive edges, but (c, d, 5), (d, e, 3) doesn’t.  Smallest path may not be earliest path  Path from a to d takes only one hop at time t = 7, while the earliest time at which d can be reached from a is 3 using edges (a, b, 2) and (b, d, 3)  If we mark node ‘d’ using edge a-d and don’t consider it again then ‘e’ cannot be reached  Multiple occurrences of a node are possible  Terminology  u – node  dist(u) – distance of node u from source s  σ(u) – earliest arrival time to reach node u from source node s  p(u) – parent node of u  Temporal edge is denoted as (u, v, t) a b c d e 2 5 4 7 3 5 3
  • 10.  While Q is not empty for each node v  If v is not in Q (whether v has been visited or not) traverse e, and if σ(v) > t, then visit v and push (v, dist(v) = dist(u) + 1, σ (v) = t, p(v) = u) into Q.  Else  If there exists (v, dist(v), σ (v), p(v)) in Q such that dist(v) = dist(u) + 1: traverse e, and if σ(v) > t, then visit v and update σ(v) = t and p(v) = u in Q  Else (i.e., dist(v) = dist(u)): traverse e, and if σ(v) > t, then visit v and push (v, dist(v) = dist(u) + 1, σ (v) = t, p(v) = u) into Q. a b c d e 2 5 4 7 3 5 3 c a b d e 2 4 3 d 7 3 (a, 0, 1, φ) (b, 1, 2, a) (d, 1, 7, a) (c, 1, 4, a) (d, 2, 3, b) (e, 3, 3, d) Q (u, dist(u), σ(u), p(v))
  • 11. Paths in Temporal Graph  A path ρ = {(s, u1, t1), (u1, u2, t2), (u2, u3, t3),……..,(ui-1, ui, ti), ….. (un-1 ,d, tn)} from source s to destination d is a temporal path if ti ≤ ti+1  Terminology  Pset - set of all paths from source s to destination d  [ta, tb] – time interval  t[u] – time at which node u can be reached from source s  tstart(ρ) - timestamp of a path ρ at which it starts at source s  tend(ρ) - timestamp of a path ρ at which it ends at destination d  dist(ρ) - number of nodes in path ρ  duration(ρ) – time taken by path ρ to reach destination node from source node, tend(ρ) - tstart(ρ)  Transition time – time taken to reach from node to its neighbour node (λ), by default assumed to be 1
  • 12.  Foremost – In a given interval, path that reaches destination as early as possible, path ρ ∈ Pset is a foremost path if all path ρ’ ∈ Pset, such that tend (ρ’) ≤ tend (ρ)  Example – Pset(A,H) = {{(A,B,1), (B,H,3)}, {(A,B,2), (B,H,3)}, {(A,C,4), (C,H,6)}}, but only A-B-H is the foremost path  Latest- departure path - In a given interval, path that reaches destination as early as possible, path ρ ∈ Pset is a latest-departure path, if all path ρ’ ∈ Pset, such that tstart (ρ’) ≤ tstart (ρ)  Example - Pset(A,H) = {{(A,B,1), (B,H,3)}, {(A,B,2), (B,H,3)}, {(A,C,4), (C,H,6)}}, but only A-C-H is the latest-departure path  Fastest path – Path that spends minimum time to reach destination d from source s, path ρ ∈ Pset is a fastest path if for all path ρ ∈ Pset, duration (ρ) <= duration (ρ’)  Example – Pset(B,K) = ({(B,H,3),(H,K,7)}, {(B,G,3),(G,K,6)}}, fastest path is B-G-K as it takes only 3 units of time A 1 2 4 2 3 B C F 3 3 6 5 G H I 6 2 7 8 9 J K L
  • 13.  Shortest Path – Path that takes minimum distance to reach the destination, path ρ ∈ Pset is a shortest temporal path if for all path ρ’ ∈ Pset, dist (ρ) ≤ dist (ρ′)  Example – Pset (A,I) = {(A→I), (A→F →J→I)}, then shortest path from source A to destination I is A→I  Most recent path – path where source and destination node are connected using edges with recent timestamp  Example – Among two paths from A to K { {(A,B,1), (B,G,3), (G,K,6)}, {(A,C,4), (C,H,6), (H,K,7)} }, path A-C-H-K is most recent path  Edge Constrained Path – path from s to d where adjacent edges have timestamp difference lower than certain threshold value  Example - Pset(A,L) = {{(A,F,3), (F,I,5), (I,L,8)}, {(A,F,3), (F,I,5), (I,L,9)}, {(A,I,2), (I,L,8)}, {(A,I,2), (I,L,9)}} with threshold value of 3 only path A-F-I-L satisfies the constraint A 1 2 4 2 3 B C F 3 3 6 5 G H I 6 2 7 8 9 J K L
  • 14. Observation  Optimal path in Temporal Graph v/s Non-Temporal Graph  Optimal path in Non-Temporal Graph has property that sub-path of optimal path is always optimal  But it doesn’t holds in case of Temporal Graph, example shortest path A B C D 2 3 7 4
  • 15. Temporal Path Discovery Techniques  Stream Representation of Temporal Graph  Transformation Graph
  • 16. Stream Representation  Edge sequence in the order of their creation is called stream representation of edges in a temporal graph  Example – {(A→B)/2, (B→C)/3, (C→D)/4, (A→C)/7} A B C D 2 3 7 4
  • 17. Foremost Path  Foremost Path for node ‘s’ in time interval [ta,tb]  For each node u in graph G t[u] = ∞  Considering each edge in the sequence in the order  Check for two conditions if true then update t[v] = t+λ  t+λ ≤ tb and t ≥ t[u]  t+λ < t[v]  if t+ λ > tb then exit
  • 18. Example  Edge representation is {(a, b, 1, λ), (a, c, 2, λ), (d, f, 3, λ), (b, d, 7, λ)}  Foremost path for node ‘a’ in [1,4] assuming λ = 1  For all node t[u] =∞  Mark t[a] = 0  For edge (a, b, 1, 1), t + λ = 2, satisfies conditions, update t[b] = 2  For edge (a, c, 2, 1), t + λ = 3, satisfies conditions, update t[c] = 3  For edge (d, f, 3, 1), t + λ = 4, doesn’t satisfies condition t ≥ t[d] as t[d] = ∞ and t = 3 t+λ ≤ tb and t ≥ t[u] t+λ < t[v] a c b d f 3 2 7 1 ∞ ∞ ∞ ∞ ∞ 0 a 3 c b d f 3 2 7 1 2 ∞ ∞
  • 19. Fastest Path  Lv – sorted list of foremost time for each node v from source node ‘s is maintained, (s[v], a[v]), where s[v] represents start time from ‘s’ and a[v] arrival time at v  If s’[v] > s[v] and a’[v] ≤ a[v], or s’[v] = s[v] and a’[v] < a[v], then (s’[v], a’[v]) dominates (s[v], a[v]) A 1 2 1,1 2,2 B D 3 5 C E 4 5 F 6 1,3 1,4 2,5 2,6 S.No. s[v] a[v] a 1 4 b 2 4 c 4 6 d 4 5
  • 20. Transformation Graph  Two Step process  Node Creation - for each node in V create nodes in V’ for each oncoming (V’in) and outgoing edge (V’out) with distinct label as (name , time)  Edge Creation –  For each node (v, tin) in V’in(v), add an directed edge from (v, tin) to (v, tout) ∈ V’out(v), such that tout is minimum in V’out(v), tout ≥ tin. and no other edge from (v, t’in) to (v, tout) is added to G’.  Given V’in(v) = {(v, t1), (v, t2), (v, t3), ….,(v, tk)}, where t1 ≤ t2 ≤ t3 ≤ …..tk, then add an edge for (v, ti) to (v, ti+1) for 1 ≤ i ≤ k. with weight 0. Similarly add edges for V’out(v).  For each edge e = <x, y, t, λ> ∈ E, add a directed edge from (x, t) ∈ V’out(x) to (v, t+ λ) ∈ V’out(y).
  • 21. 4 a’,0 b,2 1 0 1 b,3 0 0 c,3 c,5 f,6 f,7 g,8 0 0 0 1 0 0 1 1 0 0 0 1 1 a 1 2 2 b c f g 5 6 7 Example Vout Vin Edge in original graph Within Vin/Vout From Vin to Vout
  • 22. Foremost Path  Process the transformed graph G’ for a simple BFS Traversal  If the time t of any node is not in interval, then stop the BFS from that node  The minimum time of all the nodes visited (v, t) in G’ is the foremost time from a to v in G’  From node a, in first round we visit (b, 2), (b, 3), (c, 3), and (c, 5)  Thus, the foremost time from a to b is 2, and from a to c is 3 and so on
  • 23. Cost Optimal Path with time constraint  A graph in which cost of an edge changes with time is called time dependent graph  Two factors are considered in time dependent graph  Time  Cost of path  Constraints  Departure time from source and arrival time at destination must be within specified interval  Cost of the path must be minimum  Problem of finding cost-optimal path is  Optimal path from source to destination  Optimal waiting time at each node
  • 24.  Earliest arrival time for each node is calculated so , λ1 = 0, λ2 = 10, λ3 = 15 and λ4 = 25 and time domain of g1(t), g2(t), g3(t) and g4(t) are [0, 60], [10, 60], [15, 60] and [25, 60] respectively  Initially ti for all node is infinite except for source s  Priority Q is maintained containing all nodes with respect to their ti  In first iteration, v1 is dequeued as t1= 0 is minimum  g2(t) and g3(t) are computed and v1 is removed from Q  t2 = 20 and t3 = 5 are set  In second iteration, v3, is dequeued from Q  As T3 = 30, so S3 is updated as [30,60]  g4(t) is updated and t3 = 20  In third iteration, v2 is dequeued  g3(t) and g4(t) are computed and v2 is removed from Q  Similarly v3 is dequeued again in fourth iteration and v4 is dequeued in fifth iteration, and thus algorithm terminates
  • 25. Conclusion  Graph DB used to store connected data and different technologies used to access them  Temporal Graph are used to withhold the temporal information about the data  Breadth first and depth traversal techniques on Temporal Graph  Different temporal paths and algorithms to determine those path
  • 26. Thank You Q & A

Editor's Notes

  • #10: While Q is not empty, do: (a) Pop (u, dist(u), σ (u), p(u)) from Q; (b) Let Eu,v be the set of temporal edges going from u to v, where each edge (u, v, t) ∈ Eu,v has not been traversed before and σ(u) ≤ t. For each out-neighbor v of u, where Eu,v 6 = ∅, do: i. Let e = (u, v, t) be the edge in Eu,v where t = min{t ′ : (u, v, t ′ ) ∈ Eu,v}. ii. If v is not in Q (whether v has been visited or not): traverse e, and if σ(v) > t, then visit v and push (v, dist(v) = dist(u) + 1, σ (v) = t, p(v) = u) into Q. iii. Else: A. If there exists (v, dist(v), σ (v), p(v)) in Q such that dist(v) = dist(u) + 1: traverse e, and if σ(v) > t, then visit v and update σ(v) = t and p(v) = u in Q. B. Else (i.e., dist(v) = dist(u)): traverse e, and if σ(v) > t, then visit v and push (v, dist(v) = dist(u) + 1, σ (v) = t, p(v) = u) into Q. The BFS constructs a BFS tree, T , which is rooted at s, where the set of vertices in T is defined as ({s} ∪ {v : v is visited in the BFS and p(v) 6 = φ}, and the set of edges in T is defined as {(p(v), v ) : v in T and p(v) 6 = φ