Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 34

Dr Nazir A.

Zafar Advanced Algorithms Analysis and Design


Advanced Algorithms Analysis
and Design
By

Dr. Nazir Ahmad Zafar
Lecture No. 6


Fibonacci Sequences
(Natural Models)



Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
In this lecture we will cover the following:
Fibonacci Problem and its Sequence
Construction of Mathematical Model
Explicit Formula Computing Fibonacci
Numbers
Recursive Algorithms
Generalizations of Rabbits Problem and
Constructing its Mathematical Models
Applications of Fibonacci Sequences
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Today Covered
By studying Fibonacci numbers and constructing
Fibonacci sequence we can imagine how
mathematics is connected to apparently unrelated
things in this universe.
Even though these numbers were introduced in
1202 in Fibonaccis book Liber abaci, but these
numbers and sequence are still fascinating and
mysterious to people of today.
Fibonacci, who was born Leonardo da Pisa gave a
problem in his book whose solution was the
Fibonacci sequence as we will discuss it today.
Fibonacci Sequence
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Statement:
Start with a pair of rabbits, one male and one female,
born on January 1.
Assume that all months are of equal length and that
rabbits begin to produce two months after their own birth.
After reaching age of two months, each pair produces
another mixed pair, one male and one female, and then
another mixed pair each month, and no rabbit dies.
How many pairs of rabbits will there be after one year?

Answer: The Fibonacci Sequence!
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, . . .
Fibonaccis Problem
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Construction of Mathematical Model
end of month 2
end of month 1
end of month 4
end of month 3
end of month 6
end of month 5
F2 = 1
F3 = 2
F5 = 5
F6 = 8
F7 = 13
. . .
. . .
. . .
F1 = 1
F0 = 0
F4 = 3
end of month 12
end of month 7
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Total pairs at level k = Total pairs at level k-1 + Total
pairs born at level k (1)
Since
Total pairs born at level k = Total pairs at level k-2 (2)
Hence by equation (1) and (2)
Total pairs at level k = Total pairs at level k-1 + Total
pairs at level k-2
Now let us denote
F
k
= Total pairs at level k
Now our recursive mathematical model will become
F
k
= F
k-1
+ F
k-2

Construction of Mathematical Model
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Since F
k
= F
k-1
+ F
k-2
F
0
= 0, F
1
= 1

F
2
= F
1
+ F
0
= 1 + 0 = 1

F
3
= F
2
+ F
1
= 1 + 1 = 2

F
4
= F
3
+ F
2
= 2 + 1 = 3

F
5
= F
4
+ F
3
= 3 + 2 = 5

F
6
= F
5
+ F
4
= 5 + 3 = 8

F
7
= F
6
+ F
5
= 8 + 5 = 13

F
8
= F
7
+ F
6
= 13 + 8 = 21

F
9
= F
8
+ F
7
= 21 + 13 = 34

F
10
= F
9
+ F
8
= 34 + 21 = 55
F
11
= F
10
+ F
9
= 55 + 34 = 89
F
12
= F
11
+ F
10
= 89 + 55 = 144 . . .
Computing Values using Mathematical Model
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design

2 1
+ =
k k k
F F F
1 condition initial with
2
1 0
2 1
= =
> + =

F F
k F F F
k k k
Theorem:
The fibonacci sequence F
0
,F
1
, F
2
,. Satisfies
the recurrence relation
Find the explicit formula for this sequence.
Solution:
Let t
k
is solution to this, then characteristic equation
The given fibonacci sequence
Explicit Formula Computing Fibonacci Numbers
0 1
2
= t t
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
2
5 1
,
2
5 1
2
4 1 1
2 1

=
+
=
+
=
t t
t
Fibonacci Sequence
For some real C and D fibonacci sequence satisfies the relation
( ) 0 1 0
F

2
5 1
2
5 1

0
0
2
5 1
2
5 1

0
0
0 0
0
= = +
+ =
|
|
.
|

\
|

+
|
|
.
|

\
|
+
=
=
>
|
|
.
|

\
|

+
|
|
.
|

\
|
+
=
F D C
D C
D C F
n
n D C F
n n
n

Dr Nazir A. Zafar Advanced Algorithms Analysis and Design


( ) 1 2 1
2
5 1
2
5 1

2
5 1
2
5 1
F
1 Now
1
1
= =

+
+

|
|
.
|

\
|

+
|
|
.
|

\
|
+
=
=
F D C
D C
n

( ) ( )
n n
D
|
|
.
|

\
|

|
.
|

\
|

|
|
.
|

\
|
+
|
.
|

\
|
=
= =
5 2
5 1
5
1
2
5 1
5
1
F
Hence
5
1
,
5
1
C
get usly we simultaneo 2 and 1 Solving
n
Fibonacci Sequence
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
After simplifying we get


which is called the explicit formula for the
Fibonacci sequence recurrence relation.



n n
|
|
.
|

\
|

|
|
.
|

\
|
+
=
2
5 1
5
1
2
5 1
5
1
F
n
Fibonacci Sequence

5
1

5
1
F
then
2
5 1
and
2
5 1
Let
n n
n
u u =
|
|
.
|

\
|

= u
|
|
.
|

\
|
+
= u

Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Example: Compute F
3





then
2
5 1
and
2
5 1
where
5
1

5
1
F Since
n n
n
|
|
.
|

\
|

= u
|
|
.
|

\
|
+
= u u u =

3 3
3
2
5 1
5
1
2
5 1
5
1
F
|
|
.
|

\
|

|
|
.
|

\
|
+
=
Verification of the Explicit Formula
|
|
.
|

\
|
+

|
|
.
|

\
|
+ + +
=
8
5 5 5 . 1 . 3 5 . 1 . 3 1
5
1
8
5 5 5 . 1 . 3 5 . 1 . 3 1
5
1
F Now,
2 2
3
( ) ( ) 5 5 5 . 1 . 3 5 . 1 . 3 1
5 . 8
1
5 5 5 . 1 . 3 5 . 1 . 3 1
5 . 8
1
F
3
+ + + + =
( ) 2 5 5 5 . 1 . 3 5 . 1 . 3 1 5 5 5 . 1 . 3 5 . 1 . 3 1
5 . 8
1
F
3
= + + + + + =
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Fibo-R(n)
if n = 0
then 0
if n = 1
then 1
else Fibo-R(n-1) + Fibo-R(n-2)

Recursive Algorithm Computing Fibonacci Numbers
Terminating conditions
Recursive calls
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Least Cost: To find an asymptotic bound of computational
cost of this algorithm, we can use a simple trick to solve this
recurrence containing big oh expressions
Simply drop the big O from the recurrence, solve the
recurrence, and put the O back. Our recurrence




will be refined to

2 n ) 2 ( ) 1 (
2 if ) 1 (
) (

> +
<
=
n T n T
n O
n T
Running Time of Recursive Fibonacci Algorithm

2 n ) 2 ( ) 1 (
2 if 1
) (

> +
<
=
n T n T
n
n T
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Construction of Mathematical Model
end of month 2
end of month 1
end of month 4
end of month 3
end of month 6
end of month 5
F2 = 1
F3 = 2
F5 = 5
F6 = 8
F7 = 13
. . .
. . .
. . .
F1 = 1
F0 = 0
F4 = 3
end of month 12
end of month 7
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Guess that F
n+1
is the least cost to solve this
recurrence. Why this guess?
n > 0, T(n) > F
n+1

then F
n+1
will be minimum cost for this recurrence
We prove it by mathematical induction
Base Case
There are two base cases
For n = 0, T(0) = 1 and F
1
= 1, hence T(0) > F
1
For n = 1, T(1) = 1 and F
2
= 1, hence T(1) > F
2
Running Time of Recursive Fibonacci Algorithm
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Inductive Hypothesis
Let us suppose that statement is true some k > 1
T(k) > F
k+1
, for k =0, 1, 2,. . . and k > 1
Now we show that statement is true for k + 1
Now, T(k + 1) = T(k) + T(k -1) By definition on T(n)
T(k + 1) = T(k) + T(k -1) > F
k+1
+ F
k
= F
k+2
Assumption
T(k + 1) > F
k+2


Hence the statement is true for k + 1.
We can now say with certainty that running time of
this recursive Fibonacci algorithm is at least O(F
n+1
).
Running Time of Recursive Fibonacci Algorithm
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Now we have proved that
T(n) > F
n+1
, n > 0 (1)
We already proved in solution to recursive relation that




It can be easily verified that F
n
> u
n
/5 > (3/2)
n
From the equations (1) and (2), T(n) > F
n+1
> F
n
> (3/2)
n

Hence we can conclude that running time of our recursive
Fibonacci Algorithm is:
T(n) = O (3/2)
n
Running Time of Recursive Fibonacci Algorithm

(2)
2
5 1
and
2
5 1
w
5
1

5
1
F
n n
n
|
|
.
|

\
|

= u
|
|
.
|

\
|
+
= u u u =

here
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
W say that two quantities, x and y, (x < y), are in
the golden ratio if the ratio between the sum, x + y,
of these quantities and the larger one, y, is the
same as the ratio between the larger one, y, and
the smaller one x.





Mathematicians have studied the golden ratio
because of its unique and interesting properties.
Golden Ratio
62 . 1 ~ =
+
x
y
y
y x
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Golden Ratio
0 1
1
1
1
i.e.
y
y x
and y x course of
1
, 62 . 0 1
62 . 1
2
5 1
2
= u u
u
=
u
=
+
<
=
~ u =
~
+
= u
x
y
y
x
1 u
1
u
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Recursion Tree
Drawback in Recursive Algorithms
F(n)
F(n-1) F(n-2)
F(0) F(1)
F(n-2) F(n-3) F(n-3) F(n-4)
F(1) F(0)
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Statement:
Start with a pair of rabbits, one male and one female,
born on January 1.
Assume that all months are of equal length and that
rabbits begin to produce two months after their own birth.
After reaching age of two months, each pair produces
two other mixed pairs, two male and two female, and
then two other mixed pair each month, and no rabbit dies.
How many pairs of rabbits will there be after one year?

Answer: Generalization of Fibonacci Sequence!
0, 1, 1, 3, 5, 11, 21, 43, 85, 171, 341, 683, . . .
Generalization of Rabbits Problem
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Construction of Mathematical Model





F0 = 0
F1 = 1
F2 = 1
F3 = 3
F4 = 5
F5 = 11
F6 = 21
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Total pairs at level k =
Total pairs at level k-1 + Total pairs born at level k (1)
Since
Total pairs born at level k =
2 x Total pairs at level k-2 (2)
By (1) and (2), Total pairs at level k =
Total pairs at level k-1 + 2 x Total pairs at level k-2
Now let us denote
F
k
= Total pairs at level k
Our recursive mathematical model:
F
k
= F
k-1
+ 2.F
k-2
General Model (m pairs production): F
k
= F
k-1
+ m.F
k-2

Construction of Mathematical Model
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Recursive mathematical model
(one pair production)
F
k
= F
k-1
+ F
k-2
Recursive mathematical model
(two pairs production)
F
k
= F
k-1
+ 2.F
k-2
Recursive mathematical model
(m pairs production)
F
k
= F
k-1
+ m.F
k-2

Generalization
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Since F
k
= F
k-1
+ 2.F
k-2
F
0
= 0, F
1
= 1

F
2
= F
1
+ 2.F
0
= 1 + 0 = 1

F
3
= F
2
+ 2.F
1
= 1 + 2 = 3

F
4
= F
3
+ 2.F
2
= 3 + 2 = 5

F
5
= F
4
+ 2.F
3
= 5 + 6 = 11

F
6
= F
5
+ F
4
= 11 + 10 = 21

F
7
= F
6
+ F
5
= 21 + 22 = 43

F
8
= F
7
+ F
6
= 43 + 42 = 85

F
9
= F
8
+ F
7
= 85 + 86 = 171

F
10
= F
9
+ F
8
= 171 + 170 = 341
F
11
= F
10
+ F
9
= 341 + 342 = 683
F
12
= F
11
+ F
10
= 683 + 682 = 1365 . . .
Computing Values using Mathematical Model
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Statement:
Start with a different kind of pair of rabbits, one male and
one female, born on January 1.
Assume all months are of equal length and that rabbits
begin to produce three months after their own birth.
After reaching age of three months, each pair produces
another mixed pairs, one male and other female, and then
another mixed pair each month, and no rabbit dies.
How many pairs of rabbits will there be after one year?

Answer: Generalization of Fibonacci Sequence!
0, 1, 1, 1, 2, 3, 4, 6, 9, 13, 19, 28, 41, 60, . . .
Another Generalization of Rabbits Problem
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Construction of Mathematical Model
F3 = 1
F4 = 2
F6 = 4
F8 = 9
F1 = 1
F0 = 0
F5 = 3
F2 = 1
F7 = 6
F9 = 13
F10 = 19
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Total pairs at level k =
Total pairs at level k-1 + Total pairs born at level k (1)
Since
Total pairs born at level k = Total pairs at level k-3 (2)
By (1) and (2)
Total pairs at level k =
Total pairs at level k-1 + Total pairs at level k-3
Now let us denote
F
k
= Total pairs at level k
This time mathematical model: F
k
= F
k-1
+ F
k-3

Construction of Mathematical Model
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Since F
k
= F
k-1
+ F
k-3
F
0
= 0, F
1
= F
2
= 1

F
3
= F
2
+ F
0
= 1 + 0 = 1
F
4
= F
3
+ F
1
= 1 + 1 = 2

F
5
= F
4
+ F
2
= 2 + 1 = 3

F
6
= F
5
+ F
3
= 3 + 1 = 4

F
7
= F
6
+ F
4
= 4 + 2 = 6

F
8
= F
7
+ F
5
= 6 + 3 = 9

F
9
= F
8
+ F
6
= 9 + 4 = 13

F
10
= F
9
+ F
7
= 13 + 6 = 19
F
11
= F
10
+ F
8
= 19 + 9 = 28
F
12
= F
11
+ F
9
= 28 + 13 = 41 . . .
Computing Values using Mathematical Model
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Recursive mathematical model
(one pair, production after three months)
F
k
= F
k-1
+ F
k-3
Recursive mathematical model
(two pairs, production after three months)
F
k
= F
k-1
+ 2.F
k-3
Recursive mathematical model
(m pairs, production after three months)
F
k
= F
k-1
+ m.F
k-3
Recursive mathematical model
(m pairs, production after n months)
F
k
= F
k-1
+ m.F
k-n
More Generalization
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Fibonacci sequences
Are used in trend analysis
By some pseudorandom number generators
The number of petals is a Fibonacci number.
Many plants show the Fibonacci numbers in the
arrangements of the leaves around the stems.
Seen in arrangement of seeds on flower heads
Consecutive Fibonacci numbers give worst case
behavior when used as inputs in Euclids algorithm.
As n approaches infinity, the ratio F(n+1)/F(n)
approaches the golden ratio:
u =1.6180339887498948482...
Applications of Fibonacci Sequences
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design
Fibonacci sequences
The Greeks felt that rectangles whose sides are in
the golden ratio are most pleasing
The Fibonacci number F(n+1) gives the number of
ways for 2 x 1 dominoes to cover a 2 x n
checkerboard.
Sum of the first n Fibonacci numbers is F(n+2)-1.
The shallow diagonals of Pascals triangle sum to
Fibonacci numbers.
Except n = 4, if F(n) is prime, then n is prime.
Equivalently, if n not prime, then F(n) is not prime.
gcd( F(n), F(m) ) = F( gcd(n, m) )
Applications of Fibonacci Sequences
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design

You might also like