0 Voti positivi0 Voti negativi

33 visualizzazioni35 pagineSolving Recurrence Equations

Sep 05, 2014

© © All Rights Reserved

PDF, TXT o leggi online da Scribd

Solving Recurrence Equations

© All Rights Reserved

33 visualizzazioni

Solving Recurrence Equations

© All Rights Reserved

- Hidden Figures: The American Dream and the Untold Story of the Black Women Mathematicians Who Helped Win the Space Race
- Hidden Figures Young Readers' Edition
- The Law of Explosive Growth: Lesson 20 from The 21 Irrefutable Laws of Leadership
- The Art of Thinking Clearly
- The E-Myth Revisited: Why Most Small Businesses Don't Work and
- The Wright Brothers
- The Other Einstein: A Novel
- State of Fear
- State of Fear
- The Power of Discipline: 7 Ways it Can Change Your Life
- The Kiss Quotient: A Novel
- The 10X Rule: The Only Difference Between Success and Failure
- Being Wrong: Adventures in the Margin of Error
- Algorithms to Live By: The Computer Science of Human Decisions

Sei sulla pagina 1di 35

The analysis of recursive algorithms is not as straight forward as it is for iterative algorithms. Ordinarily, however, it is not

difficult to represent the time complexity of a recursive algorithm by a recurrence equation. The recurrence equation must then

be solved to determine the time complexity. We discuss techniques for solving such equations and for using the solutions in

the analysis of recursive algorithms.

B.1 Solving Recurrences Using Induction

Mathematical induction is reviewed in Appendix A. Here we show how it can be used to analyze some recursive algorithms.

We consider first a recursive algorithm that computes n!.

Algorithm B.1: Factorial

Problem: Determine n! = n (n 1) (n 2) (3) (2) (1) when n 1.

0! = 1

Inputs: a nonnegative integer n.

Outputs: n!.

int fact ( int n)

{

if ( n == 0)

return 1;

else

return n * fact ( n - 1) ;

}

To gain insight into the efficiency of this algorithm, let's determine how many times this function does the multiplication

instruction for each value of n. For a given n, the number of multiplications done is the number done when fact (n 1) is

computed plus the one multiplication done when n is multiplied by fact (n 1). If we represent the number of multiplications

done for a given value of n by t

n

, we have established that

An equation such as this is called a recurrence equation because the value of the function at n is given in terms of the value of

the function at a smaller value of n. A recurrence by itself does not represent a unique function. We must also have a starting

point, which is called an initial condition. In this algorithm, no multiplications are done when n = 0. Therefore, the initial

condition is

We can compute t

n

for larger values of n as follows:

Continuing in this manner gives us more and more values of t

n

, but it does not enable us to compute t

n

, for an arbitrary n

without starting at 0. We need an explicit expression for t

n

. Such an expression is called a solution to the recurrence equation.

Recall that it is not possible to find a solution using induction. Induction can only verify that a candidate solution is correct.

(Constructive induction, which is discussed in Section 8.5.4, can help us discover a solution.) We can obtain a candidate

solution to this recurrence by inspecting the first few values. An inspection of the values just computed indicates that

is the solution. Now that we have a candidate solution, we can use induction to try to prove that it is correct.

Induction base: For n = 0,

Induction hypothesis: Assume, for an arbitrary positive integer n, that

Induction step: We need to show that

If we insert n + 1 in the recurrence, we get

This completes the induction proof that our candidate solution t

n

is correct. Notice that we highlight the terms that are equal by

the induction hypothesis. We often do this in induction proofs to show where the induction hypothesis is being applied.

There are two steps in the analysis of a recursive algorithm. The first step is determining the recurrence; the second step is

solving it. Our purpose here is to show how to solve recurrences. Determining the recurrences for the recursive algorithms in

this text is done when we discuss the algorithms. Therefore, in the remainder of this appendix we do not discuss algorithms;

rather, we simply take the recurrences as given. We now present more examples of solving recurrences using induction.

Example B.1

Consider the recurrence

The first few values are

It appears that

We use induction to prove that this is correct.

Induction base: For n = 1,

Induction hypothesis: Assume, for an arbitrary n > 0 and n a power of 2, that

Induction step: Because the recurrence is only for power of 2, the next value to consider after n is 2n. Therefore, we need to

show that

If we insert 2n in the recurrence, we get

Example B.2

Consider the recurrence

The first few values are

It appears that

We use induction to prove that this is correct.

Induction base: For n = 1,

Induction hypothesis: Assume, for an arbitrary n > 0 and n a power of 2, that

Induction step: We need to show that

If we insert 2n in the recurrence, we get

This completes the induction proof. Finally, because

the solution to this recurrence is usually given as

Example B.3

Consider the recurrence

The first few values are

There is no obvious candidate solution suggested by these values. As mentioned earlier, induction can only verify that a

solution is correct. Because we have no candidate solution, we cannot use induction to solve this recurrence. However, it can

be solved using the technique discussed in the next section.

B.2 Solving Recurrences Using the Characteristic Equation

We develop a technique for determining the solutions to a large class of recurrences.

B.2.1 Homogeneous Linear Recurrences

Such a recurrence is called "linear" because every term t

i

appears only to the first power. That is, there are no terms such as

t

2

ni

, t

ni

t

nj

, and so on. However, there is the additional requirement that there be no terms t

c(ni)

, where c is a positive

constant other than 1. For example, there may not be terms such as t

n/2

, t

3(n4)

, etc. Such a recurrence is called "homogeneous"

because the linear combination of the terms is equal to 0.

Example B.4

The following are homogeneous linear recurrence equations with constant co-efficients:

Example B.5

The Fibonacci sequence, which is discussed in Subsection 1.2.2, is defined as follows:

If we subtract t

n1

and t

n2

from both sides, we get

which shows that the Fibonacci sequence is defined by a homogeneous linear recurrence.

Next we show how to solve a homogeneous linear recurrence.

Example B.6

Suppose we have the recurrence

Definition A recurrence of the form

where k and the a

i

terms are constants, is called a homogeneous linear recurrence equation with constant

coefficients.

Notice that if we set

then

Therefore, t

n

= r

n

is a solution to the recurrence if r is a root of

Because

the roots are r = 0, and the roots of

These roots can be found by factoring:

The roots are r = 3 and r = 2. Therefore,

are all solutions to the recurrence. We verify this for 3

n

by substituting it into the left side of the recurrence, as follows:

With this substitution, the left side becomes

which means that 3

n

is a solution to the recurrence.

We have found three solutions to the recurrence, but we have more solutions, because if 3

n

and 2

n

are solutions, then so is

where c

1

and c

2

are arbitrary constants. This result is obtained in the exercises. Although we do not show it here, it is possible

to show that these are the only solutions. This expression is therefore the general solution to the recurrence. (By taking c

1

= c

2

= 0, the trivial solution t

n

= 0 is included in this general solution.) We have an infinite number of solutions, but which one is

the answer to our problem? This is determined by the initial conditions. Recall that we had the initial conditions

These two conditions determine unique values of c

1

and c

2

as follows. If we apply the general solution to each of them, we get

the following two equations in two unknowns:

These two equations simplify to

The solution to this system of equations is c

1

= 1 and c

2

= 1. Therefore, the solution to our recurrence is

If we had different initial conditions in the preceding example, we would get a different solution. A recurrence actually

represents a class of functions, one for each different assignment of initial conditions. Let's see what function we get if we use

the initial conditions

with the recurrence given in Example B.6. Applying the general solution in Example B.6 to each of these conditions yields

These two equations simplify to

The solution to this system is c

1

= 0 and c

2

= 1. Therefore, the solution to the recurrence with these initial conditions is

Equation B.1 in Example B.6 is called the characteristic equation for the recurrence. In general, this equation is defined as

follows.

The value of r

0

is simply 1. We write the term as r

0

to show the relationship between the characteristic equation and the

recurrence.

Definition The characteristic equation for the homogenous linear recurrence equation with constant coefficients

is defined as

Example B.7

The characteristic equation for the recurrence appears below it:

We use an arrow to show that the order of the characteristic equation is k (in this case, 2).

The steps used to obtain the solution in Example B.6 can be generalized into a theorem. To solve a homogeneous linear

recurrence with constant coefficients, we need only refer to the theorem. The theorem follows, and its proof appears near the

end of this appendix.

Theorem B.1

Let the homogeneous linear recurrence equation with constant coefficients

be given. If its characteristic equation

has k distinct solutions r

1

, r

2

, , r

k

, then the only solutions to the recurrence are

where the c

i

terms are arbitrary constants.

The values of the k constants c

i

are determined by the initial conditions. We need k initial conditions to uniquely determine k

constants. The method for determining the values of the constants is demonstrated in the following examples.

Example B.8

We solve the recurrence

1. Obtain the characteristic equation:

2. Solve the characteristic equation:

The roots are r = 4 and r = 1.

3. Apply Theorem B.1 to get the general solution to the recurrence:

4. Determine the values of the constants by applying the general solution to the initial conditions:

These values simplify to

The solution to this system is c

1

= 1/5 and c

2

= 1/5.

5. Substitute the constants into the general solution to obtain the particular solution:

Example B.9

We solve the recurrence that generates the Fibonacci sequence:

1. Obtain the characteristic equation:

2. Solve the characteristic equation:

From the formula for the solution to a quadratic equation, the roots of this characteristic equation are

3. Apply Theorem B.1 to get the general solution to the recurrence:

4. Determine the values of the constants by applying the general solution to the initial conditions:

These equations simplify to

Solving this system yields

5. Substitute the constants into the general solution to obtain the particular solution:

Although Example B.9 provides an explicit formula for the nth Fibonacci term, it has little practical value, because the degree

of precision necessary to represent increases as n increases.

Theorem B.1 requires that all k roots of the characteristic equation be distinct. The theorem does not allow a characteristic

equation of the following form:

Because the term r 2 is raised to the third power, 2 is called a root of multiplicity 3 of the equation. The following theorem

allows for a root to have a multiplicity. The proof of the theorem appears near the end of this appendix.

Theorem B.2

Let r be a root of multiplicity m of the characteristic equation for a homogeneous linear recurrence with constant coefficients.

Then

are all solutions to the recurrence. Therefore, a term for each of these solutions is included in the general solution (as given in

Theorem B.1) to the recurrence.

Example applications of this theorem follow.

Example B.10

We solve the recurrence

1. Obtain the characteristic equation:

2. Solve the characteristic equation:

The roots are r = 1 and r = 3, and r = 3 is a root of multiplicity 2.

3. Apply Theorem B.2 to get the general solution to the recurrence:

We have included terms for 3

n

and n3

n

because 3 is a root of multiplicity 2.

4. Determine the values of the constants by applying the general solution to the initial conditions:

These values simply to

Solving this system yields c

1

= 1, c

2

= 1, and c

3

=

5. Substitute the constants into the general solution to obtain the particular solution:

Example B.11

We solve the recurrence

1. Obtain the characteristic equation:

2. Solve the characteristic equation:

The roots are r = 3 and r = 1, and the root 1 has multiplicity 2.

3. Apply Theorem B.2 to obtain the general solution to the recurrence:

4. Determine the values of the constants by applying the general solution to the initial conditions:

These equations simplify to

Solving this system yields c

1

= 0, c

2

= 1, and c

3

= 1.

5. Substitute the constants into the general solution to obtain the particular solution:

B.2.2 Nonhomogeneous Linear Recurrences

Definition A recurrence of the form

where k and the a

i

terms are constant and f(n) is a function other than the zero function, is called a

nonhomogeneous linear recurrence equation with constant coefficients.

By the zero function, we mean the function f(n) = 0. If we used the zero function, we would have a homogeneous linear

recurrence equation. There is no known general method for solving a nonhomogeneous linear recurrence equation. We develop

a method for solving the common special case

where b is a constant and p(n) is a polynomial in n.

Example B.12

The recurrence

is an example of Recurrence B.2 in which k = 1, b = 4, and p(n) = 1.

Example B.13

The recurrence

is an example of Recurrence B.2 in which k=1, b=4, and p(n)= 8n+7.

The special case shown in Recurrence B.2 can be solved by transforming it into a homogeneous linear recurrence. The next

sample illustrates how this is done.

Example B.14

We solve the recurrence

The recurrence is not homogeneous because of term 4

n

on the right. We can get rid of that term as follows:

1. Replace n with n1 in the original recurrence so that the recurrence is expressed with 4

n1

on the right:

2. Divide the original recurrence by 4 so that the recurrence is expressed in another way with 4

n1

on the right:

3. Our original recurrence must have the same solutions as these versions of it. Therefore, it must also have the same

solutions as their differnce. This means we can get rid of the term 4

n1

by substracting the recurrence obtained in Step 1

from the recurrence obtained in Step 2. The result is

We can multiply by 4 to get rid of the fractions:

This is a homogeneous linear recurrence equation, which means that it can be solved by applying Theorem B.1. That is, we

solve the characteristic equation

obtain the general solution

and use the initial conditions t

o

= 0 and t

1

= 4 to determine the particular solution:

In Example B.14, the general solution has the terms

The first term comes from the characteristic equation that would be obtained if the recurrence were homogeneous, whereas the

second term comes from the nonhomogeneous part of the recurrencenamely, b. The polynomial p(n) in this example equals

1. When this is not the case, the manipulations necessary to transform the recurrence into a homogeneous one are more

complex. However, the outcome is simply to give b a multiplicity in the characteristic equation for the resultant homogeneous

linear recurrence. This result is given in the theorem that follows. The theorem is stated without proof. The proof would follow

steps similar to those in Example B.14.

Theorem B.3

A nonhomogeneous linear recurrence of the form

can be transformed into a homogeneous linear recurrence that has the characteristic equation

where d is the degree of p(n). Notice that the characteristic equation is composed of two parts:

1. The characteristic equation for the corresponding homogeneous recurrence

2. A term obtained from the nonhomogeneous part of the recurrence

If there is more than one term like b

n

p(n) on the right side, each one contributes a term to the characteristic equation.

Before applying this theorem, we recall that the degree of a polynomial p(n) is the highest power of n. For example,

Now let's apply Theorem B.3.

Example B.15

We solve the recurrence

1. Obtain the characteristic equation for the corresponding homogeneous equation:

2. Obtain a term from the nonhomogeneous part of the recurrence:

The term from the nonhomogeneous part is

3. Apply Theorem B.3 to obtain the characteristic equation from the terms obtained in Steps 1 and 2. The characteristic

equation is

After obtaining the characteristic equation, proceed exactly as in the linear homogeneous case:

4. Solve the characteristic equation:

The roots are r = 3, and the root r = 4 has multiplicity 2.

5. Apply Theorem B.2 to get the general solution to the recurrence:

We have three unknows, but only two initial conditions. In this case we must find another initial condition by computing the

value of the recurrence at the next-largest value of n. In this case, that value is 2. Because

and t

1

= 12,

In the exercises you are asked to (6) determine the values of the constants and (7) substitute the constants into the general

solution to obtain

Example B.16

We solve the recurrence

1. Obtain the characteristic equation for the corresponding homogeneous recurrence:

2. Obtain a term from the nonhomogeneous part of the recurrence:

The term is

3. Apply Theorem B.3 to obtain the characteristic equation from the terms obtained in Steps 1 and 2. The characteristic

equation is

4. Solve the characteristic equation:

The root is r = 1, and it has a multiplicity of 3.

5. Apply Theorem B.2 to get the general solution to the recurrence:

We need two more initial conditions:

In the excercise you are asked to (6) determine the values of the constants and (7) substitute the constants into the

general solution to obtain

Example B.17

We solve the recurrence

1. Determine the characteristic equation for the corresponding homogeneous recurrence:

2. This is a case in which there are two terms on the right. As Theorem B.3 states, each term contributes to the

characteristic equation, as follows:

The two terms are

3. Apply Theorem B.3 to obtain the characteristic equation from all the terms:

You are asked to complete this problem in the exercises.

B.2.3 Change of Variables (Domain Transformations)

Sometimes a recurrence that is not in the form that can be solved by applying Theorem B.3 can be solved by performing a

change of variables to transform it into a new recurrence that is in that form. The technique is illustrated in the following

examples. In these examples, we use T(n) for the original recurrence, because t

k

is used for the new recurrence. The notation T

(n) means the same things as t

n

namely, that a unique number is associated with each value of n.

Example B.18

We solve the recurrence

Recall that we already solved this recurrence using induction in Section B.1. We solve it again to illustrate the change of

variables technique. The recurrence is not in the form that can be solved by applying Theorem B.3 because of the term n/2. We

can transform it into a recurrence that is in that form as follows. First, set

Second, substitute 2

k

for n in the recurrence to obtain

Next, set

in Recurrence B.3 to obtain the new recurrence,

This new recurrence is in the form that can be solved by applying Theorem B.3. Therefore, applying that theorem, we can

determine its general solution to be

This general solution to our original recurrence can now be obtained with the following two steps:

1. Substitute T(2

k

) for t

k

in the general solution to the new recurrence:

2. Substitute n for 2

k

and lg n for k in the equation in Step 1:

Once we have the general solution to our original recurrence, we proceed as usual. That is, we use the initial condition T(1) =

1, determine a second initial condition, and then compute the values of the constants to obtain

Example B.19

We solve the recurrence

Recall that we were unable to solve this recurrence using induction in Example B.3. We solve it here with a change of

variables. First, substitute 2

k

for n to yield

Next, set

in this equation to obtain

Apply Theorem B.3 to this new recurrence to obtain

Perform the steps that give the general solution to the original recurrence:

1. Substitute T(2

k

) for t

k

in the general solution to the new recurrence:

2. Substitute n for 2

k

and lg n for k in the equation obtained in Step 1:

Now proceed as usual. That is, use the initial condition T(1) = 0, determine two more initial conditions, and then compute the

values of the constants. The solution is

Example B.20

We solve the recurrence

Substitute 2

k

for n in the recurrence to yield

Set

in Recurrence (B.4) to obtain

This recurrence does not look exactly like the kind required in Theorem B.3, but we can make it look like that as follows:

Now apply Theorem B.3 to this new recurrence to obtain

Perform the steps that give the general solution to the original recurrence:

1. Substitute T(2

k

) for t

k

in the general solution to t

k

:

2. Substitute n for 2

k

and lg n for k in the equation obtained in Step 1:

Use the initial condition T(1) = 0, determine a second initial condition, and then compute the values of the constants. The

solution is

B.3 Solving Recurrences by Substitution

Sometimes a recurrence can be solved using a technique called substitution. You can try this method if you cannot obtain a

solution using the methods in the last two sections. The following examples illustrate the substitution method.

Example B.21

We solve the recurrence

In a sense, substitution is the opposite of induction. That is, we start at n and work backward:

We then substitute each equality into the previous one, as follows:

The last equality is the result in Example A.1 in Appendix A.

The recurrence in Example B.21 could be solved using the characteristic equation. The recurrence in the following example

cannot.

Example B.22

We solve the recurrence

First, work backward from n:

Then substitute each equation into the previous one:

for n not small. The approximate equality is obtained from Example A.9 in Appendix A.

B.4 Extending Results for n, a Power of a Positive Constant b, to n in General

It is assumed in the material that follows that you are familiar with the material in Chapter 1.

In the case of some recursive algorithms, we can readily determine the exact time complexity only when n is a power of some

base b, where b is a positive constant. Often the base b is 2. This is true in particular for many divide-and-conquer algorithms

(see Chapter 2). Intuitively, it seems that a result that holds for n a power of b should approximately hold for n in general. For

example, if for some algorithm we establish that

for n a power of 2, it seems that for n in general we should be able to conclude that

It turns out that usually we can draw such a conclusion. Next we discuss situations in which this is the case. First we need

some definitions. These definitions apply to arbitrary functions whose domains and ranges are any subsets of the real numbers,

but we state them for complexity functions (that is, functions that map the positive integers to the positive reals) because these

are the functions that interest us here.

The function shown in Figure B.1(a) is strictly increasing. (For clarity, the domains of the functions in Figure B.1 are all the

nonnegative reals.) Many of the functions we encounter in algorithm analysis are strictly increasing for nonnegative values of

n. For example, lg n, n, n, lg n, n

2

and 2

n

are all strictly increasing as long as n is nonnegative.

Figure B.1: Four functions.

Any strictly increasing function is nondecreasing, but a function that can level out is nondereasing without being strictly

increasing. The function shown in Figure B.1(b) is an example of such a function. The function in Figure B.1 (c) is not

nondecreasing.

The time (or memory) complexities of most algorithms are ordinarily nondecreasing because the time it takes to process an

input usually does not decrease as the input size becomes larger. Looking at Figure B.1, it seems that we should be able to

extend an analysis for n a power of b to n in general as long as the function is nondecreasing. For example, suppose we have

determined the values of f(n) for n a power of 2. In case of the function in Figure B.1(c), anything can happen between, say, 2

3

= 8 and 2

4

= 16. Therefore, nothing can be concluded about the behavior of the function between 8 and 16 from the values at 8

and 16. However, in the case of a nondecreasing function f (n), if 8 n 16 then

So it seems that we should be able to determine the order of f (n from the values of f (n) for n a power of 2. What seems to be

Definition A complexity function f (n) is called strictly increasing if f (n) always gets larger as n gets larger. That is, if n

1

>

n

2

, then

Definition A complexity function f (n) is called nondecreasing if f (n) never gets smaller as n gets larger. That is, if n

1

> n

2

,

then

true intuitively can indeed be proven for a large class of functions. Before giving a theorem stating this, we recall that order has

to do only with long-range behavior. Because initial values of a function are unimportant, the theorem requires only that the

function be eventually nondecreasing. We have the following difinition:

Any nondecreasing function is eventually nondecreasing. The function shown in Figure 3.1(d) is an example of an eventually

nondecreasing function that is not nondecreasing. We need the following definition before we give the theorem for extending

the results for n a power of b:

Example B.23

The functions lg n, n lg n, and n

k

, where k 0, are all smooth. We show this for lg n. In the exercises you are asked to show it

for the other functions. We have already noted that lg n is eventually nondecreasing. As to the second condition, we have

Example B.24

The function 2

n

is not smooth, because the Properties of Order in Section 1.4.2 in Chapter 1 imply that

Therefore,

We now state the theorem that enables us to generalize results obtained for n a power of b. The proof appears near the end of

this appendix.

Theorem B.4

Let b 2 be an integer, let f (n) be a smooth complexity function, and let T (n) be an eventually nondecreasing complexity

function. If

then

Furthermore, the same implication holds if is replaced by "big O," , or "small o."

By "T (n) (f (n)) for n a power of b," we mean that the usual conditins for are known to hold when n is restricted to

being a power of b. Notice in Theorem B.4 the additional requirement that f (n) be smooth.

Definition A complexity function f (n) is called eventually nondecreasing if for all n past some point the function never

gets smaller as n gets larger. That is, there exists an N such that if n

1

> n

2

N, then

Definition A complexity function f (n) is called smooth if f (n) is eventually nondecreasing and if

Next we apply Theorem B.4

Example B.25

Suppose for some comlexity function we establish that

When n is a power of 2, we have the recurrence in Example B.18. Therefore, by that example,

Because lg n is smooth, we need only show that T (n) is eventually nondecreasing in order to apply Theorem B.4 to conclude

that

One might be tempted to conclude that T (n) is eventually nondecreasing from the fact that lg n + 1 is eventually

nondecreasing. However, we cannot do this because we know only that T (n) = lg n + 1 when n is a power of 2. Given only this

fact, T (n) could exhibit any possible behavior in between powers of 2.

We show that T (n) is eventually nondecreasing by using induction to establish for n 2 that if 1 k < n, then

Induction base: For n = 2,

Therefore,

Induction hypothesis: One way to make the induction hypothesis is to assume that the statement is true for all m n. Then, as

usual, we show that it is true for n + 1. This is the way we need it to be stated here. Let n be an arbitrary integer greater than or

equal to 2. Assume for all m n that if k < m, than

Induction step: Because in the induction hypothesis we assumed for k < n that

we need only show that

To that end, it is not hard to see that if n 1, then

Therefore, by the induction hypothesis,

Using the recurrence, we have

and we are done.

Finally, we develop a general method for determining the order of some common recurrences.

Theorem B.5

Suppose a complexity function T (n) is eventually nondecreasing and satisfies

where b 2 and k 0 are constant integers, and a, c, and d are constants such that a > 0, c > 0, and d 0. Then

Furthermore, if, in the statement of the recurrence,

is replaced by

then Result B.5 holds with "big O" or , respectively, replacing .

We can prove this theorem by solving the general recurrence using the characteristic equation and then applying Theorem B.4.

Example applications of Theorem B.5 follow.

Example B.26

Suppose that T (n) is eventually nondecreasing and satisfies

By Theorem B.5, because 8 4

2

,

Example B.27

Suppose that T (n) is eventually nondecreasing and satisfies

By Theorem B.5, because 9 > 3

1

,

Theorem B.5 was stated in order to introduce an important theorem as simply as possible. It is actually the special case, in

which the constant s equals 1, of the following theorem.

Theorem B.6

Suppose that a complexity function T (n) is eventually nondecreasing and satisfies

where s is a constant that is a power of b, b 2 and k 0 are constant integers, and a, c, and d are constants such that a > 0, c >

0, and d 0. Then the results in Theorem B.5 still hold.

Example B.28

Suppose that T (n) is eventually nondecreasing and satisfies

By Theorem B.6, because 8 = 2

3

,

This concludes our discussion of techniques for solving recurrences. Another technique is to use "generating functions" to

solve recurrences. This technique is discussed in Sahni (1988). Bentley, Haken, and Sax (1980) provide a general method for

solving recurrences arising from the analysis of divide-and-conquer algorithms (see Chapter 2).

B.5 Proofs of Theorems

The following lemma is needed to prove Theorem B.1.

Lemma B.1

Suppose we have the homogeneous linear recurrence

If r

1

is a root of the characteristic equation

then

is a solution to the recurrence.

Proof: If, for i = n k, , n, we substitute r

i

1

for t

i

in the recurrence, we obtain

Therefore, r

n

1

is a solution to the recurrence.

Proof of Theorem B.1 It is not hard to see that, for a linear homogeneous recurrence, a constant times any solution and the sum

of any two solutions are each solutions to the recurrence. We can therefore apply Lemma B.1 to conclude that, if

are the k distinct roots of the characteristic equation, then

where the c

i

terms are arbitrary constants, is a solution to the recurrence. Although we do no show it here, one can prove that

these are the only solutions.

Proof of Theorem B.2 We prove the case where the multiplicity m equals 2. The case of a larger m is a straightforward

generalization. Let r

1

be a root of multiplicity 2. Set

where q (r) means the first derivative. If we subsitute ir

i

1

for t

i

in the recurrence, we obtain u (r

1

). Therefore, if we can show

that u (r

1

) = 0, we can conclude that t

n

= nr

n

1

is a solution to the recurrence, and we are done. To this end, we have

Therefore, to show that u (r

1

) = 0, we need only show that p (r

1

) and p (r

1

) both equal 0. We show this as follows. Because r

1

is a solution of multiplicity 2 of the characteristic equation p (r), there exists a v (r) such that

Therfore,

and p (r

1

) and p (r

1

) both equal 0. This completes the proof.

Proof of Theorem B.4 We obtain the proof for "big O." Proof for and can be established in a similar manner. Because

T (n) O (f (n) for all n such that n is a power of b, there exist a positive c

1

and a nonnegative integer N

1

such that, for n > N

1

and n a power of b,

For any positive integer n, there exists a unique k such that

It is possible to show, in the case of a smooth function, that if b 2, then

That is, if this condition holds for 2, it holds for any b > 2. Therefore, there exist a positive constant c

2

and a nonnegative

integer N

2

such that, for n > N

2

,

Therefore, if b

k

N

2

,

Because T (n) and f (n) are both eventually nondecreasing, there exists an N

3

, such that, for m > n > N

3

,

Let r be so large that

If n > b

r

and k is the value corresponding to n in Inequality B.7, then

Therefore, by Inequalities B.6, B.7, B.8, and B.9, for n > b

r

,

which means that

Exercises

Section B.1

1. Use induction to verify the candidate solution to each of the following recurrence equations.

a. t

n

= 4t

n 1

for n > 1

t

1

= 3

The candidate solution is t

n

= 3(4

n 1

).

b. t

n

= t

n 1

+ 5 for n > 1

t

1

= 2

The candidate solution is t

n

= 5n 3.

c. t

n

= t

n 1

+ n for n > 1

t

1

= 1

The candidate solution is t

n

= 3 (4

n-1

)

d. t

n

= t

n 1

+ n

2

for n > 1

t

1

= 1

The candidate solution is

e.

t

1

=

The candidate solution is

f. t

n

= 3t

n 1

+ 2

n

for n > 1

t

1

= 1

The candidate solution is t

n

= 5 (3

n 1

) 2

n + 1

.

g. t

n

= 3t

n/2

+ n for n > 1, n a power of 2

t

1

=

The candidate solution is

h. t

n

= nt

n 1

for n > 0

t

0

= 1

The candidate solution is t

n

= n!.

2. Write a recurrence equation for the nth term of the sequence 2, 6, 18, 54, , and use induction to verify the candidate

solution s

n

= 2 (3

n-1

).

3. The number of moves (m

n

for n rings) needed in the Towers of Hanoi problem (see Exercise 17 in Chapter 2) is given by

the following recurrence equation

Use induction to show that the solution to this recurrence equation is m

n

= 2

n

- 1.

4. The following algorithm returns the position of the largest element in the array S. Write a recurrence equation for the

number of comparisons t

n

needed to find the largest element. Use induction to show that the equation has the solution t

n

= n - 1.

index max_position ( index low, index high)

{

index position;

if ( low == high)

return low;

else{

position = max_position ( low + 1, high) ;

if ( S[ low] > S[ position] )

position = low;

return position;

}

}

The top-level call is

max_position (1, n).

5. The ancient Greeks were very interested in sequences resulting from geometric shapes such as the following traingular

numbers:

Write a recurrence equation for the nth term in this sequence, guess a solution, and use induction to verify your solution.

6. Into how many regions do n lines divide a plane so that every pair of lines intersect, but no more than two lines intersect

at a common point? Write a recurrence equation for the number of regions for n lines, guess a solution for your equation,

and use induction to verify your solution.

7. Show that is the solution to the following recurrence equation:

8. Write and implement an algorithm that computes the value of the following recurrence, and run it using different

problem instances. Use the results to guess a solution for this recurrence, and use induction to verify to your solution.

Section B.2

9. Indicate which recurrence eqations in the problems for Section B.1 fall into each of the following categories.

a. Linear equations

b. Homogeneous equations

c. Equations with constant coefficients

10. Find the characteristic equations for all of the recurrence equations in Sections B.1 that are linear with constant

coefficients.

11. Show that if f (n) and g (n) are both solutions to a linear homogeneous recurrence equation with constant coefficients,

then so is c f (n) + d g (n), where c and d are constants.

12. Solve the following recurrence equations using the characteristic equation.

a.

b.

c.

d.

13. Complete the solution to the recurrence equation given in Example B.15.

14. Complete the solution to the recurrence equation given in Example B.16.

15. Solve the following recurrence equations using the characteristic equation.

a.

b.

c.

d.

16. Complete the solution to the recurrence equation given in Example B.17.

17. Show that the recurrence equation

can be written as

18. Solve the recurrence equation in Exercise 17. The solution gives the number of derangements (nothing is in its right

place) of n objects.

19. Solve the following recurrence equations using the characteristic equation.

a.

b.

c.

d.

e.

Section B.3

20. Solve the recurrence equations in Exercise 1 using the substitution method.

Section B.4

21. Show that

a. f (n) = n

3

is a strictly increasing function.

b. g (n) = 2n

3

- 6n

2

is an eventually nondecreasing function.

22. What can we say about a function f (n) that is both nondecreasing and nonincreasing for all values of n?

23. Show that the following functions are smooth.

a. f (n) = n lg n

b. g (n) = n

k

, for all k 0.

24. Assuming in each case that T (n) is eventually nondecreasing, use Theorem B.5 to determine the order of the following

recurrence equations.

a.

b.

c.

25. Assuming in each case that T (n) is eventually nondecreasing, use Theorem B.6 to determine the order of the following

recurrence equations:

a.

b.

26. We know that the recurrence

has solution

in the case a > c, provided that g (n) (n). Prove that the recurrence has the same solution if we assume that

- tag metaphorical expression lessonCaricato daapi-269916717
- free fall labCaricato daapi-282121083
- chapter 12 teacher skills practiceCaricato daapi-262088658
- Microsoft Mathematics ManualCaricato daStephen Green
- Equations With Radical ExpressionsCaricato dacprelator
- Unit of Study Final ProjectCaricato damitkrieg
- PowerPoint Cable Stay BridgeCaricato daNONGTHON
- linear equations.pdfCaricato daSyed Shoeb
- Delay Analysis and Optimality of Scheduling Policies for Multi-Hop Wireless Networks IEEE Project AbstractCaricato daprojectacademyindia
- atm-mt228-39-42Caricato daArpita Majumdar Dutta
- Problem 8Caricato daPrakhar Sarkar
- Lee Text MatrixCaricato daanon_42907777
- 4.3 Laplace Transform Methods - Solving Systems of Linear Differential EquationsCaricato daHasmaye Pinto
- algebra 1 standardsCaricato daapi-306943671
- Chapter 3 4Caricato daHamza Merzić
- 1.1 Taylor series approximations.docCaricato daAbed Nego Silaban
- math i outline and key assignments dwCaricato daapi-255511023
- math i outline and key assignments dwCaricato daapi-256105506
- UnfinishCaricato daChristine Paje
- Applied Mathematics and Computation Volume 219 issue 3 2012 [doi 10.1016_j.amc.2012.07.007] Chi-Chang Wang; Wu-Jung Liao; Yin-Sung Hsu -- Hybrid spline difference method for the Burgers’ equation.pdfCaricato daNarayanan Srinivasan
- course_notes_7824_part8.pdfCaricato daHrishikesh Babu
- 2. Linear LawCaricato daFarouk Ahmad
- Algebra Cheat SheetCaricato daVinícius Pedroso
- Data Structures 1Caricato daKind Krishna
- linear equationsCaricato daSREECHARAN
- cup project 2Caricato daapi-296658056
- heather mcneill fpo weberCaricato daapi-217042382
- material_balances.pdfCaricato dagoogley71
- Tutorial 2Caricato daTarak A Positive
- read_mathCaricato dabelinaro8000

- ch08_7eCaricato daAlifikri Abufaiz
- 00 Course IntroCaricato daAlifikri Abufaiz
- SMPP_V_5_0Caricato daHeral Raj
- Dino Hunter GunsCaricato daAlifikri Abufaiz
- Cisco ONS 15454 SDH Reference ManualCaricato daAlifikri Abufaiz
- 8. a Comparison of Personal Name Matching _ Techniques and Practical IssuesCaricato daAlifikri Abufaiz
- ex6Caricato daparsa90p
- A Proof that Hitting Set is NP-CompleteCaricato daAlifikri Abufaiz
- Arab NamesCaricato daSteven Woolley Art
- Reading AssignmentCaricato damanjunathbhatt
- EnergyCaricato daAlifikri Abufaiz
- activity_boxCaricato daapi-19760884
- 3. 100_wordsCaricato daAlifikri Abufaiz
- BoatCaricato daAlifikri Abufaiz
- 10geCaricato daAlifikri Abufaiz

- hw5-solCaricato dakalaputra
- Extended Ascii Code PDFCaricato daCourtney
- Bhrama SutrasCaricato dadeepaksubsmani@yahoo.com
- Mum Trakker c13 Ad-At e5Caricato daJohn Pomahuali
- 76523_12hydraulic hand bookCaricato daraj8378
- Application of Rapid Bioassay Method for Assessing Its Water Purification by Ferrate (VI) PotassiumCaricato daAnonymous 7VPPkWS8O
- Compressive Strenght of Concrete from 1-28 day.pdfCaricato daartlet
- 323170959-Ley-de-ArchieCaricato datania
- stemactivitiesclass8201920.pdfCaricato daJames Bond
- Installing Configuring Customizing KFSCaricato daAshok K
- good OLS 22Caricato daMaryam Sharif
- intervalos 2016Caricato daJuliane Andrezzo
- Zebra Gt820 Desktop Barcode PrinterCaricato daAbi Martinez
- Mine Planning & DesignCaricato daVenkateshwer Reddy AV
- BHEL ReportCaricato daAbhishek Tripathi
- Rectifiers&ResonanceCaricato daYagnesh Ashar
- Speed Control of Dc MotorCaricato daChú Cá Con
- Final ProjectCaricato daAkshay Garg
- lab 8 designing a sustainable off-grid solar systemCaricato daapi-349076072
- The Structural Mechanics Module User’s GuideCaricato dastallone21
- Chapter 1Caricato daNorzelan Saleh
- editorial designCaricato daapi-312876356
- MBBR ThesisCaricato daMohamed Salem
- SP4000-EP00Caricato daTraxler Csilla
- Rhcsa Exam Model QuestionCaricato daAnonymous xxyJQ6
- OIML and ASTM Calibration WeightsCaricato daScott Tyler
- Upgrade MarineCaricato daIonutm
- cbscCaricato dawakeonlan
- Book GlosaryCaricato daPaul Oña
- New Site ProcedureCaricato daNoor Alam

## Molto più che documenti.

Scopri tutto ciò che Scribd ha da offrire, inclusi libri e audiolibri dei maggiori editori.

Annulla in qualsiasi momento.