Chapter 6 Relations Relationships are dealed with every day: businesses and their telephone numbers, employees and their salaries, …. Relationships can.

Slides:



Advertisements
Similar presentations
1 Slides based on those of Kenneth H. Rosen Slides by Sylvia Sorkin, Community College of Baltimore County - Essex Campus Graphs.
Advertisements

Discrete Mathematics and Its Applications
Binary Trees, Binary Search Trees CMPS 2133 Spring 2008.
5/16/20151 You Never Escape Your… Relations. 5/16/20152Relations If we want to describe a relationship between elements of two sets A and B, we can use.
Applied Discrete Mathematics Week 11: Graphs
Binary Trees, Binary Search Trees COMP171 Fall 2006.
Binary Trees Terminology A graph G = is a collection of nodes and edges. An edge (v 1,v 2 ) is a pair of vertices that are directly connected. A path,
Lists A list is a finite, ordered sequence of data items. Two Implementations –Arrays –Linked Lists.
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved Chapter 26 Binary Search Trees.
Unit 11a 1 Unit 11: Data Structures & Complexity H We discuss in this unit Graphs and trees Binary search trees Hashing functions Recursive sorting: quicksort,
1 abstract containers hierarchical (1 to many) graph (many to many) first ith last sequence/linear (1 to 1) set.
Graphs Rosen 8.1, 8.2. There Are Many Uses for Graphs! Networks Data organizations Scene graphs Geometric simplification Program structure and processes.
Chapter 08 Binary Trees and Binary Search Trees © John Urrutia 2013, All Rights Reserved.
Relations Chapter 9.
Chapter 9 1. Chapter Summary Relations and Their Properties n-ary Relations and Their Applications (not currently included in overheads) Representing.
© by Kenneth H. Rosen, Discrete Mathematics & its Applications, Sixth Edition, Mc Graw-Hill, 2007 Chapter 8: Relations Relations(8.1) n-any Relations &
8.2 n-ary Relations and Their Applications
1 Chapter 25 Trees Iterators Heaps Priority Queues.
Chapter 19: Binary Trees. Objectives In this chapter, you will: – Learn about binary trees – Explore various binary tree traversal algorithms – Organize.
© by Kenneth H. Rosen, Discrete Mathematics & its Applications, Sixth Edition, Mc Graw-Hill, 2007 Chapter 9 (Part 1): Graphs  Introduction to Graphs (9.1)
April 10, 2002Applied Discrete Mathematics Week 10: Relations 1 Counting Relations Example: How many different reflexive relations can be defined on a.
BCT 2083 DISCRETE STRUCTURE AND APPLICATIONS
Chapter 9. Chapter Summary Relations and Their Properties Representing Relations Equivalence Relations Partial Orderings.
Chapter 9. Chapter Summary Relations and Their Properties n-ary Relations and Their Applications (not currently included in overheads) Representing Relations.
Foundations of Discrete Mathematics
Unit Unit 04 Relations IT DisiciplineITD1111 Discrete Mathematics & Statistics STDTLP1 Unit 4 Relations.
Binary Trees, Binary Search Trees RIZWAN REHMAN CENTRE FOR COMPUTER STUDIES DIBRUGARH UNIVERSITY.
Chapter 9. Section 9.1 Binary Relations Definition: A binary relation R from a set A to a set B is a subset R ⊆ A × B. Example: Let A = { 0, 1,2 } and.
Discrete Mathematics and Its Applications Sixth Edition By Kenneth Rosen Chapter 8 Relations 歐亞書局.
Chapter 7: Relations Relations(7.1) Relations(7.1) n-any Relations & their Applications (7.2) n-any Relations & their Applications (7.2)
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Relations.
Relations and their Properties
9 Graphs. A graph G = (V, E) consists of V, a nonempty set of vertices (or nodes) and E, a set of edges. Each edge has either one or two vertices associated.
Fall 2002CMSC Discrete Structures1 You Never Escape Your… Relations.
Review 1 Queue Operations on Queues A Dequeue Operation An Enqueue Operation Array Implementation Link list Implementation Examples.
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 25 Trees, Iterators,
Relations. Important Definitions We covered all of these definitions on the board on Monday, November 7 th. Definition 1 Definition 2 Definition 3 Definition.
Lecture on Relations 1Developed by CSE Dept., CIST Bhopal.
© by Kenneth H. Rosen, Discrete Mathematics & its Applications, Sixth Edition, Mc Graw-Hill, 2007 Chapter 9 (Part 1): Graphs  Introduction to Graphs (9.1)
Discrete Structures – CNS2300
Discrete Mathematics Chapter 5 Trees.
Problem Statement How do we represent relationship between two related elements ?
Chapter 9. Chapter Summary Relations and Their Properties n-ary Relations and Their Applications (not currently included in overheads) Representing Relations.
Binary Search Trees (BST)
Discrete Structures CISC 2315 FALL 2010 Graphs & Trees.
Chapter 10: Trees A tree is a connected simple undirected graph with no simple circuits. Properties: There is a unique simple path between any 2 of its.
Chapter 8: Relations. 8.1 Relations and Their Properties Binary relations: Let A and B be any two sets. A binary relation R from A to B, written R : A.
Chapter 9: Graphs.
Chapter 11. Chapter Summary  Introduction to trees (11.1)  Application of trees (11.2)  Tree traversal (11.3)  Spanning trees (11.4)
رياضيات متقطعة لعلوم الحاسب MATH 226. Chapter 10.
Chapter8 Relations 8.1: Relations and their properties.
Representing Relations Using Digraphs
Chapter 25 Binary Search Trees
Equivalence Relations
Relations Chapter 9.
Applied Discrete Mathematics Week 13: Graphs
Graph Graphs and graph theory can be used to model:
Applied Discrete Mathematics Week 10: Relations
Chapter 6 Relations Relationships are dealed with every day: businesses and their telephone numbers, employees and their salaries, …. Relationships.
Binary Search Tree (BST)
CSE 504 Discrete Structures & Foundations of Computer Science
Taibah University College of Computer Science & Engineering Course Title: Discrete Mathematics Code: CS 103 Chapter 10 Graphs Slides are adopted from “Discrete.
Section 8.1 Trees.
Taibah University College of Computer Science & Engineering Course Title: Discrete Mathematics Code: CS 103 Chapter 9 Relations Slides are adopted from.
Binary Trees, Binary Search Trees
CS100: Discrete structures
Applied Discrete Mathematics Week 6: Relations/Digraphs
Binary Trees, Binary Search Trees
Binary Trees, Binary Search Trees
Chapter 8 (Part 2): Relations
Presentation transcript:

Chapter 6 Relations Relationships are dealed with every day: businesses and their telephone numbers, employees and their salaries, …. Relationships can be used to solve problems such as: determining which pairs of cities are linked by airline flights in a network, finding a viable order for the different phases of a complicated project. 6.1 Relations and Their Properties From Definition 1, the binary relation R is a subset of

Example 1 Let A be the set of students, and let B the set of courses. Define R to be the relation that consists of those pairs (a,b), where a is a student enrolled in course b. Example 2 Let A be a set of all cities, and let B be the set of the 50 states in the United States. Define the relation R by specifying that (a,b) belongs to R if city a is in state b. Solution: R={(Boulder,Colorado),(Bangor,Maine),(Ann Arbor,Michigan), (Cupertino,California), (Red Bank,New Jersey),…} Example 3 Let A={0,1,2} and B={a,b}. R={(0,a),(0,b),(1,a),(2,b)} is a relation from A to B a b

Functions as Relations A function f from a set A to a set B assigns a unique element of B to each element of A. But a relation does not have to be a function. Example Let A={0,1,2} and B={a,b}. Let R={(0,a),(0,b),(1,a),(2,b)} and R’={(0,a),(1,a),(2,b)} be two relations from A to B a b R a b R’ R’ is a function, but R is not a function.

Relations on A Set Definition 2. A relation R on the set A is a relation from A to A. Example 4. Let A be the set {1,2,3,4}. Which ordered pairs are in the relation R={(a,b) | a divides b}? Solution R={(1,1),(1,2),(1,3),(1,4),(2,2),(2,4),(3,3),(4,4)}. Example 5. Consider the following relations on the set of integers.

Properties of Relations Example 6. Consider the following relations on {1,2,3,4}

Example 7. Consider the following relations on the set of integers. Example 8. Is the “divides” relation on the set of a positive integers reflexive? Solution: It is reflexive, since a|a whenever a is a positive integer.

Example 9. Consider the following relations on {1,2,3,4}

Example 10. Consider the following relations on the set of integers. Example 11. Is the “divides” relation on the set of a positive integers symmetric? Is it antisymmetric? Solution: It is not symmetric, since 1|2, but 2|1. It is antisymmetric, since for any positive integers a and b with a|b and b|a, then a=b.

Example 12. Consider the following relations on {1,2,3,4}

Example 13. Consider the following relations on the set of integers. Example 14. Is the “divides” relation on the set of a positive integers transitive? Solution: It is transitive, since a|b and b|c, then a|c, for any positive integers a,b,c.

6.5 Equivalence Relations Definition 1. A relation on a set A is called an equivalence relation if it is reflexive, symmetric and transitive. Two elements are related by an equivalence relation are called equivalent. Solution: R is reflexive, symmetric, and transitive, it is an equivalence relation. Example 2 Let R be the relation on the set of real numbers such that aRb if and only if a=b or a=-b. In Section 6.1, we showed that R is reflexive, symmetric, and transitive. It follows that R is an equivalence relation.

Example 3. Let R be the relation on the set of real numbers such that aRb if and only if a-b is an integer. Is R an equivalence relation? Solution: R is reflexive, symmetric and transitive. It is an equivalence relation.

6.6 Partial Orderings Example 1 Show that the “greater than or equal” relation is a partial ordering one the set of integers. Example 2 Show that the divisibility relation (|) is a partial ordering on the set of positive integers. Example 3 Show that the inclusion relation ( ) is a partial ordering on the power set of a set S. Definition 1 A relation R on a set S is called a partial ordering or partial order if it is reflexive, antisymmetric, and transitive. A set S together with a partial ordering R is called a partially ordered set, and denoted by (S,R). A partial order R is also denoted as.

Definition 2 The elements a and b of a partial ordering set (S, ) is called comparable if either a b or b a. When a and b are elements of S such that neither a b nor b a, a and b are called incomparable. Example 4 Definition 3 If (S, ) is a partial ordering set and every two elements of S are comparable, S is called a totally ordered or linearly ordered set, and is called a total order or a linear order. Example 5Example 6

6.7 n-ary Relations and Database Definition 1 Let be the sets. An n-ary relation on these sets is a subset of are called as the domains of the relation and n is called as its degree. A database consists of records, which are n-tuples, made up of fields. Example 1 A student record are represented by 4-tuples of the form (student name, ID, Major, GPA). A sample database of six such record is: (Ackermann, , Computer Sci, 3.88) (Adams, , physics, 3.45) (Chou, , Computer Sci, 3.49) (Goodfriend, , Mathematics, 3.45) (Rao, , Mathematics, 3.90) (Stevens, , Psychology, 2.99) Student_nameIDMajorGPA Ackermann Adams Chou Goodfriend Rao Stevens Computer Sci Physics Computer Sci Mathematics Psychology Table 1 Students Primary key (no same value in the domain)

Student_nameIDMajorGPA Ackermann Adams Chou Goodfriend Rao Stevens Computer Sci Physics Computer Sci Mathematics Psychology Student_nameIDMajorGPA Ackermann Rao Computer Sci Mathematics Operations on n-ary relations Definition 2 Let R be an n-ary relation and C a condition that elements in R may satisfy. Then the selection operator maps the n-ary relation R to the n-ary relation of all n-tuples from R that satisfy the condition C. (C: GPA>3.5)

Definition 3 The projection maps the n-tuple to the m-tuple, where Student_nameIDMajorGPA Ackermann Adams Chou Goodfriend Rao Stevens Computer Sci Physics Computer Sci Mathematics Psychology Student_nameIDGPA Ackermann Adams Chou Goodfriend Rao Stevens

Definition 4 Let R be a relation of degree m and S a relation of degree n. The join where is a relation of degree m+n-p that consist of all (m+n-p)- tuples, where belongs to R and belongs to S. Student_nameIDMajorGPA Ackermann Adams Chou Goodfriend Rao Stevens Computer Sci Physics Computer Sci Mathematics Psychology Computer Sci Physics Computer Sci Mathematics Psychology GPAMajorID Ackermann Adams Chou Goodfriend Rao Stevens GPAIDStudent_name RS

Chapter 7 Graphs Definition 1. (1) A simple undirected graph G=(V,E) consists of V, a nonempty set of vertices, and E, a set of unordered pairs of distinct elements of V called edges. (2) If more than one edges are allowed between two vertices, G is called multigraph. (3) If there is any edge connection the same vertex, G is called pseudograph. V={San Francisco, Los Angles, Denver, Chicago, Detroit, Washington, New York} E={(San Francisco, Los Angeles), (San Francisco,Denver), (Los Angeles,Denver), (Denver,Chicago), (Chicago,Detroit), (Chicago,New York), (Chicago,Washington), (Detroit,New York), (Washington,New York)} (1) Simple undirected graph Detroit San Francisco Los Angeles Denver Chicago New York Washington Detroit (2) multigraph San Francisco Los Angeles Denver Chicago New York Washington Detroit San Francisco Los Angeles Denver Chicago New York Washington (3) pseudograph

Definition 2. A directed graph G=(V,E) consists of V, a nonempty set of vertices, and E, a set of ordered pairs of distinct elements of V called edges. New York San Francisco Los Angeles Denver Chicago Detroit Washington Example 1 Precedence Graphs and Concurrent Processing A a:=0 B b:=1 C c:=a+1 D d:=b+a E e:=d+1 F e:=c+d A F C B D E

Definition 3. 1.Let e=(u,v)be an edge of Graph G (undirected or directed). (i)Vertices u and v are called adjacent in G. (ii)Edge e is called incident with (or connect) the vertices u and v. 2.The degree of a vertex v in an undirected graph is the number of edges incident with it, denoted by deg(v). 3.Let e=(u,v) be an edge of a directed graph G. The vertex u is called the initial vertex of (u,v), and v is called the terminal vertex of (u,v). 4. Let v be a vertex of directed graph G. The in-degree of v is the number of edges with v as their terminal vertex. The out-degree of v is the number of edges with b as their initial vertex.

Connectivity Definition 4. Given a graph G=(V,E), a path of G is a sequence of vertices A F C B D E HI A F C B D E HI

Definition 5. An undirected graph is called connected if there is a path between every pair of distinct vertices of the graph. Definition 6. A directed graph is strongly connected if there is a path from a to b whenever a and b are the vertices in the graph. A F C B D E HI Connected graph A F C B D E H I Unconnected graph A F C D E Strongly connected A F C D E Not Strongly connected

Chapter 8 Trees Definition 1. A tree is a connected undirected graph with no simple circuits. Example 1 Which of the graphs are trees? Theorem 1 Au undirected graph is a tree if and only if there is a unique simple path between any two of its vertices. 8.1 Introduction to tree

Ordered rooted treeroot subtree parent third child Binary tree (every node has at most two children) Left subtree Right subtree Left childRight child

8.3 Tree Traversal Ordered rooted trees are used to store information. We need procedures for visiting each vertex of and ordered rooted tree to access data Root of T The preorder traversal of T 15,6,9,30,21,4,7,13,11,18,17,1, 19,20,19,19,4,5

Root of T The inorder traversal of T 9,6,21,30,4,11,13,7,15,17,18,1, 20,19,19,19,4,5

Root of T The postorder traversal of T 9,21,4,30,11,13,7,6,17,1,18,20, 19,4,5,19,19,15

Operations in a BST 1.Search (given a key return the corresponding data if it is in the BST) 2.Insert (given a data insert it into the BST) 3.Delete (given a key delete the corresponding data from BST) 8.2 Application of Trees Binary Search Tree Definition 1 Binary Search Tree is a Binary Tree satisfying the following condition: (1)Each vertex contains an item with an key which belongs to a total ordering set and two links to its left child and right child, respectively. (2)In each node, its key is larger than the keys of all vertices in its left subtree and smaller than the keys of all the vertices in its right subtree root key

item (key/other data) Right left A node of BST: item, right child, left child Define a node of BST class Node { item Item; Node Left; Node Right; } struct item { int id; string name; float grade; } key 65/data 30/data 75/data 25/data / 45/data 40/data 35/data / 55/data / 42/data / 68/data / 80/data 78/data / 88/data / 60/data / 38/data 20/data / 39/data / 36/data / root A BST

65/data 30/data 75/data 25/data / 45/data 40/data 35/data / 55/data / 42/data / 68/data / 80/data 78/data / 88/data / 60/data / 38/data 20/data / 39/data / 36/data / root A BST Visit the nodes of BST in-order Procedure InOrder(Node root) { if (root ≠ null)) { InOrder(root.Left); visit root; InOrder(root.Right); } A BST can be visited in three ways: in-order, pre- order and post-order In-order visit in the BST (only show keys): 20,25,30,35,36,38,39,40,42,45,55,60,65, 68,75,78,80,88

65/data 30/data 75/data 25/data / 45/data 40/data 35/data / 55/data / 42/data / 68/data / 80/data 78/data / 88/data / 60/data / 38/data 20/data / 39/data / 36/data / root A BST Operation 1: Search Example: Search (42) Search (64) Procedure Search(int id) { Node x = root; while (x ≠ null and x.Item.id ≠ key ) { if (id < x.Item.id) x = x.Left; else x = x.Right; } return x; /* x.id = key or x = null */ } Operation 1: Search height Time Complexity O(height of BST) Average case: O(lg n) Worst case O(n) where n is the size of the BST

Insert 1.Create a new node for new item (e.g., 62/data) 2.Find the place for insertion 3.Link the new node Operation 2: Insert Procedure Insert( item newItem) { Node newNode: = new Node(newItem); Node parent = null; Node current = root; while (current ≠ null) { parent: = current; if (newNode.Item.id < current.Item.id) current: = current.Left; else current: = current.Right; } if (parent = null) root: = newNode; else { if (newNode.Item.id < parent.Item.id) parent.Left: = newNode; else parent.Right: = newNode; } 62/data / root 65/data 30/data 75/data 25/data / 45/data 40/data 35/data / 55/data / 42/data / 68/data / 80/data 78/data / 88/data / 60/data / 38/data 20/data / 39/data / 36/data / A BST current parent curr paren curr paren curr paren curr paren curr = null height Time Complexity O(height of BST) Average case: O(lg n) Worst case: O(n) where n is the size of the BST

Delete 1. Find the deleting node (current) and its parent 2. Delete current The first step is similar to Search. We only consider the step of delete current. Operation 3: Delete 65/data 30/data 75/data 25/data / 45/data 40/data 35/data / 55/data / 42/data / 68/data / 80/data 78/data / 88/data / 60/data / 38/data 20/data / 39/data / 36/data / root A BST if (current.Left = null and current.Right: = null) { if (current = root) root: = null; else if (parent.left = current) parent.Left: = null; else parent.Right = null; } Case 1: Deleting node (current) has no child current parent height Time Complexity 1.Find the deleting node (current) and its parent: O(height of BST) 2. Delete current: O(1) Therefore, the time complexity for case 1 is O(height of BST) Average case: O(lg n) Worst case: O(n) where n is the size of the BST Example: Delete the node with item (36/data)

Operation 3: Delete 65/data 30/data 75/data 25/data / 45/data 40/data 35/data / 55/data / 42/data / 68/data / 80/data 78/data / 88/data / 60/data / 38/data 20/data / 39/data / 36/data / root ABST if (current.Left = null or current.Right = null) { if (current.Right = null) if (current = root) root: = current.Left; else if (parent.Left = current) parent.Left: = current.Left; else parent.Right: = current.Left; else if (current.Left = null) if (current = root) root: = current.Right; else if (parent.Left = current) parent.Left: = current.Right; else parent.Right: = current.Right; } Case 2: Deleting node (current) has one child current parent Example: delete the node with item (35/data) height Delete 1. Find the deleting node (current) and its parent 2. Delete current The first step is similar to Search. We only consider the step of delete current. Time Complexity 1. Find the deleting node (current) and its parent: O(height of BST) 2. Delete current: O(1) Therefore, the time complexity for case 1 is O(height of BST) Average case: O(lg n) Worst case: O(n) where n is the size of the BST

Operation 3: Delete 65/data 30/data 75/data 25/data / 45/data 40/data 35/data / 55/data / 42/data / 68/data / 80/data 78/data / 88/data / 60/data / 38/data 20/data / 39/data / 36/data / root ABST if (!(successor == current.Right)) sucessorParent.Right = successor.Right; current.item = successor.item Case 3: Deleting node (current) has two children current Delete 1.Find the deleting node (current) and its parent 2.Find successor which is the node with the smallest key in current’s left, and successor’s parent. 3.Link successorParent to successor.Right 4.Replace the current.item by successor.item successor Succ Parent 35/data height Example: delete the node with item (30/data) Step 1 and 2 are similar to Search. We only consider step 3 and 4. Time Complexity 1.Find the deleting node (current) and its parent: O(height of BST) 2.Find successor and successor’s parent: O(height of BST) 3.Link successor’s parent to successor.Right: O(1) 4.Replace the current.item by successor.item: O(1) Therefore, the time complexity for case 1 is O(height of BST) Average case: O(lg n) Worst case: O(n) where n is the size of the BST

Example 2 Find the item with key Zoology in the tree of Example 1. Example 3 Insert the item with key English in the tree of Example 2. Example 4 Delete the item with key English in the tree of Example 3. Example 1 Form a binary search tree for the words mathematics, physics, geography, zoology, meteorology, geology, psychology, and chemistry (using alphabetical order).