Advanced Algorithms Analysis and Design - CS702 Power Point Slides Lecture 06

34
Dr Nazir A. Zafar Advanced Algorithms Analysis and Design Advanced Algorithms Analysis and Design By Dr. Nazir Ahmad Zafar

description

lectures of advance algorithm analysis and design

Transcript of Advanced Algorithms Analysis and Design - CS702 Power Point Slides Lecture 06

  • Dr Nazir A. Zafar Advanced Algorithms Analysis and DesignAdvanced Algorithms Analysis and DesignBy

    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 SequenceConstruction of Mathematical ModelExplicit Formula Computing Fibonacci NumbersRecursive Algorithms Generalizations of Rabbits Problem and Constructing its Mathematical ModelsApplications of Fibonacci SequencesDr Nazir A. Zafar Advanced Algorithms Analysis and DesignToday 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 SequenceDr 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 ProblemDr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Construction of Mathematical ModelDr Nazir A. Zafar Advanced Algorithms Analysis and Design

    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

  • Total pairs at level k = Total pairs at level k-1 + Total pairs born at level k (1)SinceTotal 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-2Now let us denote Fk = Total pairs at level k Now our recursive mathematical model will becomeFk = Fk-1 + Fk-2Construction of Mathematical ModelDr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Since Fk = Fk-1 + Fk-2F0 = 0, F1= 1F2 = F1 + F0= 1 + 0 = 1F3 = F2 + F1= 1 + 1 = 2F4 = F3 + F2= 2 + 1 = 3F5 = F4 + F3= 3 + 2 = 5F6 = F5 + F4= 5 + 3 = 8F7 = F6 + F5= 8 + 5 = 13F8 = F7 + F6= 13 + 8 = 21F9 = F8 + F7= 21 + 13 = 34F10 = F9 + F8= 34 + 21 = 55F11 = F10 + F9= 55 + 34 = 89F12 = F11 + F10= 89 + 55 = 144 . . .Computing Values using Mathematical ModelDr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Theorem: The fibonacci sequence F0,F1, F2,. Satisfies the recurrence relation Find the explicit formula for this sequence.Solution:Let tk is solution to this, then characteristic equationThe given fibonacci sequenceExplicit Formula Computing Fibonacci NumbersDr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Fibonacci SequenceFor some real C and D fibonacci sequence satisfies the relationDr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Fibonacci SequenceDr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • After simplifying we get

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

    Fibonacci SequenceDr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Example: Compute F3

    Verification of the Explicit FormulaDr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Fibo-R(n)if n = 0 then 0if n = 1then 1else Fibo-R(n-1) + Fibo-R(n-2)

    Recursive Algorithm Computing Fibonacci NumbersTerminating conditionsRecursive callsDr 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 expressionsSimply drop the big O from the recurrence, solve the recurrence, and put the O back. Our recurrence

    will be refined to Running Time of Recursive Fibonacci Algorithm Dr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Construction of Mathematical ModelDr Nazir A. Zafar Advanced Algorithms Analysis and Design

    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

  • Guess that Fn+1 is the least cost to solve this recurrence. Why this guess? n 0, T(n) Fn+1 then Fn+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 F1 = 1, hence T(0) F1For n = 1, T(1) = 1 and F2 = 1, hence T(1) F2Running 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) Fk+1 , for k =0, 1, 2,. . . and k 1Now we show that statement is true for k + 1Now, T(k + 1) = T(k) + T(k -1) By definition on T(n)T(k + 1) = T(k) + T(k -1) Fk+1 + Fk = Fk+2 AssumptionT(k + 1) Fk+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 (Fn+1). Running Time of Recursive Fibonacci Algorithm Dr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Now we have proved that T(n) Fn+1 , n 0(1)We already proved in solution to recursive relation that

    It can be easily verified that Fn n/5 (3/2)nFrom the equations (1) and (2), T(n) Fn+1 Fn (3/2)n

    Hence we can conclude that running time of our recursive Fibonacci Algorithm is: T(n) = (3/2)nRunning Time of Recursive Fibonacci Algorithm 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 RatioDr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Golden RatioDr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Recursion TreeDrawback in Recursive AlgorithmsDr 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 ProblemDr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Construction of Mathematical ModelDr Nazir A. Zafar Advanced Algorithms Analysis and Design

    F0 = 0

    F1 = 1

    F2 = 1

    F3 = 3

    F4 = 5

    F5 = 11

    F6 = 21

  • Total pairs at level k = Total pairs at level k-1 + Total pairs born at level k (1)SinceTotal 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-2Now let us denote Fk = Total pairs at level k Our recursive mathematical model:Fk = Fk-1 + 2.Fk-2General Model (m pairs production): Fk = Fk-1 + m.Fk-2Construction of Mathematical ModelDr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Recursive mathematical model (one pair production)Fk = Fk-1 + Fk-2Recursive mathematical model (two pairs production)Fk = Fk-1 + 2.Fk-2Recursive mathematical model (m pairs production)Fk = Fk-1 + m.Fk-2

    GeneralizationDr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Since Fk = Fk-1 + 2.Fk-2F0 = 0, F1 = 1F2 = F1 + 2.F0= 1 + 0 = 1F3 = F2 + 2.F1= 1 + 2 = 3F4 = F3 + 2.F2= 3 + 2 = 5F5 = F4 + 2.F3= 5 + 6 = 11F6 = F5 + F4= 11 + 10 = 21F7 = F6 + F5= 21 + 22 = 43F8 = F7 + F6= 43 + 42 = 85F9 = F8 + F7= 85 + 86 = 171F10 = F9 + F8= 171 + 170 = 341F11 = F10 + F9= 341 + 342 = 683F12 = F11 + F10= 683 + 682 = 1365 . . .Computing Values using Mathematical ModelDr 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 ProblemDr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Construction of Mathematical ModelDr Nazir A. Zafar Advanced Algorithms Analysis and Design

    F3 = 1

    F4 = 2

    F6 = 4

    F8 = 9

    F1 = 1

    F0 = 0

    F5 = 3

    F2 = 1

    F7 = 6

    F9 = 13

    F10 = 19

  • Total pairs at level k = Total pairs at level k-1 + Total pairs born at level k (1)SinceTotal 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-3Now let us denote Fk = Total pairs at level k This time mathematical model:Fk = Fk-1 + Fk-3Construction of Mathematical ModelDr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Since Fk = Fk-1 + Fk-3F0 = 0, F1= F2= 1F3 = F2 + F0= 1 + 0 = 1F4 = F3 + F1= 1 + 1 = 2F5 = F4 + F2= 2 + 1 = 3F6 = F5 + F3= 3 + 1 = 4F7 = F6 + F4= 4 + 2 = 6F8 = F7 + F5= 6 + 3 = 9F9 = F8 + F6= 9 + 4 = 13F10 = F9 + F7= 13 + 6 = 19F11 = F10 + F8= 19 + 9 = 28F12 = F11 + F9= 28 + 13 = 41 . . .Computing Values using Mathematical ModelDr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Recursive mathematical model (one pair, production after three months)Fk = Fk-1 + Fk-3Recursive mathematical model (two pairs, production after three months)Fk = Fk-1 + 2.Fk-3Recursive mathematical model (m pairs, production after three months)Fk = Fk-1 + m.Fk-3Recursive mathematical model (m pairs, production after n months)Fk = Fk-1 + m.Fk-nMore GeneralizationDr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Fibonacci sequencesAre used in trend analysisBy some pseudorandom number generatorsThe 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: =1.6180339887498948482...Applications of Fibonacci SequencesDr Nazir A. Zafar Advanced Algorithms Analysis and Design

  • Fibonacci sequencesThe Greeks felt that rectangles whose sides are in the golden ratio are most pleasingThe 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 SequencesDr Nazir A. Zafar Advanced Algorithms Analysis and Design