Generating Functions: Transforming Sequence Problems into Functional Equations, Slides of Mathematics

Learn about generating functions, their role in discrete math, and how they transform sequence problems into functional equations. Discover operations like scaling, addition, and differentiation, and explore examples of generating functions for various sequences. Understand the connection between generating functions and counting problems.

Typology: Slides

2012/2013

Uploaded on 04/27/2013

netuu
netuu 🇮🇳

4.7

(3)

109 documents

1 / 13

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Generating Functions
Generating functions are one of the most surprising, useful, and clever inventions in
discrete math. Roughly speaking, generating functions transform problems about se-
quences into problems about functions. This is great because we’ve got piles of mathe-
matical machinery for manipulating functions. Thanks to generating functions, we can
apply all that machinery to problems about sequences. 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 taste of the subject.
In this lecture, we’ll put sequences in angle brackets to more clearly distinguish them
from the many other mathemtical expressions floating around.
1 Generating Functions
The ordinary generating function for the infinite sequence g0, g1, g2, g3 ... is the formal
power series:
3
G(x)= g0 +g1x+g2x 2 +g3x +···
A generating function is a “formal” power series in the sense that we usually regard x
as a placeholder rather than a number. Only in rare cases will we let xbe a real number
and actually evaluate a generating function, so we can largely forget about questions of
convergence. Not all generating functions are ordinary, but those are the only kind we’ll
consider here.
Throughout the lecture, we’ll indicate the correspondence between a sequence and its
generating function with a double-sided arrow as follows:
2 3
+g3xg0, g1, g2, g3,... g0 +g1x+g2x +···
For example, here are some sequences and their generating functions:
3
0,0,0,0, . . . 0+0x+ 0x 2 + 0x = 0 + ···
3
1,0,0,0, . . . 1+0x+ 0x 2 + 0x = 1 + ···
3
3,2,1,0, . . . 3+2x+ 1x 2 + 0x = 3 + 2x+x 2
+···
The pattern here is simple: the i-th term in the sequence (indexing from 0) is the coefficient
of xi in the generating function.
Recall that the sum of an infinite geometric series is:
1
3
1+z+z 2 +z =+ ··· 1z
Docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd

Partial preview of the text

Download Generating Functions: Transforming Sequence Problems into Functional Equations and more Slides Mathematics in PDF only on Docsity!

Generating functions are one of the most surprising, useful, and clever inventions in

discrete math. Roughly speaking, generating functions transform problems about se

quences into problems about functions. This is great because we’ve got piles of mathe

matical machinery for manipulating functions. Thanks to generating functions, we can

apply all that machinery to problems about sequences. 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 taste of the subject.

In this lecture, we’ll put sequences in angle brackets to more clearly distinguish them

from the many other mathemtical expressions floating around.

1 Generating Functions

The ordinary generating function for the infinite sequence �g 0 , g 1 , g 2 , g 3... � is the formal

power series: 3 G(x) = g 0 + g 1 x + g 2 x 2

  • g 3 x + · · ·

A generating function is a “formal” power series in the sense that we usually regard x

as a placeholder rather than a number. Only in rare cases will we let x be a real number

and actually evaluate a generating function, so we can largely forget about questions of

convergence. Not all generating functions are ordinary, but those are the only kind we’ll

consider here.

Throughout the lecture, we’ll indicate the correspondence between a sequence and its

generating function with a doublesided arrow as follows:

2 3 �g 0 , g 1 , g 2 , g 3 ,... � ←→ g 0 + g 1 x + g 2 x + g 3 x + · · ·

For example, here are some sequences and their generating functions:

3 � 0 , 0 , 0 , 0 ,... � ←→ 0 + 0x + 0x 2

  • 0x + · · ·= 0 3 � 1 , 0 , 0 , 0 ,... � ←→ 1 + 0x + 0x 2
  • 0x + · · ·= 1 3 � 3 , 2 , 1 , 0 ,... � ←→ 3 + 2x + 1x 2
  • 0x = 3 + 2x + x 2
  • · · ·

The pattern here is simple: the ith term in the sequence (indexing from 0) is the coefficient

of xi^ in the generating function.

Recall that the sum of an infinite geometric series is:

1 + z + z 2

  • z + · · · = 1 − z

This equation does not hold when | |z ≥ 1 , but once again we won’t worry about conver

gence issues. This formula gives closedform generating functions for a whole range of

sequences. For example:

� 1 , 1 , 1 , 1 ,... � ←→ 1 + x + x^2 + x 3 + · · · = 1 − x

� 1 , − 1 , 1 , − 1 ,... � ←→ 1 − x + x^2 − x^3 + x − · · · = 1 + x

� 1 , a, a 2 , a ,... � 1 + ax + a 2 x 2

  • a x = 1 − ax

3

  • · · ·

� 1 , 0 , 1 , 0 , 1 , 0 ,... � 1 + x^2 + x + x^6 = 1 − x^2

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 func

tions. Let’s experiment with various operations and characterize their effects in terms of

sequences.

2.1 Scaling

Multiplying a generating function by a constant scales every term in the associated se

quence by the same constant. For example, we noted above that:

� 1 , 0 , 1 , 0 , 1 , 0 ,... � ←→ 1 + x 2

  • x + x = 1 − x^2

Multiplying the generating function by 2 gives

= 2 + 2x 2

  • 2x 4
  • 2x 6 1 − x^2

which generates the sequence:

� 2 , 0 , 2 , 0 , 2 , 0 ,... �

Rule 1 (Scaling Rule). If

�f 0 , f 1 , f 2 ,... � ←→ F ( x),

then

�cf 0 , cf 1 , cf 2 ,... � ←→ c ·F (x).

2.3 Right Shifting

Let’s start over again with a simple sequence and its generating function:

1 � 1 , 1 , 1 , 1 ,... � ←→ 1 − x

Now let’s rightshift the sequence by adding k leading zeros:

� 0 , 0 ,... , 0 , 1 , 1 , 1 ,... � xk^ + x^ k +1^ + xk +2^ + xk+ � �� �

k zeroes k 3 = x · (1 + x + x 2

  • x + · · · )

x^ k

1 − x

Evidently, adding k leading zeros to the sequence corresponds to multiplying the gener

ating function by xk. This holds true in general.

Rule 3 (RightShift Rule). If �f 0 , f 1 , f 2 ,... � ←→ F (x), then:

� 0 , 0 ,... , 0 , f 0 , f 1 , f 2 ,... � ←→ x k F (x) � �� �

k zeroes

Proof.

k zeroes

f 0 x k

  • f 1 x k+
  • f 2 x k+ � 0 , 0 ,... , 0 , f 0 , f 1 , f 2 ,... � ←→ + · · · 3 = x k · (f 0 + f 1 x + f 2 x 2
  • f 3 x + · · · ) k = x ·F (x)

2.4 Differentiation

What happens if we take the derivative of a generating function? As an example, let’s

differentiate the nowfamiliar generating function for an infinite sequence of 1’s.

d d 1 (1 + x + x 2

  • x 3
  • x 4 = dx

dx 1 − x

3 1 1 + 2x + 3x 2

  • 4x + · · · = (^2) (1 − x) 1 � 1 , 2 , 3 , 4 ,... � ←→ (1 − x)^2

We found a generating function for the sequence � 1 , 2 , 3 , 4 ,... �!

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

�f 0 , f 1 , f 2 , f 3 ,... � ←→ F (x),

then � �f 1 , 2 f 2 , 3 f 3 ,... � ←→ F(x).

Proof.

�f 1 , 2 f 2 , 3 f 3 ,... � = f 1 + 2f 2 x + 3f 3 x 2

  • · · ·

d = (f 0 + f 1 x + f 2 x^2 + f 3 x^3 + dx

d = F (x) dx

The Derivative Rule is very useful. In fact, there is frequent, independent need for

each of differentiation’s two effects, multiplying terms by their index and leftshifting one

place. Typically, we want just one effect and must somehow cancel out the other. For ex

ample, let’s try to find the generating function for the sequence of squares, � 0 , 1 , 4 , 9 , 16 ,... �.

If we could start with the sequence � 1 , 1 , 1 , 1 ,... � and multiply each term by its index two

times, then we’d have the desired result:

A challenge is that differentiation not only multiplies each term by its index, but also

shifts the whole sequence left one place. However, the RightShift Rule 3 tells how to

cancel out this unwanted leftshift: 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 − x d 1 1 � 1 , 2 , 3 , 4 ,... � ←→ = dx 1 − x (1 − x)^2 1 x � 0 , 1 , 2 , 3 ,... � ←→ x · = (1 − x)^2 (1 − x)^2 d x 1 + x � 1 , 4 , 9 , 16 ,... � ←→ = dx (1 − x)^2 (1 − x)^3

1 + x x(1 + x) � 0 , 1 , 4 , 9 ,... � ←→ x · = (1 − x)^3 (1 − x)^3

Thus, the generating function for squares is:

x(1 + x)

(1 − x)^3

Now we need to derive a generating function for the sequence:

� 0 , 1 , f 1 + f 0 , f 2 + f 1 , f 3 + f 2 ,... �

One approach is to break this into a sum of three sequences for which we know generating

functions and then apply the Addition Rule:

� 0 , 1 , 0 , 0 , 0 ,... � ←→ x � 0 , f 0 , f 1 , f 2 , f 3 ,... � ←→ xF (x)

  • � 0 , 0 , f 0 , f 1 , f 2 ,... � ←→ x 2 F (x) 0 , 1 + f 0 , f 1 + f 0 , f 2 + f 1 , f 3 + f 2 ,... � ←→ x + xF (x) + x^2 F (x)

This sequence is almost identical to the right sides of the Fibonacci equations. The one

blemish is that the second term is 1 + f 0 instead of simply 1. However, this amounts to

nothing, since f 0 = 0 anyway.

Now if we equate F (x) with the new function x+xF (x)+x^2 F (x), then we’re implicitly

writing down all of the equations that define the Fibonacci numbers in one fell swoop:

F (x) = f 0 + f 1 x + f 2 x^2 + f 3 x^3 + f 4 x^4 +...

x + xF (x) + x^2 F (x) = 0 + (1 + f 0 ) x + (f 1 + f 0 ) x^2 + (f 2 + f 1 ) x^3 + (f 3 + f 2 ) x^4 + · · ·

Solving for F (x) gives the generating function for the Fibonacci sequence:

F (x) = x + xF (x) + x 2 F (x) x ⇒ F (x) = 1 − x − x^2

Sure enough, this is the simple generating function we claimed at the outset!

3.2 Finding a Closed Form

Why 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 a closed form for the nth coefficient— which can be pretty useful! For example,

a closed form for the coefficient of xn^ in the power series for x/(1 − x − x^2 ) would be an

explicit formula for the nth Fibonacci number.

So our next task is to extract coefficients from a generating function. There are sev

eral 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 par

tial fractions expansion are easier to integrate, the coefficients of those terms are easy to

compute.

Let’s try this approach with the generating function for Fibonacci numbers. First, we

factor the denominator:

1 − x − x 2 = (1 − α 1 x)(1 − α 2 x)

1 1 where α 1 = 2 (1 +

  1. and α 2 = 2 (1 −

5). Next, we find A 1 and A 2 which satisfy:

x A 1 A 2 = + 1 − x − x^2 1 − α 1 x 1 − α 2 x

We do this by plugging in various values of x to generate linear equations in A 1 and A 2.

We can then find A 1 and A 2 by solving a linear system. This gives:

1 1 A 1 = = α 1 − α 2

A 2 = =

α 1 − α 2

Substituting into the equation above gives the partial fractions expansion of F (x):

x 1 1 1

1 − x − x^2

5 1 −^ α 1 x^

1 − α 2 x

Each term in the partial fractions expansion has a simple power series given by the geo

metric sum formula:

(^1 ) = 1 + α 1 x + α 2 1 x 1 − α 1 x

= 1 + α 2 x + α 2 2 x 1 − α 2 x

Substituting in these series gives a power series for the generating function:

1 1 1 F (x) = √ 5 1 −^ α 1 x^

1 − α 2 x 1 �^2 2 � = √ 5

(1 + α 1 x + α 2 1 x^ +^ · · ·^ )^ −^ (1 +^ α^2 x^ +^ α 2 x

2

  • · · · )

αn 1 − αn fn = √ 5

2 ⇒

�� � 1 −

n � �n 1 1 +

This is the same scary formula for the nth Fibonacci number that we found using the

method for solving linear recurrences. And this alternate approach sheds some light on

that method. In particular, the strange rules involving repeated roots of the characteristic

equation are reflections of the rules for finding a partial fractions expansion!

4 Counting with Generating Functions

Generating functions are particularly useful for solving counting problems. In particular,

problems involving choosing items from a set often lead to nice generating functions.

When generating functions are used in this way, the coefficient of x n is the number of

ways to choose n items.

This is the same generating function that we obtained by using the Binomial Theorem.

But this time around we translated directly from the counting problem to the generating

function.

We can extend these ideas to a general principle:

Rule 5 (Convolution Rule). Let A(x) be the generating function for selecting items from set A,

and let B(x) be the generating function for selecting items from set B. If A and B are disjoint,

then the generating function 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 from a set? Remarkably, the Convolution Rule remains valid under many inter

pretations of selection. For example, we could insist that distinct items be selected or

we might allow the same item to be picked a limited number of times or any number of

times. Informally, the only restrictions are that (1) the order in which items are selected

is disregarded and (2) restrictions on the selection of items from sets A and B also apply

in selecting items from A ∪ B. (Formally, there must be a bijection between nelement

selections from A ∪ B and ordered pairs of selections from A and B containing a total of

n elements.)

Proof. Define:

∞ ∞ ∞ A(x) = anxn^ , B(x) = bnxn^ , C(x) = A( x) ·B(x) = cnxn^. n=0 n=0 n=

Let’s first evaluate the product A(x) ·B(x) and express the coefficient cn in terms of the

a and b coefficients. We can tabulate all of the terms in this product in a table:

b 0 x^0 b 1 x^1 b 2 x^2 b 3 x^3...

a 0 x 0 a 0 b 0 x 0 a 0 b 1 x 1 a 0 b 2 x 2 a 0 b 3 x 3

...

a 1 x 1 a 1 b 0 x 1 a 1 b 1 x 2 a 1 b 2 x 3

...

a 2 x^2 a 2 b 0 x^2 a 2 b 1 x^3...

a 3 x^3 a 3 b 0 x^3...

Notice that all terms involving the same power of x lie on a /sloped diagonal. Collecting

these terms together, we find that the coefficient of x n in the product is:

cn = a 0 bn + a 1 bn− 1 + a 2 b (^) n− 2 + · · ·+ anb 0

Now we must show that this is also the number of ways to select n items from A ∪ B.

In general, we can select a total of n items from A ∪ B by choosing j items from A and

n − j items from B, where j is any number from 0 to n. This can be done in aj bn−j ways.

Summing over all the possible values of j gives a total of

a 0 bn + a 1 bn− 1 + a 2 bn− 2 + · · ·+ anb 0

ways to select n items from A ∪ B. This is precisely the value of cn computed above.

The expression cn = a 0 bn +a 1 bn− 1 +a 2 b (^) n− 2 +· · ·+anb 0 may be familiar from a signal pro

cessing course; the sequence �c 0 , c 1 , c 2 ,... � is the convolution of sequences �a 0 , a 1 , a 2 ,... �

and �b 0 , b 1 , b 2 ,... �.

4.3 Choosing Items with Repetition

The first counting problem we considered asked for the number of ways to select a dozen

doughnuts when there were five varieties available. We can generalize this question as

follows: in how many ways can we select k items from an nelement set if we’re allowed

to pick the same item multiples times? In these terms, the doughnut problem asks in how

many ways we can select a dozen doughnuts from the set:

{chocolate, lemonfilled, sugar, glazed, plain}

if we’re allowed to pick several doughnuts of the same variety. Let’s approach this ques

tion from a generating functions perspective.

Suppose we choose n items (with repetition allowed) from a set containing a single

item. Then there 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 1element set is:

3 � 1 , 1 , 1 , 1 ,... � 1 + x + x 2 ←→ + x +· · · 1 = 1 − x

The Convolution Rule says that the generating function for selecting items from a

union of disjoint sets is the product of the generating functions for selecting items from

each set: 1 1 1 1 = 1 − x

1 − x

1 − x (1 − x)n � �� � � �� � � �� � (^) � �� �

OGF for OGF for OGF for (^) OGF for {a 1 } {a 2 } {an} (^) {a 1 , a 2 ,... , an}

Therefore, the generating function for selecting items from a nelement set with repetition

allowed is 1 /(1 − x)n^.

  • 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 fruits:

Apples 6 4 4 2 2 0 0 Bananas 0 0 0 0 0 5 5 Oranges 0 2 1 4 3 1 0 Pears 0 0 1 0 1 0 1

These constraints are so complicated that the problem seems hopeless! But let’s see what

generating functions reveal.

Let’s first construct a generating function for selecting apples. We can select a set of

0 apples in one way, a set of 1 apples in zero ways (since the number of apples must be

even), a set of 2 applies in one way, a set of 3 apples in zero ways, and so forth. So we

have:

4 6 1 A(x) = 1 + x 2

  • x + x + · · · = 1 − x^2

Similarly, the generating function for selecting bananas is:

B(x) = 1 + x 5

  • x + x + · · · = 1 − x^5

Now, 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 + x^2 + x^3 + x^4 = 1 −^ x

5

1 − x

Here we’re using the geometric sum formula. Finally, we can select only zero or one pear,

so we have:

P (x) = 1 + x

The Convolution Rule says that the generating function for selecting from among all

four kinds of fruit is:

1 1 A(x)B(x)O(x)P (x) =

1 − x^5 (1 + x) 1 − x^2 1 − x^5 1 − x 1 = (1 − x)^2 3 = 1 + 2x + 3x 2

  • 4x + · · ·

Almost everything cancels! We’re left with 1 /(1 − x)^2 , which we found a power series for

earlier: the coefficient of x n is simply n + 1. Thus, the number of ways to form a bag of n

fruits is just n + 1. This is consistent with the example we worked out, since there were 7

different fruit bags containing 6 fruits. Amazing!