Presentation is loading. Please wait.

Presentation is loading. Please wait.

Discrete Structures CISC 2315 FALL 2010 Graphs & Trees.

Similar presentations


Presentation on theme: "Discrete Structures CISC 2315 FALL 2010 Graphs & Trees."— Presentation transcript:

1 Discrete Structures CISC 2315 FALL 2010 Graphs & Trees

2 Graphs A graph is a discrete structure, with discrete components…

3 Components of a Graph edge vertex (node)

4 Vertices A graph G = (V, E), where V is the set of all the vertices in the graph, and E is the set of all edges in the graph. The elements of V are typically named u or v.

5 Types of Edges Undirected edges:  In this case, there is a function f from E to  An edge is a loop if f(e) = {u, u} = {u} for some u in V. Note unordered loop Undirected graph

6 Types of Edges Directed edges:  In this case, there is a function f from E to  An edge is a loop if f(e) = (u, u) for some u in V. Note ordered loop Directed graph

7 Graph Terminology Two vertices u and v in an undirected graph G are adjacent (neighbors) in G if {u,v} is an edge of G. If e={u,v}, then the edge e is called incident with the vertices u and v. Edge e is said to connect u and v. Also, vertices u and v are called endpoints of the edge {u,v}.

8 Graph Terminology u v Vertices u and v are adjacent. Edge e is incident with u and v; e connects u and v. Vertices u and v are endpoints of e. e

9 Degree The degree of a vertex in an undirected graph is the number of edges incident with it. A loop contributes twice to the degree. A vertex of degree zero is called isolated. A vertex of degree 1 is called pendant.

10 Graph Terminology u v e What is the deg(u)? What is the deg(v)?

11 Graph Terminology In a directed graph G with edge (u,v), u is said to be adjacent to v and v is said to be adjacent from u. Vertex u is the initial vertex and v is the terminal (end) vertex of (u,v). The initial and terminal vertices of a loop are the same.

12 Graph Terminology u v Vertex u is adjacent to v and v is adjacent from u. Vertex u is the initial vertex and v is the terminal vertex of edge (u,v). e

13 Degree The in-degree of a vertex v, deg - (v) in a directed graph is the number of edges with v as their terminal vertex. The out-degree of v, deg + (v), is the number of edges with v as their initial vertex. A loop contributes 1 to both the in-degree and out-degree.

14 Graph Terminology u v What is the in-degree of u? the out-degree of u? What is the in-degree of v? the out-degree of v? e

15 Simple Graphs A graph is simple if it has only one edge connecting each pair of vertices.

16 Simple Graphs simple not simple

17 Bipartite Graph A simple graph G=(V,E) is bipartite if V can be partitioned into disjoint sets V 1 and V 2 such that every edge in the graph connects a vertex in V 1 and a vertex in V 2. No edge in G connects either two vertices in V 1 or two vertices in V 2.

18 Bipartite Graph

19 Union of Graphs The union of two simple graphs G 1 =(V 1,E 1 ) and G 2 =(V 2,E 2 ) is the simple graph

20 Union of a Graphs

21 Matrices Used to represent graphs in a computer program. A matrix is a rectangular array of numbers. a 11 a 12 … a 1n a 21 a 22 … a 2n. a 1m a 2m … a mn A = This is an m x n matrix.

22 Adjacent Vertices in a Graph g a b c d e f ab,c,d,g ba,d ca,d,e da,b,c,e,f ec,d,f,g f? g? vertex adjacent vertices

23 Adjacency Matrix to Represent a Graph g a b c d e f abcdefg a0111001 b1001000 c1001100 d1110110 e0011011 f0001001 g1000110

24 Incidence to Represent a Graph g a b c d e f e1e1 e2e2 e3e3 e4e4 e5e5 e6e6 e7e7 e8e8 e9e9 e 10 e 11 a11100010000 b01010000000 c00001110000 d00111001000 e00000100110 f00000001101 g10000000011 e1e1 e2e2 e3e3 e4e4 e5e5 e6e6 e8e8 e9e9 e 10 e 11 e7e7

25 Path A path is a sequence of edges that begins with a vertex of the graph and travels along edges of the graph, always connecting pairs of adjacent vertices. A path of length n from u to v in an undirected graph is a sequence of edges e 1,…,e n that begins with u and ends with v. The path is a circuit if u=v. The path passes through the vertices that are visited, and it traverses the edges on the path. A path or circuit is simple if it doesn’t contain the same edge more than once.

26 Path in Matrix an Undirected Graph u v

27 Connectedness An undirected graph is connected if there is a path between every pair of distinct vertices in the graph.

28 Is this graph connected?

29 Trees Note that a tree is a connected undirected graph that has no simple circuits.

30 Path A path of length n from u to v in a directed graph is a sequence of directed edges e 1,…,e n that begins with u and ends with v. The path is a circuit if u=v. The path passes through the vertices that are visited, and it traverses the edges on the path. A path or circuit is simple if it doesn’t contain the same edge more than once.

31 Circuit in a Directed Graph u=v

32 Connectedness A directed graph is strongly connected if there is a path from a to b and from b to a whenever a and b are vertices in the graph. A directed graph is weakly connected if there is a path between every two vertices in the underlying undirected graph.

33 Is this graph strongly/weakly connected?

34 Example Applications of Graphs Designing airplane routes Modeling the interconnections and information flow in local and wide area computer networks Models of ecologies Finding the shortest path between two locations (uses distances along the edges) Solving search problems in artificial intelligence

35 Lists - revisited A list is a finite ordered sequence of zero or more elements that can be repeated. The difference between lists and tuples is in what parts can be randomly accessed. Head (L) and Tail (L) is Memory representation of a list in the computer bc a e L cons (a,L) d head (L) = b tail (L)

36 Computer representation of a tree a bcd e a bcd e

37 Binary Tree a a bc d e bc de Binary trees can be used to represent sets whose elements have some ordering. Such a tree is called a binary search tree and has the property that for each node Of the tree, each element in its left subtree precedes the node element and each Element in its right subtree succeeds the node element.

38 Spanning Trees – Kruskal’s Algorithm b 2 2 2 2 2 3 1 3 1 1 1 1 a c d e f g Kruskal’s Algorithm: 1)Sort the edges of the graph by weight, and let L be the sorted list 2)Let T be the minimal spanning tree and initialize T : = 0. 3)For each vertex v of the graph, create the equivalence class [v] = {v}. 4)while there are 2 or more equivalence classes do Let {a,b} be the edge at the head of L: L := tail (L); if [a} not = [b] then T:= T U {{a,b}}; Replace the equivalence classes [a] and [b] by [a] U [b] fi od L= {{a,b},{c,d},{d,g},{e,f},{f,g},{a,f},{b,c},{c,g},{d,e},{e,g},{a,g},{b,g}} 1 1 1 1 1 2 2 2 2 2 3 3 Spanning Tree TEquivalance Classes {}{a},{b},{c},{d},{e},{f},{g} {{a,b}}{a,b},{c},{d},{e},{f},{g} {{a,b},{c,d}}{a,b},{c,d},{e},{f},{g} {{a,b},{c,d},{d,g}}{a,b},{c,d,g},{e},{f} {{a,b},{c,d},{d,g},{e,f}}{a,b},{c,d,g},{e,f} {{a,b},{c,d},{d,g},{e,f},{f,g}}{a,b},{c,d,e,f,g} {{a,b},{c,d},{d,g},{e,f},{f,g},{a,f}}{a,b,c,d,e,f,g}


Download ppt "Discrete Structures CISC 2315 FALL 2010 Graphs & Trees."

Similar presentations


Ads by Google