0% found this document useful (0 votes)
8 views

Graph Algorithm 2

The document discusses graph algorithms, particularly focusing on the breadth-first search (BFS) method for finding the shortest paths in a graph. It defines key concepts such as connected graphs, paths, and the efficiency of BFS, which operates in linear time O(V + E). Additionally, it explores practical applications of BFS through a problem involving finding paths in a graph representation of a scenario with characters like Mario and Bell.

Uploaded by

zhihengzhou0419
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Graph Algorithm 2

The document discusses graph algorithms, particularly focusing on the breadth-first search (BFS) method for finding the shortest paths in a graph. It defines key concepts such as connected graphs, paths, and the efficiency of BFS, which operates in linear time O(V + E). Additionally, it explores practical applications of BFS through a problem involving finding paths in a graph representation of a scenario with characters like Mario and Bell.

Uploaded by

zhihengzhou0419
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 109

Introduction to Algorithms

Class 3: Graph Algorithm 2

Jianxi Gao

Department of Computer Science


Rensselaer Polytechnic Institute
www.gaojianxi.com
About the Lab
Number of shortest paths

3 2 2 2 3

5 4 3 4

5 5 1 1 4 2

1 0 1 5
Number of shortest paths

3 2 2 2 3

5 4 3 4

5 5 1 1 4 2

1 0 1 5
PATHS

A path is a sequence of nodes in which each node is adjacent to the next one.

Pi0,in of length n between nodes i0 and in is an ordered collection of n+1 nodes and n links

Pn = {(i0 ,i1),(i1,i2 ),(i2 ,i3 ),...,(in-1,in )}


Connected graph
B
B
A
A Telephone
Internet
C
transportation
D E C
D E
F
F
G
G Bridge: A-F
Connected Not connected

Def 1: Nodes u and v are connected, 𝐢𝐟 ∃ a path connection u and v.

Def 2: A graph is connected if all nodes are connected to each other.

A disconnected graph is made up by two or more connected components.


Example from the Book
Breadth-first Search

Procedure BFS(𝐺, 𝑠)
Input: Graph 𝐺 = (𝑉, 𝐸), directed or undirected; vertex 𝑠 ∈ 𝑉.

Output: For all vertices u reachable from 𝑠, 𝑑𝑖𝑠𝑡(𝑡) is set to


the distance from 𝑠 to u.
Breadth-first Search

for all u ∈ 𝑉;
𝑑𝑖𝑠𝑡 𝑢 = ∞
𝑑𝑖𝑠𝑡 𝑠 = 0
𝑄 = [𝑠] (queue only contains 𝑠)
while 𝑄 is not empty
𝑢 = 𝑒𝑗𝑒𝑐𝑡(𝑄) (Remove the first element 𝑢 from 𝑄)
for all edges 𝑢, 𝑣 ∈ 𝐸:
if 𝑑𝑖𝑠𝑡 𝑣 = ∞:
𝑖𝑛𝑗𝑒𝑐𝑡 𝑄, 𝑣
𝑑𝑖𝑠𝑡 𝑣 = 𝑑𝑖𝑠𝑡 𝑢 + 1
Meeting princess
Meeting princes

Here are the questions:


(1) Is there any path from Mario to Bell?
(2) Can Mario reach Bell in 4 steps (letters)?
(3) If not, the minimal steps?

Let’s spend 10 mins to help Mario.


Meeting princess

We need to build a graph.


Meeting princess
Meeting princess
Meeting princess
Meeting princess BFS

for all u ∈ 𝑉 = {𝐴, 𝐵, 𝐶, 𝐷, 𝐸, 𝐹, 𝐺, 𝐻, 𝐼, 𝐽};


𝑑𝑖𝑠𝑡 𝑢 = ∞
Initialization.
𝑑𝑖𝑠𝑡 𝐺 = 0
𝑄 = [𝐺] (queue only contains 𝐺)

1. 𝑢 = 𝐺,
2. 𝐺, 𝐷 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐷 = ∞
3. 𝑄 = 𝐷 , 𝑑𝑖𝑠𝑡 𝐷 = 𝑑𝑖𝑠𝑡 𝐺 + 1 = 1
4. 𝐺, 𝐻 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐻 = ∞
5. 𝑄 = 𝐷, 𝐻 , 𝑑𝑖𝑠𝑡 𝐻 = 𝑑𝑖𝑠𝑡 𝐺 + 1 = 1
Meeting princess BFS

5. 𝑄 = 𝐷, 𝐻 , 𝑑𝑖𝑠𝑡 𝐻 = 𝑑𝑖𝑠𝑡 𝐺 + 1 = 1
6. 𝑢 = 𝐷,
7. 𝐷, 𝐴 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐴 = ∞
8. 𝑄 = 𝐻, 𝐴 , 𝑑𝑖𝑠𝑡 𝐴 = 𝑑𝑖𝑠𝑡 𝐷 + 1 = 2
9. 𝐷, 𝐻 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐻 = 1 →continue
10.𝑢 = 𝐻
11. 𝐻, 𝐷 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐷 = 1 →continue

12. 𝑄 = 𝐴
Meeting princess BFS

12. 𝑄 = 𝐴
13. 𝑢 = 𝐴,
14. 𝐴, 𝐵 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐵 = ∞
15. 𝑄 = 𝐵 , 𝑑𝑖𝑠𝑡 𝐵 = 𝑑𝑖𝑠𝑡 𝐴 + 1 = 3
16. 𝐴, 𝐶 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐶 = ∞
17. 𝑄 = 𝐵, 𝐶 , 𝑑𝑖𝑠𝑡 𝐶 = 𝑑𝑖𝑠𝑡 𝐴 + 1 = 3
18. 𝐴, 𝐷 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐷 = 1 →continue

19. 𝑄 = 𝐵, 𝐶
Meeting princess BFS

19. 𝑄 = 𝐵, 𝐶 What is the next?

20. 𝑢 = 𝐵,
21. 𝐵, 𝐸 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐸 = ∞
22. 𝑄 = 𝐶, 𝐸 , 𝑑𝑖𝑠𝑡 𝐸 = 𝑑𝑖𝑠𝑡 𝐵 + 1 = 4
23. 𝐵, 𝐹 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐹 = ∞
24. 𝑄 = 𝐶, 𝐸, 𝐹 , 𝑑𝑖𝑠𝑡 𝐹 = 𝑑𝑖𝑠𝑡 𝐵 + 1 = 4
25. 𝐵, 𝐴 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐴 = 3 →continue

26. 𝑄 = 𝐶, 𝐸, 𝐹
Meeting princess BFS

26. 𝑄 = 𝐶, 𝐸, 𝐹
27. 𝑢 = 𝐶,
28. 𝐶, 𝐴 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐴 = 3 →continue

29. 𝐶, 𝐹 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐹 = 4 →continue

30. 𝑄 = 𝐸, 𝐹
Meeting princess BFS

30. 𝑄 = 𝐸, 𝐹
31. 𝑢 = 𝐸,
32. 𝐸, 𝐼 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐼 = ∞
33. 𝑄 = 𝐹, 𝐼 , 𝑑𝑖𝑠𝑡 𝐼 = 𝑑𝑖𝑠𝑡 𝐸 + 1 = 5
34. 𝐸, 𝐽 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐽 = ∞
35. 𝑄 = 𝐹, 𝐼, 𝐽 , 𝑑𝑖𝑠𝑡 𝐽 = 𝑑𝑖𝑠𝑡 𝐸 + 1 = 5

For the rest of the elements in 𝑄 …


Meeting princes

Here are some questions:


(1) Is there any path from Mario to Bell? Yes
(2) Can Mario reach Bell in 4 steps? No
(3) If not, the minimal steps? 5
Main questions about BFS

(1) Is it correct?
Are you kidding me?
(2) Is it efficient?

Can we prove that this algorithm is correct?


Is it correct?

For each d=0,1,2,…, these is a moment at which


(1) all nodes at distance ≤ 𝑑 from 𝑠 have their distance correctly set;
(2) all other nodes have their distance set to ∞;
(3) The queue contains exactly the nodes at distance d.
We will use an induction on distance to prove?
𝑄 = [𝑠] d=0

𝑄 = [𝐴1 , 𝐴2, . . 𝐴𝑘 ] d=1

𝑄 = 𝐵1 , 𝐵2 , … , 𝐵𝑟 d=2

𝑄 = [𝐶1, 𝐶2 , … , 𝐶𝑡 ] d=3
Is it efficient?

The overall running time of this algorithm is linear, 𝑂 𝑉 + 𝐸 .

The Meeting princess problem


1. 𝑢 = 𝐺, Why I only checked 𝐺, 𝐷 𝑎𝑛𝑑 𝐺, 𝐻
2. 𝐺, 𝐷 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐷 = ∞
It depends on how you
3. 𝑄 = 𝐷 , 𝑑𝑖𝑠𝑡 𝐷 = 𝑑𝑖𝑠𝑡 𝐺 + 1 = 1 represent the graph?
4. 𝐺, 𝐻 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐻 = ∞
5. 𝑄 = 𝐷, 𝐻 , 𝑑𝑖𝑠𝑡 𝐻 = 𝑑𝑖𝑠𝑡 𝐺 + 1 = 1
ADJACENCY MATRIX (Undirected)

Aij=1 if there is a link between node i and j


Links: undirected (symmetrical)
Aij=0 if nodes i and j are not connected.
Graph:
L
A
4
F M

I
D 3
2
B G 1

H
C

Undirected links :
coauthorship links
Actor network
protein interactions
An Example of UNDIRECTED Graphs

Map of scientific collaboration between researchers


ADJACENCY MATRIX

• Space proportional to Θ(n2). (𝑛 = |𝑉|)


• Checking if (u, v) is an edge takes Θ(1) time
• Identify all edges takes Θ(n2) time
ADJACENCY LISTs

Node-indexed array of lists.


• Space proportional to Θ(|V|+|E|).
• Checking if (u, v) is an edge takes Θ(degree(u)) time
• Identify all edges takes Θ(|V|+|E|) time
ADJACENCY MATRIX AND NODE DEGREES

Node degree: the number of links connected to the node.


A

kA =1
Question for a graph 𝐺 = (𝑉, 𝐸):

B What is the total degree of a graph?

kB = 4

æ0 1 0 1ö N

4 ç ÷ ki = åA ij

ç 1 0 0 1÷ j =1
Aij =
ç0 0 0 1÷ N

3 ç ÷ k j = å Aij
2
è1 1 1 0ø i=1
1
Aij = A ji N N

L = å ki = å Aij
1 1
Aii = 0 2 i=1 2 ij
Is it efficient?

The overall running time of this algorithm is linear, 𝑂 𝑉 + 𝐸 .

The Meeting princess problem


1. 𝑢 = 𝐺,
Should we use adjacency matrix
2. 𝐺, 𝐷 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐷 = ∞ or adjacency list?

3. 𝑄 = 𝐷 , 𝑑𝑖𝑠𝑡 𝐷 = 𝑑𝑖𝑠𝑡 𝐺 + 1 = 1
4. 𝐺, 𝐻 ∈ 𝑬, 𝐚𝐧𝐝 𝑑𝑖𝑠𝑡 𝐻 = ∞
5. 𝑄 = 𝐷, 𝐻 , 𝑑𝑖𝑠𝑡 𝐻 = 𝑑𝑖𝑠𝑡 𝐺 + 1 = 1
Average Degree
COMPLETE GRAPH

The maximum number of links a network


of N nodes can have is: Lmax = æç N ö÷ = N(N -1)
è2ø 2

A graph with degree L=Lmax is called a complete graph,


and its average degree is <k>=N-1
REAL NETWORKS ARE SPARSE

Most networks observed in real systems are sparse:

L << Lmax
or
<k> <<N-1.

WWW (ND Sample): N=325,729; L=1.4 106 Lmax=1012 <k>=4.51


Protein (S. Cerevisiae): N= 1,870; L=4,470 Lmax=107 <k>=2.39
Coauthorship (Math): N= 70,975; L=2 105 Lmax=3 1010 <k>=3.9
Movie Actors: N=212,250; L=6 106 Lmax=1.8 1013 <k>=28.78

(Source: Albert, Barabasi, RMP2002)


ADJACENCY MATRICES ARE SPARSE
Is BFS efficient?
for all u ∈ 𝑉; 𝑂(𝑛)
𝑑𝑖𝑠𝑡 𝑢 = ∞
𝑑𝑖𝑠𝑡 𝑠 = 0 𝑂(1) 𝑂(𝑛)
𝑄 = [𝑠] (queue only contains 𝑠) 𝑂(1)
while 𝑄 is not empty 𝑂(𝑛)
𝑂(𝑛)
𝑢 = 𝑒𝑗𝑒𝑐𝑡(𝑄) 𝑂(1)
for all edges 𝑢, 𝑣 ∈ 𝐸: 𝑂(𝑛)
𝑂(𝑛)
if 𝑑𝑖𝑠𝑡 𝑣 = ∞: 𝑂(1)
𝑖𝑛𝑗𝑒𝑐𝑡 𝑄, 𝑣
Looks like 𝑂(𝑛2 ), not linear.
𝑑𝑖𝑠𝑡 𝑣 = 𝑑𝑖𝑠𝑡 𝑣 + 1
Trick!!!
Is BFS efficient?
for all u ∈ 𝑉; 𝑂(𝑛)
𝑑𝑖𝑠𝑡 𝑢 = ∞
𝑑𝑖𝑠𝑡 𝑠 = 0 𝑂(1) 𝑂(𝑛)
𝑄 = [𝑠] (queue only contains 𝑠) 𝑂(1)
while 𝑄 is not empty 𝑂(𝑛)
𝑂(𝑛)
𝑢 = 𝑒𝑗𝑒𝑐𝑡(𝑄) 𝑂(1)
for all edges 𝑢, 𝑣 ∈ 𝐸: 𝑂(𝑑𝑒𝑔𝑟𝑒𝑒(𝑢)) 𝑂(𝑚)
if 𝑑𝑖𝑠𝑡 𝑣 = ∞: 𝑂(1)
𝑖𝑛𝑗𝑒𝑐𝑡 𝑄, 𝑣
𝑑𝑖𝑠𝑡 𝑣 = 𝑑𝑖𝑠𝑡 𝑣 + 1
The overall running time of this algorithm is linear, 𝑂 𝑉 + 𝐸 .
Graph Algorithms

Part II
UNDIRECTED NETWORKS

Notation. G = (V,E)
V = nodes (or vertices).
E = edges (or arcs) between pairs of nodes
Captures pairwise relationship between objects.
Network size parameters: n = |V |, m = |E|.

L
A
F M V = {A,B,C,D,E,F,G,H,I, L,M}
I
E {A-D,B-B,B-D,C-D,C-D,D-F,F-G,G-H,H-I,L-M}
D

B G

H
A-D is the same as D-A
C

n = 10, m = 10.
Some graph applications

Graph Nodes Edges


transportation street intersections highways
communication computers fiber optic cables
World Wide Web web pages hyperlinks
social people relationships
food web species predator-prey
software systems functions function calls
scheduling tasks precedence constraints
circuits gates wires

45
Tress

root r
parent of v

child of v

a tree the same tree, rooted at 1

46
GUI tree

• GUI containment hierarchy. Describe


organization of GUI widgets.

Reference: http://java.sun.com/docs/books/tutorial/uiswing/overview/anatomy.html

47
COVID-19
• It spreads so fast because of huge human
mobility
• The spreading process seems unpredictable
COVID-19

49
COVID-19: travel restrictions

https://science.rpi.edu/computer-science/news/new-covid-19-
50 model-reveals-need-better-travel-restriction-implementation
International airline network

What parts of the graph are reachable


from a given vertex (for example Wuhan)?
Depth-First Search (DFS)
An extra exercise

A network of numbers.

89 72 14 4

98
59 45 20 0

95

What numbers are reachable from 0?


Do you want to use BFS or DFS?

You might also like