30
Data Structure and Algorithms (BCS 1223) GRAPH

Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

Embed Size (px)

Citation preview

Page 1: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

Data Structure and Algorithms(BCS 1223)

GRAPH

Page 2: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

Introduction of GraphA graph G consists of two things:1.A set V of elements called nodes(or points or

vertices)2.A set E of edges such that each edge e in E is

identified with a unique (unordered) pair [u, v] of nodes in V, denotes by e = [u, v]

2

Page 3: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

If the element are in ordered pairs it is call directed graph.

If the pairs represent the same edge it is known as undirected graph.

Subgraph happened when every vertex include in other vertex and every edge is include in other edge.

3

1 2

3 4

5

1 2

3 4

5

Page 4: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

4

A directed graph.The number of edges with one endpoint on a given vertex is called that vertex's degree. In a directed graph, the number of edges that point to a given vertex is called its in-degree, and the number that point from it is called its out-degree. Often, we may want to be able to distinguish between different nodes and edges. We can associate labels with either. We call such a graph labeled.

Page 5: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

• An undirected graph.• In a directed graph, the

edges point from one vertex to another, while in an undirected graph, they merely connect two vertices.

5

Page 6: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

• Some of the applications of graphs are : • Mazes (using stacks) • Networks (computer, cities ....) • Maps (any geographic databases ) • Graphics : Geometrical Objects • Neighborhood graphs • Voronoi diagrams

6

Page 7: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

Many geometrical objects such as cubes, polyhedral, and wire frame car models, may be thought of as graphs. These graphs are more than just nodes and edges. Their geometrical structure must also be taken into account. For example consider the cube:

7

This structure contains three kinds of objects •vertices •edges •faces

Edges are crucial since, in a three dimensional object, an edge will always belong to only two faces and two nodes. For this reason it makes sense to number the edges. Faces become linked list of edges, and each edge lives in only two faces.

Page 8: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

Neighborhood Graphs

8

These are graphs for collection of points in d-dimensional space. Such point sets may be visualized by connecting close points. There are many possible definitions of closeness. For example, one might draw a circle with two data points at diametrically opposite sides. If the circle contains no other data points then the two points may be considered "close" and an edge may be added between them.

Page 9: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

Voronoi Diagrams

In computational geometry the voronoi diagram is the main tool for storing clouds of points and for manipulating points in the Euclidean space. To create a voronoi diagram we must partition the graphical space into regions. This is done by separating every pair of data points which are nearest neighbors by a line which is centered between the points and perpendicular to an imaginary edge between them.

Page 10: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

Adjacency Matrix Representation

• An adjacency matrix is one of the two common ways to represent a graph. •The adjacency matrix shows which nodes are adjacent to one another. Two nodes are adjacent if there is an edge connecting them. • In the case of a directed graph, if node j is adjacent to node i, there is an edge from i to j. In other words, if j is adjacent to i, you can get from i to j by traversing one edge. •For a given graph with n nodes, the adjacency matrix will have dimensions of n x n. • For an unweighted graph, the adjacency matrix will be populated with boolean values.

Page 11: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

Adjacency Matrix• For any given node i, you can determine its adjacent

nodes by looking at row of the adjacency matrix. A value of true at indicates that there is an edge from node i to node j, and false indicating no edge. In an undirected graph, the values of and will be equal.

• In a weighted graph, the boolean values will be replaced by the weight of the edge connecting the two nodes, with a special value that indicates the absence of an edge.

• The memory use of an adjacency matrix is O(n2).

11

Page 12: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

• Adjacency Matrix

12

A B C D E

A 0 0 0 1 0

B 0 0 0 1 0

C 0 1 0 0 0

D 0 0 0 0 1

E 0 0 1 0 0

Page 13: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

13

Adjacency List Representation• One way to have the graph maintain a list of lists, in which the first list is a list of indices corresponding to each node in the graph. • Each of these refer to another list that stores a the index of each adjacent node to this one. It also useful to associate the weight of each link with the adjacent node in this list.Example: An undirected graph contains four nodes 1, 2, 3 and 4. 1 is linked to 2 and 3. 2 is linked to 3. 3 is linked to 4.1 - [2, 3]2 - [1, 3]3 - [1, 2, 4]4 - [3]

Page 14: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

Adjacency List Representation• It useful to store the list of all the nodes in the

graph in a hash table. The keys then would correspond to the indices of each node and the value would be a reference to the list of adjacent node indecies.

• Another implementation might require that each node keep a list of its adjacent nodes.

14

Page 15: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

• Adjacency List Representation

15

Page 16: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

• Problem: find a path between two nodes of the graph (e.g., Austin and Washington)

• Methods: Depth-First-Search (DFS) or Breadth-First-Search (BFS)

Page 17: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

Depth-First Traversal (implemented using stack)• Start at vertex v, visit its neighbor w, then w's neighbor y and

keep going until reach 'a dead end' then iterate back and visit nodes reachable from second last visited vertex and keep applying the same principle.

• General algorithm:for each vertex v in the graph

if v is not visited start the depth first traversal at v

17

Page 18: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

Depth-First TraversalExample the following graph:

18

0 1 2 4

5

6

3

7

8

9

10

Directed graph G3

Page 19: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

Depth-First TraversalThe depth first ordering of the vertices graph G3:0 1 2 3 4 5 6 8 10 7 9The general algorithm to do a depth first traversal at a

givennode v is:1. Mark node v as visited2. Visit the node3. For each vertex u adjacent to v if u is not visited start the depth first traversal at u

19

Page 20: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

Breadth-First Search Breadth first search visits the nodes neighbours and then the univisited neighbours of the neighbours etc. If it starts on vertex a it will go to all vertices that have an edge from a. If some points are not reachable it will have to start another BFS from a new vertex.

20

Page 21: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

Breadth-First Search (Queue)Breadth first search visits the nodes neighbours and then the univisited neighbours of the neighbours etc. If it starts on vertex a it will go to all vertices that have an edge from a. If some points are not reachable it will have to start another BFS from a new vertex.

Base on the same example in Depth-First Traversal :0 1 2 3 4 5 6 8 10 7 9 Start the traversal at vertex 0. After visiting vertex 0 next visit the vertices that are

directly connected to it, that are 1 and 5. Next visit the vertices that are directed connected to 1 and are not visit, that is 2 and 3. Then visit vertices that directly connected to 5 and are not visited, that is 6. Then continue to next path.

21

Page 22: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

Breadth-First Search The general algorithm:

a. for each vertex v in the graph if v is not visited add v to the queue // start the breadth first search at vb. Mark v as visitedc. While the queue is not empty c.1. Remove vertex u from the queue c.2. Retrieve the vertices adjacent to u c.3. for each vertex w that is adjacent to u if w is not visited c.3.1. Add w to the queue c.3.2. Mark w as visited

22

Page 23: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

• We may also want to associate some cost or weight to the traversal of an edge. When we add this information, the graph is called weighted. An example of a weighted graph would be the distance between the capitals of a set of countries.

• Directed and undirected graphs may both be weighted. The operations on a weighted graph are the same with addition of a weight parameter during edge creation:

• Weighted Graph Operations (an extension of undirected/directed graph operations)

• make-edge(vertex u, vertex v, weight w): edge• Create an edge between u and v with weight w. In a directed graph, the

edge will flow from u to v.• Weight graph also being used to find the shortest path.

23

Page 24: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

General algorithm of Short Path:1. Initialize the array smallestWeight so that smallestWeight[u] = weights[vertex, u].2. Set samllestWeight [vertex] = 0.3. Find the vertex, v, that is closet to vertex for which the shortest path

has not been determined.4. Mark v as the (next) vertex for which the smallest weight is found5. For each vertex w in G, such that the shortest path from vertex to w

has not been determined and an edge(v,w) exists, if the weight of the path to w via v is smaller than its current weight, update the weight of w to be the weight of v + the weight of edge (v,w).

24

Page 25: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

25

Shortest path A-B is 2

Shortest path from D to A is (DA) = 1

Shortest path from C to A is (CBA) = 3

Shortest path from E to A is (EDA) = 4

Shortest path from F to A is (FCBA) = 5

Page 26: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

26

A spanning tree of a graph is just a subgraph that contains all the vertices and is a tree. A graph may have many spanning trees; for instance the complete graph on four vertices o---o |\ / | | X | |/ \ | o---o

Page 27: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

27

has sixteen spanning trees:

Page 28: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

• The standard application is to a problem like phone network design. You want a set of lines that connects all your offices with a minimum total cost. If a network isn't a tree it can always remove some edges and save money.

• A less obvious application is that the minimum spanning tree can be used to approximately solve the traveling salesman problem. A convenient formal way of defining this problem is to find the shortest path that visits each point at least once.

• It's help in minimization over a strictly larger set. Example, if draw a path tracing around the minimum spanning tree, trace that each edge twice and visit all points that is why MST weight is less than the TSP weight

28

Page 29: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

29

Page 30: Data Structure and Algorithms (BCS 1223) GRAPH. Introduction of Graph A graph G consists of two things: 1.A set V of elements called nodes(or points or

30