Professional Documents
Culture Documents
Introduction to Networks
1
Quotes for today
2
Network Models
Optimization models
Can be solved much faster than other LPs
Applications to industrial logistics, supply chain
management, and a variety of systems
Todays lecture: introductory material, Eulerian
tours, the Shortest Path Problem
Application of Network Models:
http://jorlin.scripts.mit.edu/docs/publications/52-
applications%20of%20network.pdf
3
Notation and Terminology
Note: Network terminology is not (and never will be)
standardized. The same concept may be denoted in
many different ways.
Called: 1 3
NETWORK
directed graph
digraph 2 4
graph
b b
1 2 1 2
a c a c
e e
4 d 3 4 d 3
Social networks
Organizational charts
friendship networks
interaction networks (e.g., cell calls)
6
Overview:
7
LOST: An
Illustrative
Example
Wired has a handy character chart (yes, there might be spoilers!), created by
bioinformics scientist Martin Krzywinski using Circos software (even that
sentence is confusing) that shows how all of the characters are related. For
example, if you're wondering how many of the characters are related via
"romance," click on Romance and the chart will change to show you that. Same
with Chance, Family, Occupational, Touched By Jacob, Undisclosed.
An elegant representation of arcs
UC Berkeley Visualization Lab. All rights reserved. This content is excluded from our Creative
Commons license. For more information, see http://ocw.mit.edu/help/faq-fair-use/.
http://flare.prefuse.org/apps/dependency_graph
Graph of Ph.D. advisors
H.A Newton (1850) Gottfried Leibniz (1666)
Note:
12 each arc shows up twice in the adjacency matrix.
Question. Is it possible that the
number of nodes of odd degree is odd?
1. Yes
2. No
13
Arc list representations
b 1: (1,2), (1,4)
1 2
a c 2: (2,3)
e
3:
4 d 3
4: (4,2), (4,3)
A Directed Graph
14
Which uses computer space more
efficiently for large road networks: the
adjacency matrix or adjacency lists?
e.g. consider a road network with 10,000
nodes, and with 40,000 arcs
1. Adjacency matrix
2. Adjacency
lists
16
Path: Example: 5, 2, 3, 4.
(or 5, c, 2, b, 3, e, 4) c 5 d
a b 3 e
No node is repeated. 1 2 4
Directions are ignored.
4 d 3 4 d 3
5 5
18
More terminology
20
The Bridges of Koenigsberg: Euler 1736
21
The town of Koenigsberg
B
C
Annotated map source unknown. All rights reserved. This content is excluded from our
Creative Commons license. For more information, see http://ocw.mit.edu/help/faq-fair-use/.
22
The Bridges of Koenigsberg: Euler 1736
1 2 3
B 4
5
C
6
7
D
1 2 3
B 4
5
C
6
7
D
24
The Bridges of Koenigsberg: Euler 1736
A
1 2 3
B
4
C
5 6
D
7
25
The Bridges of Koenigsberg: Euler 1736
A
1 2 3
B
4
C
5 6
D
7
A
3
8
1 2
B 4
C
5 6
9
D 7
28
Eulerian path: a walk that is not closed and
passes through each arc exactly once
29
Eulerian cycles
30
Traveling Salesman Problem
The 48 city problem.
32
More Definitions
2 4 2 4 2 4
5 5 5
33
More on Trees
An out-tree is a spanning tree in which every node has exactly
one incoming arc except for the root.
Theorem. In an out-tree, there is a directed path from the root
to all other nodes. (All paths come out of the root).
One can find the path by starting at the end and working
backwards.
1
1 3 2 3
2 4 4 5 6
5 7 8 9 10 11
34 12 13
The Shortest Path Problem
2 4 4
2 2
1 1 2 3 6
4 2
3 3 5
What is the shortest path from a source node (often
denoted as s) to a sink node, (often denoted as t)?
What is the shortest path from node 1 to node 6?
Assumptions for this lecture:
1. There is a path from the source to all other nodes.
2. All arc lengths are non-negative
35
Shortest Path Problem
36
Application 1: Shortest paths in a
Transportation Network
37
Dijkstras Algorithm
2 4 4 Exercise:
2 2 Find the
1 1 2 3 6 shortest paths
4 2 by inspection.
3 3 5
d(1)= 0, pred(1)=0;
d(2) = 2, pred(2)=1
Find the other distances, in order of increasing
38
distance from node 1.
Key observations
Suppose that d(i) is the length of some path from node 1
to node i.
Suppose that there is an arc (i, j) of length cij.
Then there is a path from node 1 to node j of length at
most d(i) + cij.
P
= 78
Length(P)
d(j) = 78
P 10
1 i j
Length(P) = 62 d(i) = 62
39
A Key Procedure in Shortest Path Algorithms
At each iteration d(j) is the length of some path from
node 1 to node j. (If no path is known, then d(j) = )
Procedure Update(i)
for each (i,j) A(i) do
if d(j) > d(i) + cij then d(j) : = d(i) + cij and
pred(j) : = i;
62 78 72
P 10
1 i j
40
Dijkstras Algorithm
begin
d(s) : = 0 and pred(s) : = 0;
Initialize distances.
d(j) : = for each j N - {s};
LIST : = {s}; LIST = set of
while LIST do temporary nodes
begin
let d(i) : = min {d(j) : j LIST};
remove node i from LIST;
update(i) Select the node i
if d(j) decreases from , on LIST with
place j inLIST
minimum distance
end
label, and then
end
update(i)
41
Initialize
d(2) = d(4) =
pred(2) = pred(4) =
4
2 4
2 2
d(1) = 0 1 1 2 3 6 d(6) =
4 2
pred(1) = pred(6) =
3
3 5
d(3) = d(5) =
pred(3) = pred(5) =
LIST = {1,
d( ) = {0,
Find the node i
on LIST with
minimum
d(2) = d(4) = distance label.
pred(2) = pred(4) =
4
2 4
2 2
d(1) = 0 11 1 2 3 6 d(6) =
4 2
pred(1) = pred(6) =
3
3 5
d(3) = d(5) =
pred(3) = pred(5) =
d(2)==2
d(2) d(4) =
pred(2)==1
pred(2) pred(4) =
4
2 4
2 2
d(1) = 0 11 1 2 3 6 d(6) =
pred(1) =
4 2 pred(6) =
3
3 5
d(3)==4
d(3) d(5) =
pred(3)==1
pred(3) pred(5) =
LIST
LIST == {{1,
{ 2, 3
d(
d( )) == {{0,
{ 2,
2 4
44
Find the node i
on LIST with
minimum
d(2) =
2 d(4) =
pred(2) = 1 distance label.
pred(4) =
4
2 4
2 2
d(1) = 0 1 1 2 3 6 d(6) =
pred(1) =
4 2 pred(6) =
3
3 5
d(3) = 4 d(5) =
pred(3) = 1 pred(5) =
LIST
LIST == {{{1,
32, 3 Remove i from
LIST. Make i
d(
d( )) == {{{0,
42,
2 4 permanent.
45
Arcs (2, 3), (2, 4) and (2,5) will be scanned next.
Which nodes will have their distance label changed?
d(2) = 2 d(4) =
4
2 4
2 2
d(1) = 0 1 1 2 3 6 d(6) =
4 2
3
3 5
d(3) = 4 d(5) =
1. 2, 3, 4 and 5
2. 3,
4, and 5
3. 4 and 5
4. none of the above.
46
Update(2)
d(2) = 2 d(4)==
d(4) 6
pred(2) = 1 pred(4)
pred(4)==2
4
2 4
2 2
d(1) = 0 1 1 2 3 6 d(6) =
pred(1) =
4 2 pred(6) =
3
3 5
d(3) = 4
3 d(5)==
d(5) 4
pred(3) = 2
1 pred(5)==2
pred(5)
LIST = { 3, 4,
4 5
d( ) = { 3,
4 6,
3 6 4
47
Find the node i
on LIST with
minimum
d(2) = 2 d(4) = 6
pred(2) = 1 pred(4) = 2 distance label.
4
2 4
2 2
d(1) = 0 1 1 2 3 6 d(6) =
pred(1) =
4 2 pred(6) =
3
33 5
d(3) = 3 d(5) = 4
pred(3) = 2 pred(5) = 2
LIST = {4,
{ 3,54, 5 Remove i from
LIST. Make i
48
d( ) = {6,
{ 3,46, 4 permanent.
Update(3)
d(2) = 2 d(4) = 6
pred(2) = 1 pred(4) = 2
4
2 4
2 2
d(1) = 0 1 1 2 3 6 d(6) =
pred(1) =
4 2 pred(6) =
3
33 5
d(3) = 3 d(5) = 4
pred(3) = 2 pred(5) = 2
LIST = {4, 5
49
d( ) = {6, 4
Find the node i
on LIST with
minimum
d(2) = 2 d(4) = 6
pred(2) = 1 pred(4) = 2 distance label.
4
2 4
2 2
d(1) = 0 1 1 2 3 6 d(6) =
pred(1) =
4 2 pred(6) =
3
3 55
d(3) = 3 d(5) = 4
pred(3) = 2 pred(5) = 2
LIST = {4
{4, 5 Remove i from
LIST. Make i
50
d( ) = {6
{6, 4 permanent.
Update(5)
d(2) = 2 d(4) = 6
pred(2) = 1 pred(4) = 2
4
2 4
2 2
d(1) = 0 1 1 2 3 6 d(6)==6
d(6)
pred(1) =
4 2 pred(6)==5
pred(6)
3
3 55
d(3) = 3 d(5) = 4
pred(3) = 2 pred(5) = 2
LIST = {4,
{4 6
51
d( ) = {6,
{6 6
Which node will be scanned next according
to the usual rule?
d(4) = 6
4
2 4
2 2
1 2 3 d(6) = 6
1 6
4 2
3
3 55
1. node 4
2. node 6
3. either
node 4 or node 6; both choices are OK.
52
Find the node i
on LIST with
minimum
d(2) = 2 d(4) = 6
pred(2) = 1 pred(4) = 2 distance label.
4
2 44
2 2
1 2 3
d(1) = 0 1 6 d(6) = 6
4 2 pred(6) = 5
pred(1) =
3
3 5
d(3) = 3 d(5) = 4
pred(3) = 2 pred(5) = 2
LIST = {6
{4, 6 Remove i from
LIST. Make i
53
d( ) = {6
{6, 6 permanent.
Update(4)
d(2) = 2 d(4) = 6
pred(2) = 1 pred(4) = 2
4
2 44
2 2
1 2 3
d(1) = 0 1 6 d(6) = 6
4 2 pred(6) = 5
pred(1) =
3
3 5
d(3) = 3 d(5) = 4
pred(3) = 2 pred(5) = 2
LIST = {6
54
d( ) = {6
Find the node i
on LIST with
minimum
d(2) = 2 d(4) = 6
pred(2) = 1 pred(4) = 2 distance label.
4
2 4
2 2
1 2 3
d(1) = 0 1 66 d(6) = 6
4 2 pred(6) = 5
pred(1) =
3
3 5
d(3) = 3 d(5) = 4
pred(3) = 2 pred(5) = 2
d(2) = 2 d(4) = 6
pred(2) = 1 pred(4) = 2
4
2 4
2 2
1 2 3
d(1) = 0 1 66 d(6) = 6
4 2 pred(6) = 5
pred(1) =
3
3 5
d(3) = 3 d(5) = 4
pred(3) = 2 pred(5) = 2
LIST = {{6
Node 6 has no
d( ) = {{6 outgoing arcs.
56
Find the node i
on LIST with
minimum
d(2) = 2 d(4) = 6
pred(2) = 1 pred(4) = 2 distance label.
4
2 4
2 2
1 2 3
d(1) = 0 1 6 d(6) = 6
4 2 pred(6) = 5
pred(1) =
3
3 5
d(3) = 3 d(5) = 4
pred(3) = 2 pred(5) = 2
1 2 3
d(1) = 0 1 6 d(6) = 6
4 2 pred(6) = 5
pred(1) =
3
3 5
d(3) = 3 d(5) = 4
pred(3) = 2 pred(5) = 2
1 2 3
d(1) = 0 1 6 d(6) = 6
4 2 pred(6) = 5
pred(1) =
3
3 5
d(3) = 3 d(5) = 4
pred(3) = 2 pred(5) = 2
59
d( ) = {{6
Comments on Dijkstras Algorithm
Dijkstras algorithm makes nodes permanent in
increasing order of distance from the origin
node.
Dijkstras algorithm is efficient in its current
form. The running time grows as n2, where n is
the number of nodes
It can be made much more efficient
In practice it runs in time linear in the number of
arcs (or almost so).
60
Edsger Dijkstra
1930-2002
http://en.wikipedia.org/wiki/Edsger_W._Dijkstra
61
Summary
The Eulerian cycle problem
62
MIT OpenCourseWare
http://ocw.mit.edu
For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.