560 likes | 679 Views
Mathematical Induction II. Lecture 21 Section 4.3 Mon, Feb 27, 2006. Example: Binary Search Trees. In a complete binary search tree of depth n - 1, ( n rows) what is the average number of comparisons required to locate an element? (Assuming all positions are equally likely.) Analysis
E N D
Mathematical Induction II Lecture 21 Section 4.3 Mon, Feb 27, 2006
Example: Binary Search Trees • In a complete binary search tree of depth n - 1, (n rows) what is the average number of comparisons required to locate an element? (Assuming all positions are equally likely.) • Analysis • Elements in row 1 require 1 comparison. • Elements in row 2 require 2 comparisons. • Elements in row 3 require 3 comparisons. • In general, elements in row k require k comparisons.
Example: Binary Search Trees • Further analysis • Row 1 contains 1 element. • Row 2 contains 2 elements. • Row 3 contains 4 elements. • In general, row k contains 2k - 1 elements. • Fact • The average number of comparisons is the total number of comparisons required for all elements divided by the number of elements.
Example: Binary Search Trees • The total number of elements is 1 + 2 + 4 + 8 + … + 2n – 1. • The total number of comparisons is 11 + 22 + 34 + 48 + … + n2n – 1. • Therefore, the average is
Example: Binary Search Trees • Prove by mathematical induction that 1 + 2 + 4 + 8 + … + 2n – 1 = 2n – 1. • Prove by mathematical induction that 11 + 22 + 34 + 48 + … + n2n – 1 = (n – 1)2n + 1. • Then, the average is • This is approximately equal to n – 1 (for large n).
Binary Search Trees • In reality, it often requires two comparisons at each node. • Is the value less than the node? • If not, is the value greater than the node? • If not, then the value equals the node. • In other words, we must make a three-way decision at each node.
40 20 60 10 30 50 70 Binary Search Trees • So, exactly how many comparisons does it take to locate an element?
40 20 60 10 30 50 70 Binary Search Trees • So, exactly how many comparisons does it take to locate an element? 1 2 2
40 20 60 10 30 50 70 Binary Search Trees • So, exactly how many comparisons does it take to locate an element? 1 2 2 1 2 3
40 20 60 10 30 50 70 Binary Search Trees • So, exactly how many comparisons does it take to locate an element? 1 2 2 1 2 3 4 5
40 20 60 10 30 50 70 Binary Search Trees • So, exactly how many comparisons does it take to locate an element? 1 2 2 1 2 1 2 3 4 4 5
40 20 60 10 30 50 70 Binary Search Trees • So, exactly how many comparisons does it take to locate an element? 1 2 2 1 2 1 2 3 4 4 5 5 6
Binary Search Trees • It takes an average of 1.5 comparisons to move down one level. • Then it takes 2 comparisons to match a value at that level. • Level 1: 2 comparisons. • Level 2: 1.5 + 2 = 3.5 comparisons. • Level 3: 2(1.5) + 2 = 5 comparisons. • Level n: (n – 1)(1.5) + 2 = 1.5n + 0.5.
Binary Search Trees • To find the average, we must compute 12 + 2(3.5) + 45 + … + 2n – 1(1.5n + 0.5). • We could work this our from scratch… • Or use what we have already worked out:
Binary Search Trees • Therefore, the average is • For large n, this is approximately 1.5n – 1.
Binary Search Trees • What if we changed the order in which we did the comparisons at each node? • Is the value equal to the node? • If not, is the value less than the node? • If not, then the value is greater than the node. • Will that be more or less efficient than the previous order?
40 20 60 10 30 50 70 Binary Search Trees • Exactly how many comparisons does it take to locate an element?
40 2 2 20 1 60 10 30 50 70 Binary Search Trees • Exactly how many comparisons does it take to locate an element?
40 2 2 20 1 60 2 2 10 30 50 70 3 Binary Search Trees • Exactly how many comparisons does it take to locate an element?
40 2 2 20 1 60 2 2 10 30 50 70 3 5 5 Binary Search Trees • Exactly how many comparisons does it take to locate an element?
40 2 2 20 1 60 2 2 2 2 10 30 50 70 3 3 5 5 Binary Search Trees • Exactly how many comparisons does it take to locate an element?
40 2 2 20 1 60 2 2 2 2 10 30 50 70 3 3 5 5 5 5 Binary Search Trees • Exactly how many comparisons does it take to locate an element?
Binary Search Trees • To find the average, we must compute 11 + 23 + 45 + … + 2n – 1(2n – 1). • Again, we can use what we have already worked out:
Binary Search Trees • Therefore, the average is • For large n, this is approximately 2n – 3. • This is larger (worse) than 1.5n – 1. • Therefore, it is better not to check for equality first when searching a binary tree.
Example: Recursive Sequences • Define a sequence a1 = 2, an = 2an – 1 – 1 for n 2. • Find a non-recursive formula for an and prove that it is correct. • Analysis • {an} = {2, 3, 5, 9, 17, 33, …}. • {an – 1} = {1, 2, 4, 8, 16, 32, …}. • Conjecture that an = 2n – 1 + 1.
Example: Recursive Sequences • Proof: • Basic Step • P(1) is true since a1 = 2 = 20 + 1. • Inductive Step • Suppose that ak = 2k – 1 + 1 for some k 1.
Example: Recursive Sequences • Then ak + 1 = 2ak – 1 (by def.) = 2(2k – 1 + 1) – 1 (by ind. hyp.) = 2k + 2 – 1 = 2k + 1. • Therefore, P(k + 1) is true. • Therefore, an = 2n + 1 for all n 1.
Example: Contest Problem • Let n be a positive integer. • Suppose we have n red dots and n blue dots in the plane such that no three dots are collinear. • Prove that it is possible to connect the red dots to the blue dots in distinct pairs such that none of the line segments intersect.
Example: Contest Problem • Proof: • Basic Step • P(1) is obviously true since there is only one pair of dots and only one segment.
Example: Contest Problem • Proof: • Basic Step • P(1) is obviously true since there is only one pair of dots and only one segment.
Example: Contest Problem • Inductive Step • Suppose P(1), …, P(k) are true for some k 1. • Now suppose we have a collection of k + 1 red dots and k + 1 blue dots. • Consider the convex hull of this set.
Example: Contest Problem • There are two possibilities. • Case 1: The dots on the convex hull are not all the same color. • Case 2: The dots on the convex hull are all the same color.
Example: Contest Problem • There are two possibilities. • Case 1: The dots on the convex hull are not all the same color. • Case 2: The dots on the convex hull are all the same color.
Example: Contest Problem • Case 1: Suppose they are not all the same color. • Choose two adjacent dots of different colors on the convex hull and connect them with a segment.
Example: Contest Problem • By induction, the remaining collection of k red dots and k blue dots may be connected so that no two segments intersect. • Nor will any of those segments intersect the first segment because it is on the convex hull and no three dots are collinear. • Therefore, the entire set of dots may be connected with non-intersecting segments.
Example: Contest Problem • Case 2: Suppose they are all the same color, say red. • Choose a line that is not parallel to any segment connecting any two dots. • Move the line across the set of dots, from right to left. • Keep count of the number of red dots and the number of blue dots to the right of the line.
Example: Contest Problem • 0 red dots, so far (r = 0). • 0 blue dot, so far (b = 0).
Example: Contest Problem • 1 red dots, so far (r = 1). • 0 blue dot, so far (b = 0).
Example: Contest Problem • 1 red dots, so far (r = 1). • 1 blue dot, so far (b = 1).
Example: Contest Problem • 2 red dots, so far (r = 2). • 1 blue dot, so far (b = 1).
Example: Contest Problem • 3 red dots, so far (r = 3). • 1 blue dot, so far (b = 1).
Example: Contest Problem • Initially, r – b = 0. • At the end, r – b = 0. • Just after passing the first dot, r – b = 1. • Just before passing the last dot, r – b = –1. • The line meets only one dot at a time. • Therefore, somewhere in between, r – b must be 0.
Example: Contest Problem • 3 red dots (r = 3). • 1 blue dot (b = 1). • r – b = 2.