chapter 8, part i

19
Chapter 8, Part I Graph Algorithms

Upload: valentine-lawrence

Post on 30-Dec-2015

44 views

Category:

Documents


3 download

DESCRIPTION

Chapter 8, Part I. Graph Algorithms. Graph Terminology. A graph is an ordered pair G=(V,E) with a set of vertices or nodes and the edges that connect them the nodes . (u,v) are called the endpoints of e and u and v are said to be adjacent nodes or neighbors. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 8, Part I

Chapter 8, Part I

Graph Algorithms

Page 2: Chapter 8, Part I

2

Graph Terminology A graph is an ordered pair G=(V,E) with a set of vertices or nodes and the

edges that connect them the nodes . (u,v) are called the endpoints of e and

u and v are said to be adjacent nodes or neighbors.

The degree of node u, written deg(u), is the number of edges containing

adjacent nodes or neighbor.

A cycle is closed simple path with length 3 or more.

A node is said to be isolated if does not belong to any edge.

A sub graph of a graph has a subset of the vertices and edges.

The edges indicate how we can move through the graph

Page 3: Chapter 8, Part I

3

Graph Terminology

A path is a subset of E that is a series of edges between two nodes. Or

a path P of length n from node u to node v is defined as a sequence of

n+1 nodes.

A path P is said to be closed if vo=vn

A path P is said to be simple if all the nodes are distinct, with the

exception that v0 may equal to vn.

A cycle is a closed simple path with length 3 or more. A cycle of

length k is called a K-cycle.

A graph is connected if there is at least one path between every pair of

nodes

The length of a path in a graph is the number of edges in the path.

Page 4: Chapter 8, Part I

4

Graph Terminology

• A graph is said to be connected if there is a simple path between any two of nodes in G.

• A complete graph is one that has an edge between every pair of nodes( such a graph is connected). A completed graph with n nodes have n(n-1)/2 edges.

• A weighted graph is one where each edge has a cost for traveling between the nodes

Page 5: Chapter 8, Part I

5

Graph Terminology• A cycle is a path that begins and ends at the same node

• An acyclic graph is one that has no cycles

• An acyclic, connected graph is also called an unrooted tree

Page 6: Chapter 8, Part I

6

Graph Types

• A directed graph edges’ allow travel in one direction• An undirected graph edges’ allow travel in either direction

Page 7: Chapter 8, Part I

7

Data Structures for Graphsan Adjacency Matrix

• There are two standards ways of maintaining a graph in G in memory of computer. One way is called sequential representation of G, is by means of ardency matrix A. The other way is called the linked representation of G is by means of linked lists of neighbors.

• A two-dimensional matrix or array that has one row and one column for each node in the graph

• For each edge of the graph (Vi, Vj), the location of the matrix at row i and column j is 1

• All other locations are 0 (such a matrix which contains 0 and 1 is called bit matrix or Boolean matrix.

Page 8: Chapter 8, Part I

8

Data Structures for GraphsAn Adjacency Matrix

• Suppose G is an undirected graph, then the adjacency matrix A of G will be symmetric matrix. i.e. one in which Aij = Aji for every I and j. this follows from the fact that each undirected edge( u, v) corresponds to the two directed edges (u , v) and (v, u).

• For a weighted graph, the adjacency matrix would have the weight for edges in the graph, zeros along the diagonal, and infinity (∞) every place else

Page 9: Chapter 8, Part I

9

Adjacency Matrix Example 1

Page 10: Chapter 8, Part I

10

Adjacency Matrix Example 2

Page 11: Chapter 8, Part I

11

Data Structures for GraphsAn Adjacency List

• The sequential representation of G in memory has a number of draw backs. First

of all, it may be difficult to insert and delete nodes in G. this is because the size

of node may need to be changed and the nodes may need to be reordered, so

there may be many, many changes in the matrix A. memory also wasted if the

number of edges is O(m). So due to these reasons linked representation is used

for adjacency structure. The example of linked list is represented in class. The

two lists are required node list and edge list.

• Node list each element in the list Node will correspond to a node in G, and it will

be a record of the form NODE NEXT ADJ

Page 12: Chapter 8, Part I

Edge list each element in the list Edge will correspond to an edge of G, and will be a record of the form

12

DEST LINK

Page 13: Chapter 8, Part I

13

Adjacency List Example 1

Page 14: Chapter 8, Part I

14

Adjacency List Example 2

Page 15: Chapter 8, Part I

15

Graph Traversals

• We want to travel to every node in the graph

• Traversals guarantee that we will get to each node exactly once

• This can be used if we want to search for information held in the nodes or if we

want to distribute information to each node.

• Many algorithm requires one to systematically examine the nodes and edges of

graph G. there are two standard ways that is done . One way is called Breadth-First

search and other is called Depth-First search. Breadth-First search will use queue as

an auxiliary structure to hold nodes for future processing, and other use stack.

• There are following states called status of N

Read state

Waiting state

Processed state

Page 16: Chapter 8, Part I

16

Depth-First Traversal• We follow a path through the graph until we reach a dead end

• We then back up until we reach a node with an edge to an unvisited node

• We take this edge and again follow it until we reach a dead end

• This process continues until we back up to the starting node and it has no edges to unvisited nodes

Page 17: Chapter 8, Part I

17

Depth-First Traversal Example

• Consider the following graph:

• The order of the depth-first traversal of this graph starting at node 1 would be:1, 2, 3, 4, 7, 5, 6, 8, 9

Page 18: Chapter 8, Part I

18

Breadth-First Traversal• From the starting node, we follow all paths of length one

• Then we follow paths of length two that go to unvisited nodes

• We continue increasing the length of the paths until there are no unvisited nodes along any of the paths

Page 19: Chapter 8, Part I

19

Breadth-First Traversal Example

• Consider the following graph:

• The order of the breadth-first traversal of this graph starting at node 1 would be: 1, 2, 8, 3, 7, 4, 5, 9, 6