CPSC 320 2009W2 Exam Reference Sheet
Do not remove: This reference sheet is the appendix for Midterm #1. Only the first 4 printed pages will be used; so be compact!
- iff
- iff ,
- iff and ,
- iff
- iff ,
Also, if
- , then
- a non-zero constant, then
- , then
(Plus bear in mind that (1) L'Hopital's rule may be handy, and (2) the limit is not always well-defined!)
L'Hopital's Rule:
If or , then
Analogy to Inequalities
- if and only if
- if and only if
It follows, where and :
Caution: For all exactly one must hold: or . Not all functions are asymptotically comparable.
Master Theorem
If and a constant in the base case, where can be either or , and then:
- If for some , then
- If then,
- If for some and if for some constant and sufficiently large , then
- Dominated by root cost - It is important in this case to check that f(n) is well behave. More specifically,
- For sufficient large n, a*f(n/b) <= c*f(n)
The following equations cannot be solved using the master theorem:
a is not a constant
non-polynomial difference between f(n) and
a<1 cannot have less than one sub problem
f(n) is not positive
case 3 but regularity violation.
Also, Case 3 always hold when f = n^k and If
Log Laws
For all real a > 0, b > 0, c > 0, and n,
Summation
- Arithmetic Series:
- Sum of Squares:
- Sum of Cubes:
- Geometric Series: for real
- Infinite decreasing:
- Telescoping:
Exponents
Decision Tree-Related Notes
- for a list of elements, there's permutations
- a binary tree of height has at most leaves
- therefore, a binary tree with at least leaves must have height at least
- to get the height of a tree: the longest path (say we divide by 3/2 at each level) finishes when , so the height is
- , which we can establish by proving big-O and big-Ω bounds separately (pumping "up" or "down" the values of the terms in the factorial and the overall number of terms as needed)
Stirling's Approximation
Derivatives
The Silicon Downs : Furlongs of Asymptotic Complexity
"NEWS FLASH: Mounties Find Silicon Downs Fixed!"
- Constant
- Logarithmic ie.
- Poly-Log
- Linear
- Log-Linear
- Superlinear where: c is a constant > 0
- Quadratic
- Cubic
- Polynomial where: k is a constant, "tractable"
- Exponential where: c is a constant > 1, "intractable"
Stable Marriage Notes
Algorithm:
initialize all men in M and all women in W to unengage
while (an unengaged man with at least one woman on his preferance list remains)
do choose such a man m (element of) M
propose to the next woman w(element of)W on his preference list
if( w is unengaged)
then engage m to w
else if w prefers m to fiance m'
then break engagement of m' to w
engage m to w
cross w off m's preferance list
report set of engaged pairs as final matching.
Notes:
- All executions of the stable marriage sort produce the same matching, and all men end up with their "best possible partner".
- In the stable matching set each woman is paired with her worst valid partner.
- This algorithm terminates after at most iterations of the while loop.
Skyline Problem & Algorithm
For input B[1..n] buildings as triples (left, height, right),
we get output of tuples (pos of height change, new height):
SKYLINE-ALG(B) {
If there is one building (x1,h,x2)
output (x1,h),(x2,0)
Else
divide into B1[1..floor(n/2)] and B2[floor(n/2)+1..n]
out1=SKYLINE-ALG(B1)
out2=SKYLINE-ALG(B2)
OUTPUT=MERGE(out1,out2)
}
The merge step is as follows:
MERGE(out1,out2) {
h1=h2=0, currx=0,curry=0
While out1 or out2 is not empty do {
If out1 and out2 start at the same x-coord
currx=first x-coord in out1
h1=first y-coord in out1
h2=first y-coord in out2
DELETE first entries in out1 and out2
Else If out1 has smallest first x-coord
currx=first x-coord in out1
h1=first y-coord in out1
DELETE first entry in out1
Else
currx=first x-coord in out2
h2=first y-coord in out2
DELETE first entry in out2
If max(h1,h2)!=curry
APPEND (currx,max(h1,h2)) to output
}
APPEND (currx,0) to output
}
Proving a Loop Invariant
- induction variable: Number of times through the loop
- base case: Prove the invariant true before the loop starts
- inductive hypothesis: Assume the invariant holds just before begininng some (unspecified) iteration of the loop.
- inductive step: prove the invariant holds at the end of that iteration (right before the next iteration)
- extra-bit: make sure the loop will eventually terminate.