CSCE 222 Discrete Structures for Computing. Review for Exam 2. Dr. Hyunyoung Lee !!!

Similar documents
CSCE 222 Discrete Structures for Computing. Review for the Final. Hyunyoung Lee

Review 3. Andreas Klappenecker

Review 1. Andreas Klappenecker

CSCE 222 Discrete Structures for Computing. Dr. Hyunyoung Lee

Binomial Coefficient Identities/Complements

Induction and Recursion

CSCE 222 Discrete Structures for Computing. Proof by Induction. Dr. Hyunyoung Lee. !!!!!! Based on slides by Andreas Klappenecker

Lecture 2. Fundamentals of the Analysis of Algorithm Efficiency

Chapter Summary. Mathematical Induction Strong Induction Well-Ordering Recursive Definitions Structural Induction Recursive Algorithms

Math 324 Summer 2012 Elementary Number Theory Notes on Mathematical Induction

Algorithm Analysis Recurrence Relation. Chung-Ang University, Jaesung Lee

Induction and recursion. Chapter 5

With Question/Answer Animations

Proof Techniques (Review of Math 271)

In-Class Soln 1. CS 361, Lecture 4. Today s Outline. In-Class Soln 2

Analysis of Algorithms I: Asymptotic Notation, Induction, and MergeSort

COMP Analysis of Algorithms & Data Structures

MATH 324 Summer 2011 Elementary Number Theory. Notes on Mathematical Induction. Recall the following axiom for the set of integers.

COMP Analysis of Algorithms & Data Structures

Fall 2017 Test II review problems

ICS141: Discrete Mathematics for Computer Science I

3.1 Asymptotic notation

Chapter 0: Preliminaries

Analysis of Algorithms

Written Homework #1: Analysis of Algorithms

Analysis of Algorithm Efficiency. Dr. Yingwu Zhu

Discrete Structures for Computer Science: Counting, Recursion, and Probability

i=1 i B[i] B[i] + A[i, j]; c n for j n downto i + 1 do c n i=1 (n i) C[i] C[i] + A[i, j]; c n

Quiz 3 Reminder and Midterm Results

Module 1: Analyzing the Efficiency of Algorithms

INDUCTION AND RECURSION. Lecture 7 - Ch. 4

Recursion. Slides by Christopher M. Bourke Instructor: Berthe Y. Choueiry. Fall 2007

CSC 344 Algorithms and Complexity. Proof by Mathematical Induction

Big O 2/14/13. Administrative. Does it terminate? David Kauchak cs302 Spring 2013

Algorithms Design & Analysis. Analysis of Algorithm

Discrete Mathematics. Spring 2017

Homework 1 Submission

MA008/MIIZ01 Design and Analysis of Algorithms Lecture Notes 3

CS1800: Mathematical Induction. Professor Kevin Gold

Counting. Mukulika Ghosh. Fall Based on slides by Dr. Hyunyoung Lee

Lecture 1: Asymptotic Complexity. 1 These slides include material originally prepared by Dr.Ron Cytron, Dr. Jeremy Buhler, and Dr. Steve Cole.

Name (please print) Mathematics Final Examination December 14, 2005 I. (4)

1 Basic Combinatorics

Introduction to Algorithms

Analysis of Algorithms - Using Asymptotic Bounds -

Chapter 11 - Sequences and Series

Contents. Counting Methods and Induction

Asymptotic Analysis 1

Advanced Counting Techniques. Chapter 8

Module 1: Analyzing the Efficiency of Algorithms

are the q-versions of n, n! and . The falling factorial is (x) k = x(x 1)(x 2)... (x k + 1).

CS 4407 Algorithms Lecture 2: Iterative and Divide and Conquer Algorithms

Review for Midterm 1. Andreas Klappenecker

Notes on induction proofs and recursive definitions

data structures and algorithms lecture 2

P, NP, NP-Complete, and NPhard

Lecture 2. More Algorithm Analysis, Math and MCSS By: Sarah Buchanan

When we use asymptotic notation within an expression, the asymptotic notation is shorthand for an unspecified function satisfying the relation:

Recurrences COMP 215

PUTNAM TRAINING NUMBER THEORY. Exercises 1. Show that the sum of two consecutive primes is never twice a prime.

Analysis of Algorithms

Divide and Conquer CPE 349. Theresa Migler-VonDollen

CS Non-recursive and Recursive Algorithm Analysis

Homework Assignment 1 Solutions

Preparing for the CS 173 (A) Fall 2018 Midterm 1

Math 10850, fall 2017, University of Notre Dame

Some Review Problems for Exam 3: Solutions

Administrivia. COMP9020 Lecture 7 Session 2, 2017 Induction and Recursion. Lecture 6 recap. Lecture 6 recap

Fall 2016 Test 1 with Solutions

Recommended readings: Description of Quicksort in my notes, Ch7 of your CLRS text.

MA008/MIIZ01 Design and Analysis of Algorithms Lecture Notes 2

More Asymptotic Analysis Spring 2018 Discussion 8: March 6, 2018

Asymptotic Notation. such that t(n) cf(n) for all n n 0. for some positive real constant c and integer threshold n 0

Data Structures and Algorithms Running time and growth functions January 18, 2018

When we use asymptotic notation within an expression, the asymptotic notation is shorthand for an unspecified function satisfying the relation:

Models of Computation,

5 + 9(10) + 3(100) + 0(1000) + 2(10000) =

Discrete Mathematics. Spring 2017

MATH 802: ENUMERATIVE COMBINATORICS ASSIGNMENT 2

Lecture 1: Asymptotics, Recurrences, Elementary Sorting

Mid-term Exam Answers and Final Exam Study Guide CIS 675 Summer 2010

Lecture 12 : Recurrences DRAFT

1. Determine (with proof) the number of ordered triples (A 1, A 2, A 3 ) of sets which satisfy

0 Sets and Induction. Sets

CSI Mathematical Induction. Many statements assert that a property of the form P(n) is true for all integers n.

CS473 - Algorithms I

Some Review Problems for Exam 3: Solutions

Computational Complexity. This lecture. Notes. Lecture 02 - Basic Complexity Analysis. Tom Kelsey & Susmit Sarkar. Notes

Grade 11/12 Math Circles Fall Nov. 5 Recurrences, Part 2

CDM Combinatorial Principles

cse547, math547 DISCRETE MATHEMATICS Professor Anita Wasilewska

CSCE 750 Final Exam Answer Key Wednesday December 7, 2005

Lecture 17: Trees and Merge Sort 10:00 AM, Oct 15, 2018

Complete Induction and the Well- Ordering Principle

Section Summary. Sequences. Recurrence Relations. Summations. Examples: Geometric Progression, Arithmetic Progression. Example: Fibonacci Sequence

Recursion: Introduction and Correctness

Homework #2 Solutions Due: September 5, for all n N n 3 = n2 (n + 1) 2 4

Advanced Counting Techniques

CSCE 222 Discrete Structures for Computing. Review for Exam 1. Dr. Hyunyoung Lee !!!

Proof by Induction. Andreas Klappenecker

Transcription:

CSCE 222 Discrete Structures for Computing Review for Exam 2 Dr. Hyunyoung Lee 1

Strategy for Exam Preparation - Start studying now (unless have already started) - Study class notes (lecture slides and lecture notes) and make sure you know your definitions - Review homework, quizzes, and in-class exercises - Study the examples in the textbook - Do odd numbered exercises - Bring a scantron: 8x11 gray 2

Exam Coverage The second exam will cover everything you have learned up to March 27, but the emphasis is on the material that we have covered after the first exam. Asymptotic Notations (Section 3.2) Time complexity of algorithms (Section 3.3) Sequences and sums (Section 2.4) Proof by induction and strong induction (Sections 5.1 and 5.2) Inductive sets, recursive functions, and structural induction (Section 5.3) Counting (Sections 6.1 6.4) 3

Asymptotic Notations 4

Big Oh Notation Let f,g: N -> R be functions from the natural numbers to the set of real numbers. We write f O(g) if and only if there exists some real number n 0 and a positive real constant U such that f(n) <= U g(n) for all n satisfying n >= n 0 5

Set Interpretation We have interpreted f(n)=o(g(n)) as a relation between the two functions f(n) and g(n). We can give O(g(n)) a meaning by interpreting it as the set of all functions f(n) such that f(n)=o(g(n)), that is, O(g) = { f: N-> R there exists a constant U and a natural number n 0 such that f(n) <= U g(n) for all n >= n 0 } 6

Example O(n 2 ) 7

Big Ω We define f(n) Ω(g(n)) if and only if there exist a positive real constant L and a natural number n 0 such that L g(n) <= f(n) holds for all n >= n 0. In other words, f(n) = Ω(g(n)) if and only if g(n) = O(f(n)). 8

Big Θ We define f(n) Θ(g(n)) if and only if there exist positive real constants L and U and a natural number n 0 such that L g(n) <= f(n) <= U g(n) holds for all n >= n 0. In other words, f(n) = Θ(g(n)) if and only if f(n) = Ω(g(n)) and f(n) = O(g(n)). 9

Informal Summary f(n) = O(g(n)) means that f(n) is upper bounded by a constant multiple of g(n) for all large n. f(n) =Ω(g(n)) means that f(n) is lower bounded by a constant multiple of g(n) for all large n. f(n) = Θ(g(n)) means that f(n) has the same asymptotic growth as g(n) up to multiplication by constants. 10

Time Complexity of Algorithms 11

Complexity Example def bubble_sort(list) list = list.dup # make copy of input for i in 0..(list.length-2) do for j in 0..(list.length - i - 2) do list[j], list[j + 1] = list[j + 1], list[j] if list[j + 1] < list[j] end end return list end 12

Nested For Loops for i in 0..(list.length-2) do # number of iterations: n-1 for j in 0..(list.length - i - 2) do # number of itns: n-1, n-2,..., 1 list[j], list[j + 1] = list[j + 1], list[j] if list[j + 1] < list[j] end end Let n = list.length. Then the two nested loops take (n-1 + n-2 +... + 1 ) O(1) = (n(n-1)/2) O(1) = O(n 2 ) time. 13

Total Time Complexity def bubble_sort(list) # O(1) for parameter assignment list = list.dup # O(n) for i in 0..(list.length-2) do # O(n 2 ) for j in 0..(list.length - i - 2) do list[j], list[j + 1] = list[j + 1], list[j] if list[j + 1] < list[j] end end return list # O(1) end # O(1) + O(n) + O(n 2 ) + O(1) = O(n 2 ) 14

Sequences and Summations 15

Sequences A sequence is a function from a subset of the set of integers (such as {0,1,2,...} or {1,2,3,...}) to some set S. We use the notation a n to denote the image of the integer n. We call a n a term of the sequence. We use the notations {a n } or (a n ) to denote sequences. 16

Example: Fibonacci Sequence Recall that the Fibonacci sequence is defined by the initial conditions: f 0 =0 and f 1 =1 and the recurrence relation f n = f n-1 +f n-2 for n >= 2. Hence, {f n } = {0,1,1,2,3,5,8,13,...} 17

Sums We use the notations nx k=m a k = a m + a m+1 + + a n The letter k is called the index of summation. 18

Sum of the First n Positive Integers For all n 1, we have P n k=1 k = n(n + 1)/2 We prove this by induction. Let A(n) be the claimed equality. Basis Step: We need to show that A(1) holds. For n = 1, we have P 1 k = 1 = 1(1 + 1)/2. k=1 19

Sum of the First n Positive Integers Induction Step: We need to show that 8n 1:[A(n) A(n + 1)] As induction hypothesis, suppose that A(n) holds. Then, n+1 X k=1 k = (n + 1) + = 2(n + 1) 2 nx k=1 + 20 k n(n + 1) 2 = 2n +2+n2 + n 2 (n + 1)(n + 2) = 2 by Induction Hypothesis = n2 +3n +2 2 Therefore, the claim follows by induction on n.

Sum of Fibonacci Numbers n Let f 0 = 0 and f 1 = 1 and f n = f n 1 + f n 2 for 2. Then nx k=1 f k = f n+2 1. Induction basis: For n = 1, we have 1X k=1 f k = 1 = (1 + 1) 1=f 1 + f 2 1=f 3 1 21

Sum of Fibonacci Numbers Let A(n) be the claimed equality. Induction Step: We need to show that 8n 1:[A(n) A(n + 1)] As induction hypothesis, suppose that A(n) holds. Then, n+1 X k=1 nx f k = f n+1 + k=1 f k = f n+1 + f n+2 1 by Induction Hypothesis = f n+3 1 by definition Therefore, the claim follows by induction on n. 22

Weak and Strong Induction 23

Motivation Induction is an axiom which allows us to prove that certain properties are true for all positive integers (or for all nonnegative integers, or all integers >= some fixed number) 24

Induction Principle Let A(n) be an assertion concerning the integer n. If we want to show that A(n) holds for all positive integer n, we can proceed as follows: Induction basis: Show that the assertion A(1) holds. Induction step: Show that [A(n) A(n+1)] holds for all positive integers n. 25

Strong Induction Principle Let A(n) be the assertion concerning the integer n. If we want to prove it for all n >= 1, we can do the following: Induction basis: Show that A(1) is true. Induction step: Show that [(A(1)... A(n)) A(n+1)] holds for all n >=1. 26

Weak or Strong Induction? You might wonder which form of induction you should use. Generally, you use strong induction when assuming only that the assertion A(n) holds does not seem to help in proving A(n+1). Strong induction can make the induction step easier to prove in such cases. On the other hand, weak induction is sometimes more straightforward to use (so it is preferred when the induction step can be proved by assuming A(n) alone). 27

Example (1/4) Theorem: For all positive integers n, we have that 12 divides n 4 -n 2. Weak or strong induction? Unclear. So let s try weak induction. 28

Example (2/4) Let s try to prove it by weak induction: Base Step: Since 1 4-1 2 = 1-1 = 0 = 0*12 is divisible by 12, the claim is true for n=1. Inductive Step: Let us assume that 12 divides n 4 -n 2. Our goal is to show that this implies that 12 divides (n+1) 4 -(n+1) 2 Since (n+1) 4 -(n+1) 2 = n 4 +4n 3 +6n 2 +4n+1 - (n 2 +2n+1), we get (n+1) 4 -(n+1) 2 = n 4 - n 2 + 4n 3 +6n 2 +2n. By assumption 12 divides n 4 - n 2. Why does 12 divide 4n 3 +6n 2 +2n? You don t know? I don t know either. At least, it is not obvious. 29

Example (3/4) Let us try to prove it by strong induction. Perhaps we can show that A(n) implies A(n+6). Base case: n = 1: 1 4-1 2 = 1-1 = 0 = 0*12 n = 2: 2 4-2 2 = 16-4 = 12 = 1*12 n = 3: 3 4-3 2 = 81 9 = 72 = 6*12 n = 4: 4 4-4 2 = 256-16 = 240 = 20 * 12 n = 5: 5 4-5 2 = 625-25 = 600 = 50*12 n = 6: 6 4-6 2 = 1296-36 = 1260 = 105*12 Thus, the claim is true for n=1,...,6. 30

Example (4/4) Let n>=6. Let us assume that 12 divides m 4 m 2 for 1 m n. Our goal is to show that 12 divides (n+1) 4 (n+1) 2. For simplicity, let m = n+1-6=n-5. By assumption, 12 divides m 4 m 2. (n + 1) 4 (n + 1) 2 =(m + 6) 4 (m + 6) 2 = m 4 + 24m 3 + 216m 2 + 864m + 1296 (m 2 + 12m + 36) =(m 4 m 2 ) + 24m 3 + 216m 2 + 852m + 1260 = 12a + 24m 3 + 216m 2 + 852m + 1260 = 12(a +2m 3 + 18m 2 + 71m + 105) for some integer a. Thus, the claim follows by strong induction. 31

Example Theorem: For all positive integers n, we have 1+3+5+...+(2n-1) = n 2 Proof. We prove this by induction on n. Let A(n) be the assertion of the theorem. Induction basis: Since 1 = 1 2, it follows that A(1) holds. Induction step: Suppose that A(n) holds. Then 1+3+5+...+(2n-1)+(2n+1) = n 2 +2n+1 = (n+1) 2 holds. In other words, A(n) implies A(n+1). Therefore, the claim follows by induction on n. 32

Inductively Defined Sets and Structural Induction 33

Inductively Defined Sets An inductive definition of a set S has the following form: (a) Basis: Specify one or more initial elements of S. (b) Induction: Give one or more rules for constructing new elements of S from old elements of S. (c) Closure: The set S consists of exactly the elements that can be obtained by starting with the initial elements of S and applying the rules for constructing new elements of S. The closure condition is usually omitted, since it is always assumed in inductive definitions. 34

Example 1 Let S be the set defined as follows: Basis: 0 S Induction: If n S, then 2n+1 S. Can you describe the set S? S = {0,1,3,7,15,31,... } = { 2 n -1 n a nonnegative integer } since 2 0-1=0 and 2 n+1-1 = 2(2 n -1)+1 35

Example 2: Binary Trees We can define the set B of binary trees over an alphabet A as follows: Basis: B. Induction: If L, R B and x A, then L,x,R B. Example:,1, // tree with one node (1) Example:,1,, r,,2, // tree with root r and two children (1 and 2). 36

Recursively Defined Functions Suppose we have a function with the set of nonnegative integers as its domain. We can specify the function as follows: Basis step: Specify the value of the function at 0 Inductive step: Give a rule for finding its value at an integer from its values at smaller integers. This is called a recursive or inductive definition. 37

Example 1: Factorial Function We can define the factorial function n as follows: Base step: 0 = 1 Inductive step: n = n (n-1) 38

Example 2: Ackermann Function A(m, n) = 8 >< n +1 ifm =0, A(m 1, 1) if m>0 and n =0, >: A(m 1,A(m, n 1)) if m>0 and n>0 The Ackermann function has particular significance in computability theory. The values of A(m,n) grow very, very quickly. Why does the recursion terminate? Lexicographically order the pairs (m,n). So (m,n) < (m,n ) iff m<m or (m=m and n<n ). Note that arguments used in the RHS are lexicographically smaller than the arguments in the LHS. Thus, eventually we need to end up in case m=0, though it might take an extremely long time. 39

Structural Induction In structural induction, the proof of the assertion that every element of an inductively defined set S has a certain property P proceeds by showing that Basis: Every element in the basis of the definition of S satisfies the property P. Induction: Assuming that every argument of a constructor has property P, show that the constructed element has the property P. 40

Example 1: Binary Trees Recall that the set B of binary trees over an alphabet A is defined as follows: Basis: B. Induction: If L, R B and x A, then L,x,R B. We can now prove that every binary tree has a property P by arguing that Basis: P( ) is true. Induction: For all binary trees L and R and x in A, if P(L) and P(R), then P( L,x,R ). 41

Example: Binary Trees - The Number of Leaves Let f: B -> N be the function defined by f(hi) = 0 ( 1 if L = R = hi f(hl, x, Ri) = f(l)+f(r) otherwise Theorem: Let T in B be a binary tree. Then f(t) yields the number of leaves of T. 42

Binary Trees - The Number of Leaves Theorem: Let T in B be a binary tree. Then f(t) yields the number of leaves of T. Proof: By structural induction on T. Basis: The empty tree has no leaves, so f( ) = 0 is correct. Induction: Let L,R be trees in B, x in A. Suppose that f(l) and f(r) denotes the number of leaves of L and R, respectively. If L=R=, then L,x,R> =,x, has one leaf, namely x, so f(,x, )=1 is correct. 43

Binary Trees - The Number of Leaves (Cont.) If L and R are not both empty, then the number of leaves of the tree L,x,R is equal to the number of leaves of L plus the number of leaves of R. Hence, by induction hypothesis, we get as claimed. This completes the proof. f( L,x,R ) = f(r)+f(l) 44

Example 2: Full Binary Trees The set of full binary trees can be defined as follows: Basis: There is a full binary tree consisting of a single vertex r Induction: If T 1 and T 2 are disjoint full binary trees and r in A is a node, then <T 1, r, T 2 > is a full binary tree with root r and left subtree T 1 and right subtree T 2. The difference between binary trees and full binary trees is in the basis step. A binary tree is full if and only if each node is either a leaf or has precisely two children. 45

Small Full Binary Trees Level 0: Level 1: not full Level 2: 46

Height of a Full Binary Tree Let T be a full binary tree over an alphabet A. We define the height h(t) of a full binary tree as follows: Basis: For r in A, we define h(r) = 0; that is, the height of a full binary tree with just a single node is 0. Induction: If L and R are full binary trees and r in A, then the tree <L,r,R> has height h( <L,r,R> ) = 1 + max( h(l), h(r) ). 47

Number of Nodes of a Full Binary Tree Let n(t) denote the number of nodes of a full binary tree over an alphabet A. Then Basis: For r in A, we have n(r)=1. Induction: If L and R are full binary trees and r in A, then the number of nodes of <L,r,R> is given by n(<l,r,r>) = 1+n(L)+n(R). 48

Example of Structural Induction Theorem: Let T be a full binary tree over an alphabet A. Then we have n(t) <= 2 h(t)+1-1. Proof: By structural induction. Basis step: For r in A, we have n(r)=1 and h(r)=0, therefore, we have n(r) = 1 <= 2 (0+1) -1 = 2 h(r)+1-1, as claimed. Inductive step: Suppose that L and R are full binary trees that satisfy n(l) <= 2 h(l)+1-1 and n(r) <= 2 h(r)+1-1. Then the tree T=<L,r,R> satisfies: n(t) = 1 + n(l) + n(r) <= 1 + 2 h(l)+1-1 + 2 h(r)+1-1, by I.H. <= 2 max(2 h(l)+1, 2 h(r)+1 )-1, since a+b <= 2max(a,b) = 2. 2 max(h(l),h(r))+1-1=2. 2 h(t) -1 = 2 h(t)+1-1 49

Solving Recurrences Solving a recurrence system means finding a closed form expression for the n-th term. At this point, you need to be able to solve recurrences - by using the iterative method, and - by inspecting, guessing, and verifying a solution. For verification, use proof-by-induction 50

Counting 51

Counting Rules and Principles Below are the counting rules and principles we cover in class. Refer the lecture slides on Counting for definitions and examples. Product rule Sum rule Subtraction rule, principle of inclusion-exclusion Pigeonhole principle Permutations and combinations Binomial theorem and identities Pascal s identity and Pascal s triangle 52