Generating Functions - MIT OpenCourseWare

2y ago
11 Views
3 Downloads
268.04 KB
13 Pages
Last View : 4d ago
Last Download : 3m ago
Upload by : Mika Lloyd
Transcription

Massachusetts Institute of Technology6.042J/18.062J, Fall ’05: Mathematics for Computer ScienceProf. Albert R. Meyer and Prof. Ronitt RubinfeldCourse Notes, Week 11November 16revised November 23, 2005, 700 minutesGenerating FunctionsGenerating functions are one of the most surprising and useful inventions in Discrete Math.Roughly speaking, generating functions transform problems about sequences into problems aboutfunctions. This is great because we’ve got piles of mathematical machinery for manipulating func tions. Thanks to generating functions, we can apply all that machinery to problems about se quences. In this way, we can use generating functions to solve all sorts of counting problems.There is a huge chunk of mathematics concerning generating functions, so we will only get a tasteof the subject.In these notes, we’ll put sequences in angle brackets to more clearly distinguish them from themany other mathematical expressions floating around.1 Generating FunctionsThe ordinary generating function for the infinite sequence g0 , g1 , g2 , g3 . . . is the power series:G(x) g0 g1 x g2 x2 g3 x3 · · · .Not all generating functions are ordinary, but those are the only kind we’ll consider here.A generating function is a “formal” power series in the sense that we usually regard x as a place holder rather than a number. Only in rare cases will we actually evaluate a generating function byletting x take a real number value, so we generally ignore the issue of convergence.Throughout these notes, we’ll indicate the correspondence between a sequence and its generatingfunction with a double sided arrow as follows: g0 , g1 , g2 , g3 , . . . g0 g1 x g2 x2 g3 x3 · · ·For example, here are some sequences and their generating functions: 0, 0, 0, 0, . . . 0 0x 0x2 0x3 · · · 0 1, 0, 0, 0, . . . 1 0x 0x2 0x3 · · · 1 3, 2, 1, 0, . . . 3 2x 1x2 0x3 · · · 3 2x x2The pattern here is simple: the ith term in the sequence (indexing from 0) is the coefficient of xi inthe generating function.Recall that the sum of an infinite geometric series is:1 z z2 z3 · · · Copyright 2005, Prof. Albert R. Meyer.11 z

2Course Notes, Week 11: Generating FunctionsThis equation does not hold when z 1, but as remarked, we don’t worry about convergenceissues. This formula gives closed form generating functions for a whole range of sequences. Forexample:1 1, 1, 1, 1, . . . 1 x x2 x3 · · · 1 x 1, 1, 1, 1, . . . 1 x x2 x3 x4 · · · 11 x1, a, a2 , a3 , . . . 1 ax a2 x2 a3 x3 · · · 11 ax 1 x2 x4 x6 · · · 11 x2 1, 0, 1, 0, 1, 0, . . . 2Operations on Generating FunctionsThe magic of generating functions is that we can carry out all sorts of manipulations on sequencesby performing mathematical operations on their associated generating functions. Let’s experimentwith various operations and characterize their effects in terms of sequences.2.1 ScalingMultiplying a generating function by a constant scales every term in the associated sequence bythe same constant. For example, we noted above that: 1, 0, 1, 0, 1, 0, . . . 1 x2 x4 x6 · · · 11 x2Multiplying the generating function by 2 gives2 2 2x2 2x4 2x6 · · ·1 x2which generates the sequence: 2, 0, 2, 0, 2, 0, . . . Rule 1 (Scaling Rule). If f0 , f1 , f2 , . . . F (x),then cf0 , cf1 , cf2 , . . . c · F (x).The idea behind this rule is that: cf0 , cf1 , cf2 , . . . cf0 cf1 x cf2 x2 · · · c · (f0 f1 x f2 x2 · · · ) cF (x)

Course Notes, Week 11: Generating Functions2.23AdditionAdding generating functions corresponds to adding the two sequences term by term. For exam ple, adding two of our earlier examples gives:. 11 x 1, 1, 1, 1, 1, 1, . . . 11 x 11 1 x 1 x 1, 2,1,0,1,2,1,0,1,2,1,0,.We’ve now derived two different expressions that both generate the sequence 2, 0, 2, 0, . . . . Theyare, of course, equal:211(1 x) (1 x) 1 x 1 x(1 x)(1 x)1 x2Rule 2 (Addition Rule). If f0 , f1 , f2 , . . . F (x),and g0 , g1 , g2 , . . . G(x),then f0 g0 , f1 g1 , f2 g2 , . . . F (x) G(x).The idea behind this rule is that: f0 g0 , f1 g1 , f2 g2 , . . . (fn gn )xnn 0 fn xnn 0 2.3 gn xnn 0F (x) G(x)Right ShiftingLet’s start over again with a simple sequence and its generating function: 1, 1, 1, 1, . . . 11 xNow let’s right shift the sequence by adding k leading zeros: 0, 0, . . . , 0, 1, 1, 1, . . . xk xk 1 xk 2 xk 3 · · ·k zeroes xk · (1 x x2 x3 · · · )xk1 x

4Course Notes, Week 11: Generating FunctionsEvidently, adding k leading zeros to the sequence corresponds to multiplying the generating func tion by xk . This holds true in general.Rule 3 (Right Shift Rule). If f0 , f1 , f2 , . . . F (x), then: 0, 0, . . . , 0, f0 , f1 , f2 , . . . xk · F (x) k zeroesThe idea behind this rule is that:k zeroes 0, 0, . . . , 0, f0 , f1 , f2 , . . . 2.4 f0 xk f1 xk 1 f2 xk 2 · · · xk · (f0 f1 x f2 x2 f3 x3 · · · ) xk · F (x)DifferentiationWhat happens if we take the derivative of a generating function? As an example, let’s differentiatethe now familiar generating function for an infinite sequence of 1’s. dd1234(1 x x x x · · · ) dxdx 1 x11 2x 3x2 4x3 · · · (1 x)21 1, 2, 3, 4, . . . (1 x)2We found a generating function for the sequence 1, 2, 3, 4, . . . of positive integers!In general, differentiating a generating function has two effects on the corresponding sequence:each term is multiplied by its index and the entire sequence is shifted left one place.Rule 4 (Derivative Rule). If f0 , f1 , f2 , f3 , . . . F (x),then f1 , 2f2 , 3f3 , . . . F (x).The idea behind this rule is that: f1 , 2f2 , 3f3 , . . . f1 2f2 x 3f3 x2 · · ·d (f0 f1 x f2 x2 f3 x3 · · · )dxd F (x)dxThe Derivative Rule is very useful. In fact, there is frequent, independent need for each of dif ferentiation’s two effects, multiplying terms by their index and left shifting one place. Typically,we want just one effect and must somehow cancel out the other. For example, let’s try to find

Course Notes, Week 11: Generating Functions5the generating function for the sequence of squares, 0, 1, 4, 9, 16, . . . . If we could start with thesequence 1, 1, 1, 1, . . . and multiply each term by its index two times, then we’d have the desiredresult: 0 · 0, 1 · 1, 2 · 2, 3 · 3, . . . 0, 1, 4, 9, . . . A challenge is that differentiation not only multiplies each term by its index, but also shifts thewhole sequence left one place. However, the Right Shift Rule 3 tells how to cancel out this un wanted left shift: multiply the generating function by x.Our procedure, therefore, is to begin with the generating function for 1, 1, 1, 1, . . . , differentiate,multiply by x, and then differentiate and multiply by x once more. 1, 1, 1, 1, . . . 1, 2, 3, 4, . . . 0, 1, 2, 3, . . . 1, 4, 9, 16, . . . 0, 1, 4, 9, . . . 11 xd11 dx 1 x(1 x)21x x·2(1 x)2(1 x)dx1 x dx (1 x)2(1 x)31 xx(1 x)x· 3(1 x)(1 x)3Thus, the generating function for squares is:x(1 x)(1 x)32.5ProductsRule 5 (Product Rule). If a0 , a1 , a2 , . . . A(x),and b0 , b1 , b2 , . . . B(x),then c0 , c1 , c2 , . . . A(x) · B(x),wherecn :: a0 bn a1 bn 1 a2 bn 2 · · · an b0 .To understand this rule, letC(x) :: A(x) · B(x) n 0cn xn .

6Course Notes, Week 11: Generating FunctionsWe can evaluate the product A(x) · B(x) by using a table to identify all the cross terms from theproduct of the sums:b0 x0b1 x1b2 x2b3 x3.a0 x0a0 b0 x0a0 b1 x1a0 b2 x2a0 b3 x3.a1 x1a1 b0 x1a1 b1 x2a1 b2 x3.a2 x2a2 b0 x2a2 b1 x3.a3 x3a3 b0 x3.Notice that all terms involving the same power of x lie on a / sloped diagonal. Collecting theseterms together, we find that the coefficient of xn in the product is the sum of all the terms on the(n 1)st diagonal, namely,a0 bn a1 bn 1 a2 bn 2 · · · an b0 .(1)This expression (1) may be familiar from a signal processing course; the sequence c0 , c1 , c2 , . . . isthe convolution of sequences a0 , a1 , a2 , . . . and b0 , b1 , b2 , . . . .3The Fibonacci SequenceSometimes we can find nice generating functions for more complicated sequences. For example,here is a generating function for the Fibonacci numbers: 0, 1, 1, 2, 3, 5, 8, 13, 21, . . . x1 x x2The Fibonacci numbers may seem fairly nasty bunch, but the generating function is simple!We’re going to derive this generating function and then use it to find a closed form for the nthFibonacci number. The techniques we’ll use are applicable to a large class of recurrence equations.3.1Finding a Generating FunctionLet’s begin by recalling the definition of the Fibonacci numbers:f0 0f1 1fn fn 1 fn 2(for n 2)

Course Notes, Week 11: Generating Functions7We can expand the final clause into an infinite sequence of equations. Thus, the Fibonacci numbersare defined by:f0 0f1 1f2 f1 f0f3 f2 f1f4 f3 f2.Now the overall plan is to define a function F (x) that generates the sequence on the left side of theequality symbols, which are the Fibonacci numbers. Then we derive a function that generates thesequence on the right side. Finally, we equate the two and solve for F (x). Let’s try this. First, wedefine:F (x) f0 f1 x f2 x2 f3 x3 f4 x4 · · ·Now we need to derive a generating function for the sequence: 0, 1, f1 f0 , f2 f1 , f3 f2 , . . . One approach is to break this into a sum of three sequences for which we know generating func tions and then apply the Addition Rule: 0,1,0,0,0,0,f0 ,f1 ,f2 ,f3 ,0,0,f0 ,f1 ,f2 ,0, 1 f0 , f1 f0 , f2 f1 , f3 f2 ,. xxF (x)x2 F (x)x xF (x) x2 F (x)This sequence is almost identical to the right sides of the Fibonacci equations. The one blemish isthat the second term is 1 f0 instead of simply 1. However, this amounts to nothing, since f0 0anyway.Now if we equate F (x) with the new function x xF (x) x2 F (x), then we’re implicitly writingdown all of the equations that define the Fibonacci numbers in one fell swoop:F (x) f0 f1x f2x2 f3x3 f4x4 . . . x xF (x) x2 F (x) 0 (1 f0 ) x (f1 f0 ) x2 (f2 f1 ) x3 (f3 f2 ) x4 · · ·Solving for F (x) gives the generating function for the Fibonacci sequence:F (x) x xF (x) x2 F (x)soF (x) x.1 x x2Sure enough, this is the simple generating function we claimed at the outset.

83.2Course Notes, Week 11: Generating FunctionsFinding a Closed FormWhy should one care about the generating function for a sequence? There are several answers,but here is one: if we can find a generating function for a sequence, then we can often find aclosed form for the nth coefficient— which can be pretty useful! For example, a closed form forthe coefficient of xn in the power series for x/(1 x x2 ) would be an explicit formula for the nthFibonacci number.So our next task is to extract coefficients from a generating function. There are several approaches.For a generating function that is a ratio of polynomials, we can use the method of partial fractions,which you learned in calculus. Just as the terms in a partial fractions expansion are easier tointegrate, the coefficients of those terms are easy to compute.Let’s try this approach with the generating function for Fibonacci numbers. First, we factor thedenominator:1 x x2 (1 α1 x)(1 α2 x) where α1 12 (1 5) and α2 12 (1 5). Next, we find A1 and A2 which satisfy:A2xA1 1 x x21 α1 x 1 α2 xWe do this by plugging in various values of x to generate linear equations in A1 and A2 . We canthen find A1 and A2 by solving a linear system. This gives:11 α1 α25 11A2 α1 α25A1 Substituting into the equation above gives the partial fractions expansion of F (x):x1 1 x x25 11 1 α1 x 1 α2 x Each term in the partial fractions expansion has a simple power series given by the geometric sumformula:1 1 α1 x α12 x2 · · ·1 α1 x1 1 α2 x α22 x2 · · ·1 α2 xSubstituting in these series gives a power series for the generating function: 111 F (x) 5 1 α1 x 1 α2 x 1 (1 α1 x α12 x2 · · · ) (1 α2 x α22 x2 · · · ) ,5

Course Notes, Week 11: Generating Functions9soα1n α2n 5 n n 11 51 5 225fn This formula may be scary and astonishing —it’s not even obvious that its value is an integer—but it’s very useful. For example, it provides (via the repeated squaring method) a much moreefficient way to compute Fibonacci numbers than crunching through the recurrence, and it alsoclearly reveals the exponential growth of these numbers.4Counting with Generating FunctionsGenerating functions are particularly useful for solving counting problems. In particular, prob lems involving choosing items from a set often lead to nice generating functions by letting thecoefficient of xn be the number of ways to choose n items.4.1 Choosing Distinct Items from a SetThe generating function for binomial coefficients follows directly from the Binomial Theorem: kkkkkkk 2k k,,,.,, 0, 0, 0, . . . x x ··· x012k012k (1 x)kThus, the coefficient of xn in (1 x)k is the number k of ways to choose n distinct items from a set2of size k. For example, the coefficient of x is 2 , the number of ways to choose 2 items from aset with k elements. Similarly, the coefficient of xk 1 is the number of ways to choose k 1 itemsfrom a size k set, which is zero.4.2Building Generating Functions that CountOften we can translate the description of a counting problem directly into a generating functionfor the solution. For example, we could figure out that (1 x)k generates the number of ways toselect n distinct items from a k element subset without resorting to the Binomial Theorem or evenfussing with binomial coefficients!Here is how. First, consider a single element set {a1 }. The generating function for the number ofways to choose n elements from this set is simply 1 x: we have 1 way to choose zero elements,1 way to choose one element, and 0 ways to choose more than one element. Similarly, the numberof ways to choose n elements from the set {a2 } is also given by the generating function 1 x. Thefact that the elements differ in the two cases is irrelevant.Now here is the the main trick: the generating function for choosing elements from a union of disjoint setsis the product of the generating functions for choosing from each set. We’ll justify this in a moment, but

10Course Notes, Week 11: Generating Functionslet’s first look at an example. According to this principle, the generating function for the numberof ways to choose n elements from the {a1 , a2 } is:(1 x) · (1 x) (1 x)2 1 2x x2 OGF forOGF forOGF for{a1 }{a2 }{a1 , a2 }Sure enough, for the set {a1 , a2 }, we have 1 way to choose zero elements, 2 ways to choose oneelement, 1 way to choose two elements, and 0 ways to choose more than two elements.Repeated application of this rule gives the generating function for choosing n items from a k element set {a1 , a2 , . . . , ak }:(1 x) · (1 x) · · · (1 x) (1 x)k OGF forOGF forOGF forOGF for{a1 }{a2 }{ak }{a1 , a2 , . . . , ak }This is the same generating function that we obtained by using the Binomial Theorem. But thistime around we translated directly from the counting problem to the generating function.We can extend these ideas to a general principle:Rule 6 (Convolution Rule). Let A(x) be the generating function for selecting items from set A, and letB(x) be the generating function for selecting items from set B. If A and B are disjoint, then the generatingfunction for selecting items from the union A B is the product A(x) · B(x).This rule is rather ambiguous: what exactly are the rules governing the selection of items froma set? Remarkably, the Convolution Rule remains valid under many interpretations of selection.For example, we could insist that distinct items be selected or we might allow the same item tobe picked a limited number of times or any number of times. Informally, the only restrictions arethat (1) the order in which items are selected is disregarded and (2) restrictions on the selectionof items from sets A and B also apply in selecting items from A B. (Formally, there must be abijection between n element selections from A B and ordered pairs of selections from A and Bcontaining a total of n elements.)To count the number of ways to select n items from A B, we observe that we can select n itemsby choosing j items from A and n j items from B, where j is any number from 0 to n. This canbe done in aj bn j ways. Summing over all the possible values of j gives a total ofa0 bn a1 bn 1 a2 bn 2 · · · an b0ways to select n items from A B. By the Product Rule, this is precisely the coefficient of xn in theseries for A(x)B(x).4.3 Choosing Items with RepetitionThe first counting problem we considered was the number of ways to select a dozen doughnutswhen five flavors were available. We can generalize this question as follows: in how many wayscan we select n items from a k element set if we’re allowed to pick the same item multiples times?

Course Notes, Week 11: Generating Functions11In these terms, the doughnut problem asks in how many ways we can select n 12 doughnutsfrom the set of k 5 flavors{chocolate, lemon filled, sugar, glazed, plain}where, of course, we’re allowed to pick several doughnuts of the same flavor. Let’s approach thisquestion from a generating functions perspective.Suppose we choose n items (with repetition allowed) from a set containing a single item. Thenthere is one way to choose zero items, one way to choose one item, one way to choose two items,etc. Thus, the generating function for choosing n elements with repetition from a 1 element set is: 1, 1, 1, 1, . . . 1 x x2 x3 · · ·11 xThe Convolution Rule says that the generating function for selecting items from a union of disjointsets is the product of the generating functions for selecting items from each set:1 x 1 1 x 1 ·OGF for{a1 }OGF for{a2 }···1 x 1 OGF for{ak } 1(1 x)k OGF for{a1 , a2 , . . . , ak }Therefore, the generating function for selecting items from a k element set with repetition allowedis 1/(1 x)k .Now the Bookkeeper Rule tells us that the number of ways to select n items with repetition froman k element set is n k 1,nso this is the coefficient of xn in the series expansion of 1/(1 x)k .On the other hand, it’s instructive to derive this coefficient algebraically, which we can do usingTaylor’s Theorem:Theorem 4.1 (Taylor’s Theorem).f (x) f (0) f (0)x f (0) 2 f (0) 3f (n) (0) nx x ··· x ··· .2!3!n!This theorem says that the nth coefficient of 1/(1 x)k is equal to its nth derivative evaluated at 0and divided by n!. And computing the nth derivative turns out not to be very difficult. LetG(x) :: 1 (1 x) k .(1 x)kThen we have:G (x) k(1 x) (k 1)G (x) k(k 1)(1 x) (k 2)G (x) k(k 1)(k 2)(1 x) (k 3)G(n) (x) k(k 1) · · · (k n 1)(1 x) (k n)

12Course Notes, Week 11: Generating FunctionsThus, the coefficient of xn in the generating function is:k(k 1) · · · (k n 1)n!(k n 1)! (k 1)! n! n k 1 .nG(n) (0)/n! So if we didn’t already know the Bookkeeper Rule, we could have proved it using generatingfunctions.5An “Impossible” Counting ProblemSo far everything we’ve done with generating functions we could have done another way. Buthere is an absurd counting problem— really over the top! In how many ways can we fill a bagwith n fruits subject to the following constraints? The number of apples must be even. The number of bananas must be a multiple of 5. There can be at most four oranges. There can be at most one pear.For example, there are 7 ways to form a bag with 6 3105100501These constraints are so complicated that the problem seems hopeless! But let’s see what generat ing functions reveal.Let’s first construct a generating function for selecting apples. We can select a set of 0 apples inone way, a set of 1 apples in zero ways (since the number of apples must be even), a set of 2 applesin one way, a set of 3 apples in zero ways, and so forth. So we have:A(x) 1 x2 x4 x6 · · · 11 x2Similarly, the generating function for selecting bananas is:B(x) 1 x5 x10 x15 · · · 11 x5

Course Notes, Week 11: Generating Functions13Now, we can select a set of 0 oranges in one way, a set of 1 orange in one ways, and so on. However,we can not select more than four oranges, so we have the generating function:O(x) 1 x x2 x3 x4 1 x51 xHere we’re using the geometric sum formula. Finally, we can select only zero or one pear, so wehave:P (x) 1 xThe Convolution Rule says that the generating function for selecting from among all four kinds offruit is:11 1 x5(1 x)1 x2 1 x5 1 x1 (1 x)2 1 2x 3x2 4x3 · · ·A(x)B(x)O(x)P (x) Almost everything cancels! We’re left with 1/(1 x)2 , which we found a power series for earlier:the coefficient of xn is simply n 1. Thus, the number of ways to form a bag of n fruits is justn 1. This is consistent with the example we worked out, since there were 7 different fruit bagscontaining 6 fruits. Amazing!

The ordinary generating function for the infinite sequence g 0,g 1,g 2,g 3. is the power series: G(x) g 0 g 1x g 2x2 g 3x3 ··· . Not all generating functions are ordinary, but those are the only kind we’ll consider here. A

Related Documents:

12.2 Operations on Generating Functions The magic of generating functions is that we can carry out all sorts of manipulations on sequences by performing mathematical operations on their associated generating functions. Let’s experiment with various operations and charact

Unlocking Knowledge, Empowering Minds About MIT OpenCourseWare › MIT OpenCourseWare Free and open educational resource (Syllabi, lecture notes, videos, psets, exams, Java applets ) No credit, degrees, or faculty access 1.5 - 2 million visitors/month (including 10,000 HS students) Publishing 1

PowerBook 145B/80 B1433 MIT 1370 PowerBook Duo 230/ 120 B1432 MIT 2480 ThinkPad 720/160 9552-308 MIT 3245 ThinkPad 720C/160 9552-30J MIT 4540 DeskJet 500 HP-C2106A MIT 370 LaserJet lIP Plus HP-C2007A MIT 790 Value Bundle 4MB RAM/120MB hard disk MIT 1215 Value Bundle

Moment generating function Power series expansion Convolution theorem Characteristic function Characteristic function and moments Convolution and unicity Inversion Joint characteristic functions 2/60 Probability generating function Let X be a nonnegative integer-valued random variable. The probability generating function of X is defined to be .

1.50 -1.00 -0.50 0.00 0.50 1.00 1.50 2.00 2.50 3.00 3.50 4.00 We want to estimate the worst 1% of the possible outcomes. Developed for educational use at MIT and for publication through MIT OpenCourseware. No investme

74 Chapter 4: Generating Functions This chapter looks at Probability Generating Functions (PGFs) for discrete random variables.

djain@mit.edu, sra@mit.edu, jguo01@risd.edu, rvictor@mit.edu, raywu22@mit.edu, juschiu@mit.edu, geek@mit.edu ABSTRACT We present Amphibian, a simulator to experience scuba diving virtually in a terrestrial setting. While existing diving simulators mostly focus on visual and aural di

1 "# %!&'()* ,-!./%!01 0/1 &!23!-# ! 4 1 ,/-/5!6 ,-/5!7 /5-#!41'8 (-9!!!!"# %&'()*" ( "# ,"--' )( ./'0(' ," )0,) &(1 ! "# %&'! ()*! ,-!).!/01!021,!