Prof. Götz Pfeiffer
School of Mathematics, Statistics and Applied Mathematics
NUI Galway
Modern societies are in many ways highly connected. Certain aspects of this phenomenon are frequently described as networks. This course is meant as an introduction into the emerging interdisciplinary subject of network science.
There will be some homework assignments, approximately $4$ over the semester.
The assignments will be marked and contribute a continuous assessment mark worth $40\%$ of the overall score.
The remaining $60\%$ come from the Summer exam.
The exam will have $4$ questions, each worth $15\%$.
...
Newman broadly divides the most commonly studied real world networks into four classes:
technological networks,
social networks,
information networks and
biological networks.
There is of course some overlap between these classes. But it is an interesting exercise to list some examples within each class, and to describe their general structure.
by some means (links).
Technological networks rely on a physical infrastructure.
In many
cases, this infrastructure has been built over many decades
part of the backbone of modern societies.
(www.opte.org)
representing some sort of social interaction.
edges are called ties.
sites like facebook
or twitter
.
exhibiting their relations to others online.
compiled by interviewing the people involved.
which are linked to each other in some way.
Example: relational databases.
Sets of information
(like scientific publications) have been linking to each other (e.g., through citations) long before computers were invented.
information network.
in form of text and pictures, and its edges are the hyperlinks. allowing us to surf, or navigate from page to page.
hyperlink to the page that is referenced.
and control mechanisms in the biological cell:
metabolic networks,
protein-protein interaction networks and
genetic regulatory networks.
A neural network can be represented as a set of
vertices, the neurons, connected by two types of directed edges, one for excitatory inputs and one for inhibiting inputs.
In its simplest form, a network is just a collection of points (called vertices or nodes), some of which are joined in pairs (called edges or links).
Many systems of interest are composed of individual parts that are in some way linked together.
Such systems can be regarded as networks, and thinking about them in this way can often lead to new and useful insights.
Network science studies the pattern of connections between the components of a system.
Naturally, the structure of the network can have a big impact on the behavior of a system.
The connections in a social network, for example, affect how people learn, form opinions, or spread a disease ...
by vertices and edges.
undertaking that combines ideas from
mathematics,
computer science,
physics,
the social sciences,
biology
...
Between these scientific fields, many tools have been developed
for analyzing, modeling and understanding networks.
is that of centrality.
how important a particular vertex or edge is in a networked system.
what it means to be central.
of a vertex is its degree, i.e., the number of edges it is part of.
particular system depends of course on the specific nature of the system and the questions one wants to ask.
Another interesting network concept is the small-world effect.
It is concerned with the question of how far apart two randomly chosen points in a network typically are.
Here, distance is usually measured by the number of edges one would need to cross over, when travelling along a path from one vertex to the other.
In real world social networks the distance between people tends to be rather small.
This observation is known as the six degrees of separation in popular culture.
This course is meant as an introduction to Network Science where, within the given time and space constraints, some but certainly not all of its interesting aspects will be discussed.
Graphs and Graph Theory
Centrality Measures
Random Graphs
Small Worlds
Power Laws and Scale-Free Graphs
Models of Growing Graphs
Lecture notes and Assignments come in the form of jupyter
notebooks.
This allows us to include interactive python
code
with the text.
The notebooks will be uploaded (and updated) on github
at
If jupyter
is installed on your computer, you can download
the notebooks and execute them there.
Alternatively, you can follow the links
or
to execute the notebooks on binder
, or Google's colab
site ...
We will use the networkx
package and other packages from the
python
scientific stack to work on nontrivial examples of networks.
import networkx as nx
nx.__version__
networkx
allows us to quickly construct graphs and to work with their elements.
G = nx.Graph(["AB", "BC", "BD", "CD"])
list(G.nodes)
list(G.edges)
The matplotlib
package contains the functionality needed to draw
a diagram of the graph on this page.
nx.draw(G, with_labels=True)
More about graphs and their implementation in the next lecture ...
We hope to develop a network perspective as a powerful way of looking at complex systems in general. Networks provide a way of thinking about
and approaching such systems with an eye toward their internal structural patterns and the resulting rich feedback effects.
python
¶import
statement [doc]
provides access to packages, or their parts and elements.import math
math.pi
from math import pi
pi
import numpy as np
np.array([1,2,3])
list
constructor [doc]
tries and creates a list from its arguments.list("networks")
list((1,2,3,4))
networkx
¶Graph
constructor [doc]can be used to construct a graph from data in various formats.
edges = ["01", "12", "23", "30"]
G = nx.Graph(edges)
draw
function [doc] depends on the mathplotlib
library.nx.draw(G, with_labels=True)
Import the sin
function from the math
package and
use it to compute $\sin(\pi/4)$.
Construct and draw a graph with $5$ nodes and $5$ edges that form a circle.