370 likes | 526 Vues
CS 173: Discrete Mathematical Structures. Cinda Heeren heeren@cs.uiuc.edu Rm 2213 Siebel Center Office Hours: W 9:30-11:30a. CS 173 Announcements. Homework 4 available. Due 02/12, 8a. Midterm 1: 2/23/06, 7-9p, location SC 1404. Michael Tito Janet Cindy Bobby. Katherine Scruse
E N D
CS 173:Discrete Mathematical Structures Cinda Heeren heeren@cs.uiuc.edu Rm 2213 Siebel Center Office Hours: W 9:30-11:30a
CS 173 Announcements • Homework 4 available. Due 02/12, 8a. • Midterm 1: 2/23/06, 7-9p, location SC 1404. Cs173 - Spring 2004
Michael Tito Janet Cindy Bobby Katherine Scruse Carol Brady Mother Teresa CS 173 Functions - misc. properties • f() = • f({a}) = {f(a)} • f(A U B) = f(A) U f(B) • f(A B) f(A) f(B) Cs173 - Spring 2004
CS 173 Functions - misc. properties f(A B) f(A) f(B)? Choose an arbitrary b f(A B), and show that it must also be an element of f(A) f(B). f(A B) = {x : a (A B), f(a) = x} So, a (A B) such that f(a) = b. If a A (it is), then f(a) = b f(A). If a B (it is), then f(a) = b f(B). b f(A), and b f(B), so b f(A) f(B). Cs173 - Spring 2004
Michael Tito Janet Cindy Bobby Katherine Scruse Carol Brady Mother Teresa CS 173 Functions - misc. properties • f-1() = • f-1(A U B) = f-1(A) U f-1(B) • f-1(A B) = f-1(A) f-1(B) Cs173 - Spring 2004
Michael Tito Janet Cindy Bobby Katherine Scruse Carol Brady Mother Teresa Not one-to-one Every b B has at most 1 preimage. CS 173 Functions - injection A function f: A B is one-to-one (injective, an injection) if a,b,c, (f(a) = b f(c) = b) a = c Cs173 - Spring 2004
Michael Tito Janet Cindy Bobby Katherine Scruse Carol Brady Mother Teresa Not onto Every b B has at least 1 preimage. CS 173 Functions - surjection A function f: A B is onto (surjective, a surjection) if b B, a A f(a) = b Cs173 - Spring 2004
Isaak Bri Lynette Aidan Evan Isaak Bri Lynette Aidan Evan Cinda Dee Deb Katrina Dawn Cinda Dee Deb Katrina Dawn Every b B has exactly 1 preimage. An important implication of this characteristic: The preimage (f-1) is a function! CS 173 Functions - bijection A function f: A B is bijective if it is one-to-one and onto. Cs173 - Spring 2004
yes yes yes CS 173 Functions - examples Suppose f: R+ R+, f(x) = x2. Is f one-to-one? Is f onto? Is f bijective? Cs173 - Spring 2004
no yes no CS 173 Functions - examples Suppose f: R R+, f(x) = x2. Is f one-to-one? Is f onto? Is f bijective? Cs173 - Spring 2004
no no no CS 173 Functions - examples Suppose f: R R, f(x) = x2. Is f one-to-one? Is f onto? Is f bijective? Cs173 - Spring 2004
CS 173 Functions - composition Let f:AB, and g:BC be functions. Then the composition of f and g is: (g o f)(x) = g(f(x)) Cs173 - Spring 2004
CS 173 Functions - a little problem Let f:AB, and g:BC be functions. Prove that if f and g are one to one, then g o f :AC is one to one. Recall defn of one to one: f:A->B is 1to1 if f(a)=b and f(c)=b --> a=c. Suppose g(f(x)) = y and g(f(w)) = y. Show that x=w. f(x) = f(w) since g is 1 to 1. Then x = w since f is 1 to 1. Cs173 - Spring 2004
CS 173 Functions - another Let f:AB, and g:BC be functions. Prove that if f and g are onto, then g o f :AC is onto. Cs173 - Spring 2004
In this course, log2 n is written lg n. If we write log n, assume log2 n. CS 173 Familiar functions Polynomials: f(x) = a0xn + a1xn-1 + … + an-1x1 + anx0 Ex: f(x) = x3 - 2x2 + 15 Exponentials: f(x) = cdx Ex: f(x) = 310x, f(x) = ex Logarithms: log2 x = y, where 2y = x. Cs173 - Spring 2004
0 CS 173 Familiar functions Ceiling: f(x) = x the least integer y so that x y. Ex: 1.2 = 2; -1.2 = -1; 1 = 1 Floor: f(x) = x the greatest integer y so that x y. Ex: 1.8 = 1; -1.8 = -2; -5 = -5 Quiz: what is -1.2 + 1.1 ? Cs173 - Spring 2004
In this case our algorithm takes about n time units. We say the algorithm has “order n” running time. CS 173 Two example algorithms. Suppose we wish to find the maximum number in a sequence of n numbers. How long should we spend doing this? Suppose it takes 1 time unit to make a comparison between two numbers. We really have no clue how long the algorithm takes to run, but we have an inkling that it depends linearly on n. Cs173 - Spring 2004
In this case the algorithm takes about lg n time units. We say the algorithm has “order log n” running time. CS 173 Two example algorithms. I have a number between 0 and 63. You ask a question, I’ll tell you yes or no. How long will it take you to find my secret number? Suppose it takes 1 time unit to answer a query about my number. We really have no clue how long the algorithm takes to run, but we have an inkling that it depends logarithmically on n. Cs173 - Spring 2004
Who is the tortoise? Who is the hare? How would you describe blue’s performance? At each distance, who wins? CS 173 Who wins the race? The following graph gives times for completing races of length x, for 4 different competitors. time distance Cs173 - Spring 2004
Every unit increase in x results in the same increase in f(x). Linear functions CS 173 Quiz time… Describe these functions: f(x) x Cs173 - Spring 2004
Very slow growing. Logarithmic function CS 173 Quiz time… Describe this function: Cs173 - Spring 2004
Very fast growing. Exponential function CS 173 Quiz time… Describe this function: Cs173 - Spring 2004
Polynomial Quadratic function CS 173 Quiz time… Describe this function: f(x) x Cs173 - Spring 2004
CS 173 Growth of functions Algorithm analysis is concerned with: • Type of function that describes run time (we ignore constant factors since different machines have different speed/cycle) • Large values of x Cs173 - Spring 2004
We say “f(x) is big O of g(x)” Recipe for proving f(x) = O(g(x)): find a c and k so that the inequality holds. CS 173 Growth of functions Important definition: For functions f and g we write f(x) = O(g(x)) to denote c,k so that x>k, f(x) c·g(x) Cs173 - Spring 2004
c·g(x) g(x) We give an eventual upper bound on f(x) k CS 173 Growth of functions f(x) = O(g(x)) iff c,k so that x>k, f(x) c·g(x) f(x) x Cs173 - Spring 2004
There’s k There’s c CS 173 Growth of functions (examples) f(x) = O(g(x)) iff c,k so that x>k, f(x) c·g(x) 3n = O(15n) since n>0, 3n 1·15n Cs173 - Spring 2004
5 8 0 5 CS 173 Growth of functions (examples) f(x) = O(g(x)) iff c,k so that x>k, f(x) c·g(x) 15n = O(3n) since n>__, 15n __·3n Cs173 - Spring 2004
1 CS 173 Growth of functions (examples) f(x) = O(g(x)) iff c,k so that x>k, f(x) c·g(x) x2 = O(x3) since x> __, x2 x3 Cs173 - Spring 2004
0 1000 CS 173 Growth of functions (examples) f(x) = O(g(x)) iff c,k so that x>k, f(x) c·g(x) 1000x2 = O(x2) since x> __, 1000x2 ____·x2 Cs173 - Spring 2004
100x 100x2 100 100x2 k = 1, c = 20100 CS 173 Growth of functions (examples) f(x) = O(g(x)) iff c,k so that x>k, f(x) c·g(x) Prove that x2 + 100x + 100 = O((1/100)x2) x2 + 100x + 100 201x2 when x > 1 20100·(1/100)x2 Cs173 - Spring 2004
Nothing works for k Try c = 10 k = 200, c = 11 Similar problem, different technique. Try c = 11 200 CS 173 Growth of functions (examples) Prove that 5x + 100 = O(x/2) Need x> ___, 5x + 100 ___ · x/2 x> ___, 5x + 100 10 · x/2 x> ___, 5x + 100 5x + x/2 x> ___, 100 x/2 Cs173 - Spring 2004
CS173Growth of functions Guidelines: • In general, only the largest term in a sum matters. a0xn + a1xn-1 + … + an-1x1 + anx0 = O(xn) • n dominates lg n. n5lg n = O(n6) • List of common functions in increasing O() order: 1 n (n lg n) n2 n3 … 2n n! Cs173 - Spring 2004
Questions? CS173Growth of functions (more examples) • So Cs173 - Spring 2004
c = c1+c2, k = max{k1,k2} CS173Growth of functions - a theorem If f1(x) = O(g1(x)) and f2(x)=O(g2(x)), then f1(x) + f2(x) = O(max{g1(x),g2(x)}) Proof: Let h(x) = max{g1(x),g2(x)})… Need to find constants c and k so that x>k, f1(x) + f2(x) c•h(x). Know f1(x) c1• g1(x) and f2(x) c2• g2(x). So, f1(x) + f2(x) c1•g1(x) + c2•g2(x) c1•h(x) + c2•h(x) = (c1+c2)•h(x) Cs173 - Spring 2004
This is just the case where g1(x) = g2(x) = g(x) CS173Growth of functions - a corollary We know: If f1(x) = O(g1(x)) and f2(x)=O(g2(x)), then f1(x) + f2(x) = O(max{g1(x),g2(x)}) Corollary: If f1(x) = O(g(x)) and f2(x)=O(g(x)), then f1(x) + f2(x) = O(g(x)). Cs173 - Spring 2004
CS173Growth of functions - another theorem If f1(x) = O(g1(x)) and f2(x)=O(g2(x)), then f1(x)·f2(x) = O(g1(x)·g2(x)) Proof: Cs173 - Spring 2004