csc165 week 9 - department of computer science, university of...
TRANSCRIPT
CSC165 Week 9Larry Zhang, November 4, 2014
today’s outline
➔ exercises of big-Oh proofs
➔ prove big-Oh using limit techniques
Recap definition of O(n²)
Beyond breakpoint B, f(n) is upper-bounded by cn², where c is some wisely chosen constant multiplier.
cn²
f(n)
B
Notation of O(n²) being a set of functions
functions that take in a natural number and return a non-negative real number
beyond breakpoint B, f(n) is upper-bounded by cn²
set of all red functions which satisfy the green.
Prove
thoughts: it’s all about picking c and B➔ tip 1: c should probably be larger than 3 (the
constant factor of the highest-order term)
➔ tip 2: see what happens when n = 1
➔ if n = 1
◆ 3n² + 2n = 3 + 2 = 5 = 5n²
◆ so pick c = 5, with B = 1 is probably good
◆ double check for n=2,3,4…, yeah it’s all good
Proof# 3n²+2n ≥ 0 when n is natural number
# 5 is a positive real
# 1 is a natural number
# generic natural number
# the antecedent
# 2nx1 ≤ 2nxn since 1 ≤ n
# c = 5
# transitivity of ≤
# introduce antecedent
# introduce ∀
# introduce ∃# by definition
what if we add a constant?
thoughts: it’s all about picking c and B➔ tip 1: c should probably be larger than 3 (the
constant factor of the highest-order term)➔ tip 2: see what happens when n = 1➔ if n = 1
◆ 3n² + 2n + 5 = 3 + 2 + 5 = 10 = 10n²◆ so pick c = 10, with B = 1 is probably good◆ double check for n=2,3,4…, yeah it’s all good
Prove
Prove
thoughts: ➔ assume n ≥ 1
➔ upper-bound the left side by overestimating
➔ lower-bound the right side by underestimating
➔ choose a c that connects the two bounds
large
small
Proof # non-negative for n ≥ 0
# -5n⁴ ≤ 0
# n³ ≤ n⁶ since n ≥ 1
# c = 9/2
# 0 ≤ n² # -n⁸ ≤ -n⁵
# n ≥ B, the antecedent
how about disproving?
Prove
➔ first, negate it
➔ then, prove the negation
Prove
thoughts
Proof:
# definition of max
# definition of max and ceiling
# multiply both sides by n² > 0
# conjunction introduction
# introduce ∃
# intro ∀
# definition of big-Oh
summary
➔ the ways we talked about of picking c and B, the main point of them is that we know how to show the bounding relation when picking in these ways.
➔ these are not the only ways, you can be more flexible when you are more familiar with these types of proofs.
➔ In general, larger c or larger B don’t hurt.
so far all functions we talked about are polynomials
➔ between polynomials, it is fairly easy to figure out who is big-Oh of whom
➔ simply look at the highest-degree term
➔ f(n) is in O(g(n)) exactly when the high-degree of f(n) is no larger than that of g(n)
polynomials
how about non-polynomials?
but how do we prove it?➔ we need to use a math
tool, which we didn’t like a lot but studied anyway
Intuition:
➔ if the ratio approaches infinity
when n becomes larger and larger, that
means f(n) grows faster than g(n)
f(n)
g(n)
give me any big number
more precisely
I can find a breakpoint
beyond which
the ratio is bigger than that big number
This is sort-of related to the definition of big-Oh…
How to use limit to prove big-Oh
General procedure
1. prove using “some calculus”
2. translate the limit into its definition with c
and n’, i.e.,
3. relate this definition to the definition of
big-Oh, i.e., means
Step 1. prove using “some calculus”
“some calculus”: L’Hopital’s rule
derivatives
l’hopital
l’hopital again!
http://mathworld.wolfram.com/LHospitalsRule.html
Step 2. translate the limit into its definition
we have proven
then by definition of limit
give me any big number
I can find a breakpoint
beyond which
the ratio is bigger than that big number
Step 3. relate it to the definition of big-Oh
wanna pick a wise n
we have this awesome n’, all n ≥ n’ satisfy 2^n > cn²
to satisfy both
pick n = max(n’, B)
what we have
Proof: # generic c and B
# applying L’hopital’s rule twice, (show the steps, omitted here)
# definition of limit
# definition of max
# definition of max
# definition the limit
# conjunction introduction
# intro ∃
# intro ∀
# negation of definition of big-Oh
next week
➔ more proofs on O, Ω, Θ
➔ (maybe) computability