Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Great Theoretical Ideas In Computer Science Steven Rudich Lecture 11 CS 15-251 Feb 14, 2004 Spring 2003 Carnegie Mellon University Counting III: Pascal’s Triangle, Polynomials, and Vector Programs 1 X+ 2 X+ 3 X 1 + X1 + X 2 + X 3 + … + Xn-1 + Xn = Xn+1 - 1 X- 1 The Geometric Series 1+ X1 + X2 +X 3 +…+ Xn + ….. = 1 1-X The Infinite Geometric Series 1+ X1 + X2 +X 3 +…+ Xn + ….. = 1 1-X (X-1) ( 1 + X1 + X2 + X 3 + … + Xn + … ) = X1 + X2 + X 3 + … + Xn + Xn+1 + …. - 1 - X1 - X2 - X 3 - … - Xn-1 – Xn - Xn+1 - … = 1 1+ X1 + X2 +X 3 +…+ Xn + ….. = 1 + x + ….. ____________________ 1-x | 1 -[1 – x] _____ x -[x – x2 ] ______ x2 -.... 1 1-X 1+ aX1 + a2X2 + a3X 3 +…+ a n Xn + ….. = 1 1 - aX Geometric Series (Linear Form) (1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) = 1 (1 – aX)(1-bX) Geometric Series (Quadratic Form) (1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) = 1 + c1X1 + .. + ck Xk + … Suppose we multiply this out to get a single, infinite polynomial. What is an expression for Cn? (1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) = 1 + c1X1 + .. + ck Xk + … cn = a0bn + a1bn-1 +… aibn-i… + an-1b1 + anb0 (1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) = 1 + c1X1 + .. + ck Xk + … If a = b then cn = (n+1)(an) a0bn + a1bn-1 +… aibn-i… + an-1b1 + anb0 a0bn + a1bn-1 +… aibn-i… + an-1b1 + anb0 = an+1 – bn+1 a- b (a-b) (a0bn + a1bn-1 +… aibn-i… + an-1b1 + anb0) = a1bn +… ai+1bn-i… + anb1 + an+1b0 - a0bn+1 – a1bn… ai+1bn-i… - an-1b2 - anb1 = - bn+1 = + an+1 an+1 – bn+1 (1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) = 1 + c1X1 + .. + ck Xk + … if a b then cn = an+1 – bn+1 a- b a0bn + a1bn-1 +… aibn-i… + an-1b1 + anb0 (1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) = = = n=0..1 or n=0..1 1 (1 – aX)(1-bX) an+1 – bn+1 a- b (n+1)an Xn Xn when a=b Geometric Series (Quadratic Form) Previously, we saw that Polynomials Count! The number of ways to rearrange the letters in the word BANANA. Choice tree for terms of (1+X)3 1 1 1 1 X X X X 1 1 X X X 1 X 1 X X2 X X2 X2 X3 Combine like terms to get 1 + 3X + 3X2 + X3 The Binomial Formula (1 X) n nI F nI nI nI nI F F F F G G XG X . . .G X . . .G X J J J J J 0K H 1K H 2K kK nK H H H 2 k Binomial Coefficients binomial expression n The Binomial Formula n k n (1 x ) x k 0 k n One polynomial, two representations n k n (1 x ) x k 0 k n “Product form” or “Generating form” “Additive form” or “Expanded form” Power Series Representation n k (1 x) x k 0 k n k x “Closed form” or k k 0 “Generating form” n n n Since 0 if k n k “Power series” (“Taylor series”) expansion By playing these two representations against each other we obtain a new representation of a previous insight: n k (1 x ) x k 0 k n n Let x=1. n 2 k 0 k n n The number of subsets of an n-element set By varying x, we can discover new identities n k (1 x ) x k 0 k n n Let x= -1. n 0 ( 1) k k 0 k n Equivalently, n n n n 1 2 k k k even k odd n The number of even-sized subsets of an n element set is the same as the number of odd-sized subsets. n k (1 x ) x k 0 k n n Let x= -1. n k 0 ( 1) k 0 k n Equivalently, n n n n 1 2 k k k even k odd n n k (1 x) x k 0 k n n We could discover new identities by substituting in different numbers for X. One cool idea is to try complex roots of unity, however, the lecture is going in another direction. n k (1 x) x k 0 k n n Proofs that work by manipulating algebraic forms are called “algebraic” arguments. Proofs that build a 1-1 onto correspondence are called “combinatorial” arguments. n n n n 1 2 k even k k odd k n Let On be the set of binary strings of length n with an odd number of ones. Let En be the set of binary strings of length n with an even number of ones. We gave an algebraic proof that On = En A Combinatorial Proof Let On be the set of binary strings of length n with an odd number of ones. Let En be the set of binary strings of length n with an even number of ones. A combinatorial proof must construct a one-toone correspondence between On and En An attempt at a correspondence Let fn be the function that takes an n-bit string and flips all its bits. fn is clearly a one-to-one and onto function ...but do even n work? In f6 we have for odd n. E.g. in f7 we have 110011 001100 0010011 1101100 101010 010101 1001101 0110010 Uh oh. Complementing maps evens to evens! A correspondence that works for all n Let fn be the function that takes an n-bit string and flips only the first bit. For example, 0010011 1010011 1001101 0001101 110011 010011 101010 001010 n k (1 x) x k 0 k n n The binomial coefficients have so many representations that many fundamental mathematical identities emerge… The Binomial Formula (1+X)0 = 1 (1+X)1 = 1 + 1X (1+X)2 = 1 + 2X + 1X2 (1+X)3 = 1 + 3X + 3X2 + 1X3 (1+X)4 = 1 + 4X + 6X2 + 4X3 + 1X4 Pascal’s Triangle: kth row are the coefficients of (1+X)k (1+X)0 = 1 (1+X)1 = 1 + 1X (1+X)2 = 1 + 2X + 1X2 (1+X)3 = 1 + 3X + 3X2 + 1X3 (1+X)4 = 1 + 4X + 6X2 + 4X3 + 1X4 kth Row Of Pascal’s Triangle: n n n n n , , ,..., ,... 0 1 2 k n (1+X)0 = 1 (1+X)1 = 1 + 1X (1+X)2 = 1 + 2X + 1X2 (1+X)3 = 1 + 3X + 3X2 + 1X3 (1+X)4 = 1 + 4X + 6X2 + 4X3 + 1X4 Inductive definition of kth entry of nth row: Pascal(n,0) = Pacal (n,n) = 1; Pascal(n,k) = Pascal(n-1,k-1) + Pascal(n,k) (1+X)0 = 1 (1+X)1 = 1 + 1X (1+X)2 = 1 + 2X + 1X2 (1+X)3 = 1 + 3X + 3X2 + 1X3 (1+X)4 = 1 + 4X + 6X2 + 4X3 + 1X4 “Pascal’s Triangle” 0 0 1 1 1 1 0 1 1 2 2 2 1 2 0 1 2 1 3 3 3 3 1 3 3 0 1 2 3 1 Al-Karaji, Baghdad 953-1029 Chu Shin-Chieh 1303 The Precious Mirror of the Four Elements . . . Known in Europe by 1529 Blaise Pascal 1654 Pascal’s Triangle 1 1 1 1 “It is extraordinary how fertile in 1 1 properties the triangle is. 1 2 1 Everyone can try his 1 3 3 1 hand.” 4 5 6 6 10 15 4 10 20 1 5 15 1 6 1 Summing The Rows n n 2 k 0 k 1 =1 1 + 1 =2 1 + 2 + 1 =4 1 + 3 + 3 + 1 =8 1 + 4 + 6 + 4 + 1 =16 1 + 5 + 10 + 10 + 5 + 1 =32 n 1 + 6 + 15 + 20 + 15 + 6 + 1 =64 1 1 1 1 1 1 1 2 3 4 5 6 1 3 6 10 15 1 1 4 10 20 1 5 15 6+20+6 = 1+15+15+1 1 6 1 Summing on 1st Avenue 1 1 1 1 1 1 6 1 2 3 1 4 5 10 15 1 3 6 1 4 10 20 i n 1 n (n 1) i 2 i k i k 1 2 n 15 n 1 5 1 6 1 Summing on kth Avenue 1 1 1 1 1 1 6 1 2 3 1 4 5 10 15 1 3 6 1 4 10 20 i n 1 k k 1 ik n 15 1 5 1 6 1 1 =2 =3 1 2 1 =5 =8 1 3 3 1 =13 1 1 1 6 1 4 5 10 15 1 6 4 10 20 1 5 15 1 6 1 1 1 2 1 1 6 2 3 1 4 5 10 15 1 2 2 2 2 2 2 1 1 1 3 6 1 4 10 20 15 1 5 1 6 1 Al-Karaji Squares 1 1 1 1 1 1 1 1 =1 2 + 2*1 =4 3 + 2*3 4 + 2*6 5 + 2*10 6 + 2*15 =0 20 1 =9 4 1 10 5 15 =16 1 6 =25 1=36 All these properties can be proved inductively and algebraically. We will give combinatorial proofs using the Manhattan block walking representation of binomial coefficients. How many shortest routes from A to B? A B 10 5 Manhattan j’th Street 4 3 2 1 0 0 1 k’th Avenue 2 3 4 Level n Manhattan ……… 0 k’th Avenue 0 1 …………. 1 2 …………………… 2 3 ………………………… 3 4 ………………………………… 4 Level n Manhattan ……… 0 k’th Avenue 0 1 …………. 1 2 …………………… 2 3 ………………………… 3 4 ………………………………… 4 level n . . . . . . . . . . . . . . . 1. 1 . . . . 2 . . .13 1 . 1. 4 6 1 6 5 k’th Avenue 1 3 1 4 1 1 1 5 10 10 15 20 15 6 ..... ..... 1 level n . . . . . 1 ..... 3 1 ..... 4 1 1 5 6 1 2 1 3 6 10 15 k’th Avenue 1 1 1 5 10 20 1 4 15 6 n n 1 n 1 k k 1 k ..... ..... 1 level n . . . . . 1 ..... 3 1 ..... 4 1 1 5 6 1 2 1 3 6 10 15 k’th Avenue 1 1 1 5 10 20 1 4 15 n n 1 2 k k even 6 ..... ..... 1 level n . . . . . 1 ..... 3 1 ..... 4 1 1 5 1 2 15 1 3 6 10 6 k’th Avenue 1 1 2 1 5 10 20 1 4 15 6 n 2n k n k 0 n By convention: 0! 1 (empty product = 1) n k 1 if k 0 n k 0 if k 0 or k n ..... ..... 1 level n . . . . . 1 ..... 3 1 ..... 4 1 1 5 6 i n 1 i 1 k k 1 n 1 2 1 3 6 10 15 k’th Avenue 1 1 1 5 10 20 1 4 15 6 Corollary ( k 1) n 1 n(n 1) i 2 i 1 2 n Application (Al-Karaji): n 2 2 2 2 i 1 2 3 n2 i 0 (1 0 1) (2 1 2) (3 2 3) 1 0 2 1 3 2 ( n( n 1) n) n n( n 1) i i 1 2 3 4 5 n n 1 2 2 2 2 2 2 2 n 1 n 1 (2n 1)(n 1)n 2 6 3 2 Vector Programs Let’s define a (parallel) programming language called VECTOR that operates on possibly infinite vectors of numbers. Each variable V! can be thought of as: < * , * , * , * , *, *, . . . . . . . . . > 0 1 2 3 4 5......... Vector Programs Let k stand for a scalar constant <k> will stand for the vector <k,0,0,0,…> <0> = <0,0,0,0,….> <1> = <1,0,0,0,…> V! + T! means to add the vectors position-wise. <4,2,3,…> + <5,1,1,….> = <9,3,4,…> Vector Programs RIGHT(V!) means to shift every number in V! one position to the right and to place a 0 in position 0. RIGHT( <1,2,3, …> ) = <0,1,2,3,. …> Vector Programs Example: Stare V! := <6>; V! := RIGHT(V!) + <42>; V! := RIGHT(V!) + <2>; V! := RIGHT(V!) + <13>; V! = <6,0,0,0,..> V! = <42,6,0,0,..> V! = <2,42,6,0,..> V!= <13,2,42,6,.> V! = < 13, 2, 42, 6, 0, 0, 0, . . . > Vector Programs Example: Stare V! := <1>; V! = <1,0,0,0,..> Loop n times: V! := V! + RIGHT(V!); V! = <1,1,0,0,..> V! = <1,2,1,0,..> V! = <1,3,3,1,.> V! = nth row of Pascal’s triangle. 1 X+ 2 X + Vector programs can be implemented by polynomials! 3 X Programs -----> Polynomials The vector V! = < a0, a1, a2, . . . > will be represented by the polynomial: Formal Power Series The vector V! = < a0, a1, a2, . . . > will be represented by the formal power series: V! = < a0, a1, a2, . . . > <0> is represented by <k> is represented by 0 k V! + T! is represented by (PV + PT) RIGHT(V! ) is represented by (PV X) Vector Programs Example: V! := <1>; PV := 1; Loop n times: V! := V! + RIGHT(V!); PV := PV + PV X; V! = nth row of Pascal’s triangle. Vector Programs Example: V! := <1>; PV := 1; Loop n times: V! := V! + RIGHT(V!); PV := PV (1+ X); V! = nth row of Pascal’s triangle. Vector Programs Example: V! := <1>; Loop n times: V! := V! + RIGHT(V!); PV = (1+ X)n V! = nth row of Pascal’s triangle. What is the coefficient of Xk in the expansion of: ( 1 + X + X2 + X3 + X4 + . . . . )n ? Each path in the choice tree for the cross terms has n choices of exponent e1, e2, . . . , en ¸ 0. Each exponent can be any natural number. Coefficient of Xk is the number of non-negative solutions to: e 1 + e 2 + . . . + en = k What is the coefficient of Xk in the expansion of: ( 1 + X + X2 + X3 + X4 + . . . . )n ? n k 1 n -1 ( 1 + X + X2 + X3 + X4 + . . . . )n = n k 1 k 1 X n n -1 1 X k 0 What is the coefficient of Xk in the expansion of: (a0 + a1X + a2X2 + a3X3 + …) ( 1 + X + X2 + X3 + . . . ) = (a0 + a1X + a2X2 + a3X3 + …) / (1 – X) ? a0 + a1 + a2 + .. + ak (a0 + a1X + a2X2 + a3X3 + …) / (1 – X) = i k k a X i k 0 i 0 = PREFIXSUM(a0 + a1X + a2X2 + a3X3 + …) Let’s add an instruction called PREFIXSUM to our VECTOR language. W! := PREFIXSUM(V!) means that the ith position of W contains the sum of all the numbers in V from positions 0 to i. What does this program output? V! := 1! ; Loop k times: V! := PREFIXSUM(V!) ; 0 k’th Avenue 1 2 3 4 Can you see how PREFIXSUM can be represented by a familiar polynomial expression? W! := PREFIXSUM(V!) is represented by PW = PV / (1-X) = PV (1+X+X2+X3+ ….. ) Al-Karaji Program Zero_Ave := PREFIXSUM(<1>); First_Ave := PREFIXSUM(Zero_Ave); Second_Ave :=PREFIXSUM(First_Ave); Output:= First_Ave + 2*RIGHT(Second_Ave) OUTPUT! = <1, 4, 9, 25, 36, 49, …. > Al-Karaji Program Zero_Ave = 1/(1-X); First_Ave = 1/(1-X)2; Second_Ave = 1/(1-X)3; Output = 1/(1-X)2 + 2X/(1-X)3 (1-X)/(1-X)3 + 2X/(1-X)3 = (1+X)/(1-X)3 (1+X)/(1-X)3 Zero_Ave := PREFIXSUM(<1>); First_Ave := PREFIXSUM(Zero_Ave); Second_Ave :=PREFIXSUM(First_Ave); Output:= RIGHT(Second_Ave) + Second_Ave Second_Ave = <1, 3, 6, 10, 15,. RIGHT(Second_Ave) = <0, 1, 3, 6, 10,. Output = <1, 4, 9, 16, 25 (1+X)/(1-X)3 outputs <1, 4, 9, ..> X(1+X)/(1-X)3 outputs <0, 1, 4, 9, ..> The kth entry is k2 X(1+X)/(1-X)3 = k2Xk What does X(1+X)/(1-X)4 do? X(1+X)/(1-X)4 expands to : Sk Xk where Sk is the sum of the first k squares Aha! Thus, if there is an alternative interpretation of the kth coefficient of X(1+X)/(1-X)4 we would have a new way to get a formula for the sum of the first k squares. Using pirates and gold we found that: n k 1 k 1 X n n -1 1 X k 0 THUS: 1 1 X k 3 k X 3 k 0 4 Coefficient of Xk in PV = (X2+X)(1-X)-4 is the sum of the first k squares: 1 1 X k 3 k X 3 k 0 4 Vector programs -> Polynomials -> Closed form expression Expressions of the form Finite Polynomial / Finite Polynomial are called Rational Polynomial Expressions. Clearly, these expressions have some deeper interpretation as a programming language. What about this one? X/(1-X-X2) x 0 1 2 3 F0 x F1 x F2 x F3 x 2 1 x x Fi x i 0 The action of dividing one polynomial by another can simulate a program to recursively compute Fibonacci numbers. i Vector Program I/O Example: INPUT I!; /* not allowed to alter I! */ V! := I! + 1; Loop n times: V! := V! + RIGHT(V!) + I! ; OUTPUT V! Vector Recurrence Relations Let P be a vector program that takes input. A vector relation is any statement of the form: V! = P( V! ) If there is a unique V! satisfying the relation, then V! is said to be defined by the relation V! = P( V! ). Fibonacci Numbers Recurrence Relation Definition: F0 0, F1 1, Fn Fn1 Fn 2 , n 1 Vector Recurrence Relation Definition: F! = RIGHT( F! + <1> ) + RIGHT( RIGHT( F! ) ) F! = RIGHT( F! + <1> ) + RIGHT( RIGHT( F! ) ) F! = a0, a1 RIGHT(F! +<1>) = , a2, a3, a4, . . . 0, a0 + 1, a1, RIGHT( RIGHT( F! ) ) = 0, 0 , a0, a2, a3, a1, a2, a3, . F! = RIGHT( F! + 1 ) + RIGHT( RIGHT( F! ) ) F = a0 + a1 X + a2 X2 + a3 X3 + RIGHT(F + 1) = (F+1) X RIGHT( RIGHT( F ) ) = F X2 F = (F + 1) X + F F = 2 X a0 + a1 X + a2 X2 + a3 X3 + . . . RIGHT(F + 1) = (F+1) X RIGHT( RIGHT( F ) ) = F X2 F = F X + X + F Solve for F. F - FX - FX2 = X F(1-X-X2) = X F = X/(1-X-X2) 2 X What is the Power Series Expansion of x / (1-x-x2) ? Since the bottom is quadratic we can factor it. X / (1-X-X2) = X/(1- X)(1 – (-)-1X) where = “The Golden Ratio” X (1 – X)(1- (--1X) = n=0..∞ ? Linear factors on the bottom Xn (1 + aX1 + a2X2 + … + anXn + …..) (1 + bX1 + b2X2 + … + bnXn + …..) = = = n=0..1 1 (1 – aX)(1-bX) an+1 – bn+1 a- b Xn Geometric Series (Quadratic Form) 1 (1 – X)(1- (--1X) = n=0.. ∞ n+1 – (--1)n+1 5 Xn Geometric Series (Quadratic Form) X (1 – X)(1- (--1X) = n=0.. ∞ n+1 – (--1)n+1 n+1 X 5 Power Series Expansion of F x 0 1 2 3 F0 x F1 x F2 x F3 x 2 1 x x x 2 1 x x i 0 Fi x i 0 i 1 1 i i x 5 i x 0 1 2 3 F0 x F1 x F2 x F3 x 2 1 x x Fi x i 0 The ith Fibonacci number is: i 0 i 1 1 i 5 i References Applied Combinatorics, by Alan Tucker Generatingfunctionology, Herbert Wilf