Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
12 views

Final Graph

Uploaded by

samarth
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views

Final Graph

Uploaded by

samarth
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 77

Accredited with Grade A by NAAC

Accredited with Grade A by KCG

CE245 : Data Structure and Algorithms

Topic: Graph Data Structure

Prepared By,
Dr. Nikita Bhatt
Prof. Sarita Thummar
Graph
 A graph G = (V,E) is composed of:
V: set of vertices
E: set of edges connecting the vertices in V
 An edge e = (u,v) is a pair of vertices

a b V= {a,b,c,d,e}
E= {(a,b),(a,c),(a,d),
(b,e),(c,d),(c,e),
c (d,e)}

d e

2
Applications of Graph
 Social Networks: Connecting friends on social media, where each user is a vertex, and
when users connect they create an edge.
 Facebook, twitter, Instagram

3
Applications of Graph(continue)
 Minimizing connection in IC: Integrated Circuits consists of millions of transistors,
which need to be connected. It is important to optimize these countless connections to
improve the performance of the chip. (MST)

 Minimizing number of registers required for Code Generation- Graph Coloring

4
Applications of Graph(continue)
 Topological ordering: Course Prerequisite Structure

https://slideplayer.com/slide/6918692/

5
Applications of Graph(continue)
 Graph in Drug Discovery
 Molecules are Graph.
 Atoms as nodes, bonds as edges
 Features such as atom type, charge, bond type…

6
Applications of Graph(Continue)
 Graph in Drug Discovery
 Interesting task is to predict whether the molecule is a potent drug.
• Can do binary classification on whether the drug will inhibit certain bacteria. (E.Coli)
• Train on a dataset for compounds where response is known.
• Once training is done, a model can be applied to any molecule.
• Select the top 100 candidates from GNN model.
• Provide that information to chemists

7
Applications of Graph(Continue)
 Success Story: The most popularized success story of Graph Neural Network(GNN).

8
Applications of Graph(Continue)
 Transportation maps (e.g. the ones found on Google Maps) naturally modelled as Graph.

 Nodes could be intersections and edges could be roads. (Relevant node features: road
length, current speed, historical speeds)

9
Applications of Graph(Continue)
 GNNs are a very hot research topic.

10
Terminology: Path

path:
3 2
sequence of vertices
v1,v2,. . .vk such that 3

consecutive vertices vi 3 3
and vi+1 are adjacent.
a b a b

c c

d e d e
abedc bedc

11
More Terminology
simple path: no repeated vertices

a b

bec
c

d e

• cycle: simple path, except that the last vertex is the same as
the first vertex
a b

a c da
c

d e
Even More Terminology
•connected graph: any two vertices are connected by some path

connected not connected


• subgraph: subset of vertices and edges forming a graph
• connected component: maximal connected subgraph. E.g., the graph below
has 3 connected components.
Types of Graph

1. Finite Graph: The graph G=(V, E) is called a finite graph if the


number of vertices and edges in the graph is limited in number.
Types of Graph

Infinite Graph:
The graph G=(V, E) is called a finite graph if the number of vertices
and edges in the graph is interminable.
Types of Graph

Trivial Graph:
A graph G= (V, E) is trivial if it contains only a single vertex and no
edges.
Types of Graph

Simple Graph:
If each pair of nodes or vertices in a graph G=(V, E) has only one
edge, it is a simple graph. As a result, there is just one edge linking
two vertices, depicting one-to-one interactions between two
elements.
Types of Graph

Multi Graph:
If there are numerous edges between a pair of vertices in a graph
G= (V, E), the graph is referred to as a multigraph. There are no self-
loops in a Multigraph.
Types of Graph

Null Graph:
It's a reworked version of a trivial graph. If several vertices but no
edges connect them, a graph G= (V, E) is a null graph
Types of Graph

Complete Graph:
If a graph G= (V, E) is also a simple graph, it is complete. Using the
edges, with n number of vertices must be connected. It's also
known as a full graph because each vertex's degree must be n-1.
Types of Graph

Psuedo Graph:
If a graph G= (V, E) contains a self-loop besides other edges, it is a
pseudograph.
Types of Graph

Regular Graph:
If a graph G= (V, E) is a simple graph with the same degree at each
vertex, it is a regular graph. As a result, every whole graph is a
regular graph.
Types of Graph

Weighted Graph:
A graph G= (V, E) is called a labeled or weighted graph because each
edge has a value or weight representing the cost of traversing that
edge.
Types of Graph

Directed Graph:
A directed graph also referred to as a digraph, is a set of nodes
connected by edges, each with a direction.
Types of Graph

Indirected Graph:
An undirected graph comprises a set of nodes and links connecting
them. The order of the two connected vertices is irrelevant and has
no direction. You can form an undirected graph with a finite number
of vertices and edges.
Types of Graph

Connected Graph:
If there is a path between one vertex of a graph data structure and
any other vertex, the graph is connected.
Types of Graph

Disconnected Graph:
When there is no edge linking the vertices, you refer to the null
graph as a disconnected graph ere is a pa
Types of Graph

Cyclic Graph:
If a graph contains at least one graph cycle, it is considered to be
cyclic.
Types of Graph

Acyclic Graph:
When there are no cycles in a graph, it is called an acyclic graph.
Types of Graph

Subgraph:
The vertices and edges of a graph that are subsets of another graph
are known as a subgraph.
Graph Representations

Adjacency Matrix
Adjacency Lists
Graphs: Adjacency Matrix
 Example:

A 1 2 3 4
1
a
1

d 2
2 4
3
b c ??
3 4

32
Graphs: Adjacency Matrix
 Example:

A 1 2 3 4
1
a
1 0 1 1 0

d 2 0 0 1 0
2 4
b c 3 0 0 0 0


3
In Degree and Out Degree
4 0 0 1 0

33
Graphs: Adjacency Matrix
How much storage does the adjacency matrix require?
Answer: O(V2)
 The adjacency matrix is a sparse representation (number of edges is close to the
maximum number of edges)
• Usually too much storage for large graphs
• But can be very efficient for small graphs
 Most large interesting graphs are sparse
• For this reason the adjacency list is often a more appropriate representation

34
Graphs: Adjacency List
 Adjacency list: for each vertex v  V, store a list of vertices adjacent to v
 Example:
• Adj[1] = {2,3}
• Adj[2] = {3}
• Adj[3] = {} 1
• Adj[4] = {3}
2 4

 Variation: can also keep a list of edges coming into vertex 3

35
0 0 4

2 1 5
1 2 3 6

3 7

0 1 2 3 0 1 2
1 0 2 3 1 0 3
2 0 1 3 2 0 3
3 0 1 2 3 1 2
G1 0
0 1
1 0 2 1
2
G3
2
An undirected graph with n vertices and e edges ==> n head nodes and 2e list nodes
Graph Searching
 Given: a graph G = (V, E), directed or undirected
 Goal: methodically explore every vertex and every edge
 Ultimately: build a tree on the graph
• Pick a vertex as the root
• Choose certain edges to produce a tree
• Note: might also build a forest if graph is not connected

37
Review: Breadth-First Search
 “Explore” a graph, turning it into a tree
• One vertex at a time
• Expand frontier of explored vertices across the breadth of the frontier
 Builds a tree over the graph
• Pick a source vertex to be the root
• Find (“discover”) its children, then their children, etc.

38
Breadth-First Search: Example

r s t u

   

   
v w x y

39
Breadth-First Search: Example

r s t u

 0  

   
v w x y

Q: s
40
Breadth-First Search: Example

r s t u

1 0  

 1  
v w x y

Q: w r

41
Breadth-First Search: Example

r s t u

1 0 2 

 1 2 
v w x y

Q: r t x

42
Breadth-First Search: Example

r s t u

1 0 2 

2 1 2 
v w x y

Q: t x v

43
Breadth-First Search: Example

r s t u

1 0 2 3

2 1 2 
v w x y

Q: x v u

44
Breadth-First Search: Example

r s t u

1 0 2 3

2 1 2 3
v w x y

Q: v u y

45
Breadth-First Search: Example

r s t u

1 0 2 3

2 1 2 3
v w x y

Q: u y

46
Breadth-First Search: Example

r s t u

1 0 2 3

2 1 2 3
v w x y

Q: y
David Luebke
47
10/5/2023 47
Breadth-First Search: Example

r s t u

1 0 2 3

2 1 2 3
v w x y

Q: Ø
48
Breadth First Traversal
BFT(G, n)
{
for i = 1 to n do
visited i = 0;
for i = 1 to n do
if visited i = 0
then
BFS i ;
}

49
49
𝐁𝐅𝐒 𝐯 //The Graph G and array visited[] are global;
visited[] is initialized to ‘0’
{
u = v; visited v = 1;
repeat
{
for all vertices w adjacent to u do
{
if visited w == 0
{
add w to q;
visited w = 1;
}
}
if q is empty then return;
Delete the next element from q, add it to u;
}
}

50
50
Breadth-First Search: Properties
 BFS calculates the shortest-path distance to the source node
• Shortest-path distance (s,v) = minimum number of edges from s to v, or  if v not reachable from s
• Proof given in the book (p. 472-5)
 BFS builds breadth-first tree, in which paths to root represent shortest paths in G
• Thus can use BFS to calculate shortest path from one vertex to another in O(V+E) time

51
Applications of BFS
 Shortest path in a graph
 Web Crawler
 Social Network
 Detecting a cycle in Undirected Graph
 Broadcasting in a Network

52
52
Depth-First Search
 Depth-first search is another strategy for exploring a graph
• Explore “deeper” in the graph whenever possible
• Edges are explored out of the most recently discovered vertex v that still has unexplored edges
• When all of v’s edges have been explored, backtrack to the vertex from which v was discovered

53
DFS Example

source
vertex

54
DFS Example

source
vertex
d f
1 | | |

| |

| | |

55
DFS Example

source
vertex
d f
1 | | |

2 | |

| | |

56
DFS Example

source
vertex
d f
1 | | |

2 | |

3 | | |

57
DFS Example

source
vertex
d f
1 | | |

2 | |

3 | 4 | |

58
DFS Example

source
vertex
d f
1 | | |

2 | |

3 | 4 5 | |

59
DFS Example

source
vertex
d f
1 | | |

2 | |

3 | 4 5 | 6 |

60
DFS Example

source
vertex
d f
1 | 8 | |

2 | 7 |

3 | 4 5 | 6 |

61
DFS Example

source
vertex
d f
1 | 8 | |

2 | 7 |

3 | 4 5 | 6 |

62
DFS Example

source
vertex
d f
1 | 8 | |

2 | 7 9 |

3 | 4 5 | 6 |

What is the structure of the grey vertices?


What do they represent?
63
DFS Example

source
vertex
d f
1 | 8 | |

2 | 7 9 |10

3 | 4 5 | 6 |

64
DFS Example

source
vertex
d f
1 | 8 |11 |

2 | 7 9 |10

3 | 4 5 | 6 |

65
DFS Example

source
vertex
d f
1 |12 8 |11 |

2 | 7 9 |10

3 | 4 5 | 6 |

66
DFS Example

source
vertex
d f
1 |12 8 |11 13|

2 | 7 9 |10

3 | 4 5 | 6 |

67
DFS Example

source
vertex
d f
1 |12 8 |11 13|

2 | 7 9 |10

3 | 4 5 | 6 14|

68
DFS Example

source
vertex
d f
1 |12 8 |11 13|

2 | 7 9 |10

3 | 4 5 | 6 14|15

69
DFS Example

source
vertex
d f
1 |12 8 |11 13|16

2 | 7 9 |10

3 | 4 5 | 6 14|15

70
Depth First Traversal
DFT(v)
{
for i = 1 to n do
visited i = 0
for i = 1 to n do
{
if visited i == 0 then
DFS i ;
}
}

71
71
Depth First Search
DFS(v)
{
visited v = 1;
for each vertex w adjacent to v do
{
if visited w == 0 then
DFS w ;
}

72
72
Applications of DFS
 Cycle Detection : (Find Back edge : An edge that is from a
node itself (self loop) or one of its ancestor)
 Topological Sorting
 To find strongly connected components

73
73
Gate 2003
 Consider the following graph

Among the following sequences


I) a b e g h f II) a b f e h g III) a b f h g e IV) a f g h b e
Which are depth first traversals of the above graph?
(A) I, II and IV only (B) I and IV only (C) II, III and IV only (D) I, III and IV
only

Answer: (D)

74
Gate 2008
Consider the following sequence of nodes for the undirected graph given below.
abefdgc
abefcgd
adgebcf
adbcgef

A Depth First Search (DFS) is started at node a. The nodes are listed in the order
they are first visited. Which all of the above is (are) possible output(s)?
(A) 1 and 3 only (B) 2 and 3 only (C) 2, 3 and 4 only (D) 1, 2, and 3

Answer: (B)
75
75
Gate 2014
Suppose depth first search is executed on the graph below starting at some unknown
vertex. Assume that a recursive call to visit a vertex is made only after first checking that
the vertex has not been visited earlier. Then the maximum possible recursion depth
(including the initial call) is _________.

(A) 17 (B) 18 (C) 19 (D) 20

Answer: (C)

76
76
Gate 2006
Consider the depth-first-search of an undirected graph with 3 vertices P, Q, and R.
Let discovery time d(u) represent the time instant when the vertex u is first visited,
and finish time f(u) represent the time instant when the vertex u is last visited.
Given that
d(P) = 5 units f(P) = 12 units
d(Q) = 6 units f(Q) = 10 units
d(R) = 14 unit f(R) = 18 units
which one of the following statements is TRUE about the graph
(A) There is only one connected component
(B) There are two connected components, and P and R are connected
(C) There are two connected components, and Q and R are connected
(D) There are two connected components, and P and Q are connected
Answer: (D)
77
77

You might also like