Studying networks that evolve over time.
Clone or download
Pull request Compare This branch is 37 commits behind EtymoIO:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
data
doc_backup
docs
src
test
.gitignore
.travis.yml
LICENSE.md
NEWS.md
README.md
REQUIRE

README.md

EvolvingGraphs

Build Status codecov.io

Studying networks that evolve over time.

  • 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]