Working with time-dependent networks in Julia
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
data
docs
src
test
.gitignore
.travis.yml
LICENSE.md
NEWS.md
README.md
REQUIRE

README.md

EvolvingGraphs

Build Status codecov.io

Working with time-dependent networks in Julia

  • Installation:
Pkg.add("EvolvingGraphs")

Get Started

We model a time-dependent network, a.k.a an evolving graph, as a ordered sequence of static graphs such that each static graph represents the interaction between nodes at a specific time stamp. The figure below shows an evolving graph with 3 timestamps.

simple evolving graph

Using EvolvingGraphs, we could simply construct this graph by using the function add_bunch_of_edges!, which adds a list of edges all together.

julia> using EvolvingGraphs

julia> g = EvolvingGraph()
Directed EvolvingGraph 0 nodes, 0 static edges, 0 timestamps

julia> add_bunch_of_edges!(g, [(1,2,1),(1,3,2),(2,3,3)])
Directed EvolvingGraph 3 nodes, 3 static edges, 3 timestamps

julia> edges(g)
3-element Array{EvolvingGraphs.WeightedTimeEdge{EvolvingGraphs.Node{Int64},Int64,Float64},1}:
 Node(1)-1.0->Node(2) at time 1
 Node(1)-1.0->Node(3) at time 2
 Node(2)-1.0->Node(3) at time 3

Now you've created your first evolving graph! Congrats!

To learn more about evolving graphs and why they are useful, please have a look at our tutorial.

References

  • Weijian Zhang, "Dynamic Network Analysis in Julia", MIMS EPrint, 2015.83, (2015). [pdf]

  • Jiahao Chen and Weijian Zhang, "The Right Way to Search Evolving Graphs", MIMS EPrint, 2016.7, (2016) [pdf] [source]