Tải bản đầy đủ (.pptx) (19 trang)

Discrrete mathematics for computer science asymptotic

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.47 MB, 19 trang )

Growth Rates of Functions

3/26/12


Asymptotic Equivalence
• Def:

⎛  ⎞
f (n) : g(n) iff lim n ⎜


⎝   ⎠

For example,

n   
2



   
    
   

Note that n2+1 is being used to name the
function f such that f(n) = n2+1 for every
n
3/26/12



An example: Stirling’s
formula

⎛n⎞
n! : ⎜ ⎟
⎝e⎠

3/26/12



   


Little-Oh: f = o(g)
• Def: f(n) = o(g(n)) if


lim

n  
• For example, n2 = o(n3) since



lim     
n 
 



3/26/12


= o( ∙ ) is “all one symbol”
• “f = o(g)” is really a strict partial
order on functions
• NEVER write “o(g) = f”, etc.

3/26/12


Big-Oh: O(∙)
• Asymptotic Order of Growth:
⎛  ⎞
f (n)      ⎜


 ⎝   ⎠

• “f grows no faster than g”
• A Weak Partial Order

3/26/12


Growth Order
3n       


2


    










3/26/12


f = o(g) implies f = O(g)


because if  lim

n  

 

  
      


3/26/12



Big-Omega
• f = Ω(g) means g = O(f)
• “f grows at least as quickly as g”

3/26/12


Big-Theta: �(∙)
“Same order of growth”
f (n)    

        


        

So, for example,
3n     
2

3/26/12




Rough Paraphrase
• f∼g: f and g grow to be roughly
equal
• f=o(g): f grows more slowly than g

• f=O(g): f grows at most as quickly
as g
• f=Ω(g): f grows at least as quickly
as g
• f=�(g): f and g grow at the same
rate
3/26/12


Equivalent Defn of O(∙)
“From some point on, the
value of f is at most a
constant multiple of the value
of g”

f (n)    
     
    
3/26/12


Three Concrete Examples
• Polynomials
• Logarithmic functions
• Exponential functions

3/26/12


Polynomials

• A (univariate) polynomial is a function such as
f(n) = 3n5+2n2-n+2 (for all natural numbers n)
• This is a polynomial of degree 5 (the largest
exponent)

• Or in general
f (n)   
• Theorem:

– If apolynomial of degree b)
– If a≤b then any polynomial of degree a is O(any
polynomial of degree b)
3/26/12


Logarithmic Functions
• A function f is logarithmic if it is
Θ(logbn) for some constant b.
• Theorem: All logarithmic functions
are Θ() of each other, and are Θ(any
logarithmic function of a polynomial)
• Theorem: Any logarithmic function is
o(any polynomial)

3/26/12


Exponential Functions
• A function is exponential if it is Θ(cn)

for some constant c>1.
• Theorem: Any polynomial is o(any
exponential)
• If c
3/26/12


Growth Rates and Analysis of
Algorithms
• Let f(n) measure the amount of time taken by
an algorithm to solve a problem of size n.
• Most practical algorithms have polynomial
running times
• E.g. sorting algorithms generally have running
times that are quadratic (polynomial or degree
2) or less (for example, O(n log n)).
• Exhaustive search over an exponentially
growing set of possible answers requires
exponential time.
3/26/12


Another way to look at it
• Suppose an algorithm can solve a problem of size S
in time T and you give it twice as much time.
• If the running time is f(n)=n2, so that T=S2, then in
time 2T you can solve a problem of size (21/2)∙S
• If the running time is f(n)=2n, so that T=2S, then in
time 2T you can solve a problem of size S+1.

• In general doubling the time available to a
polynomial algorithm results in a MULTIPLICATIVE
increase in the size of the problem that can be solved
• But doubling the time available to an exponential
algorithm results in an ADDITIVE increase to the size
of the problem that can be solved.
3/26/12


FINIS

3/26/12