๐ŸŽ‰ ไปŽ330่ฝฌไธบWashUๅธฎๅŠฉๆ‰‹ๅ†Œๅ•ฆ!

CSE247
modules
Class 5

Class 5

Exam tomorrow

Solving recurrence via master method

For recurrence:

T(n)=3T(n/4)+cn2T(n)=dnlogโก43+cn2+โˆ‘j=1logโก4nโˆ’13jc(n4j)2dnlogโก43=base_casecn2=work_done_by_root_nodeโˆ‘j=1logโก4nโˆ’13jc(n4j)2=work_done_by_child_nodeT(n)=3T(n/4)+cn^2 \\ T(n)=dn^{\log_4 3}+cn^2+\sum_{j=1}^{\log_4 n-1}3^jc({n\over 4^j})^2\\ dn^{\log_4 3} =base\_case \\ cn^2= work\_done\_by\_root\_node \\ \sum_{j=1}^{\log_4 n-1}3^jc({n\over 4^j})^2 =work\_done\_by\_child\_node

Thus, we could convert it to general form:

T(n)=aT(n/b)+f(n)T(n)=dnlogโกba+f(n)+โˆ‘j=1logโกbnโˆ’1ajf(nbj)dnlogโกba=base_casef(n)=work_done_by_root_nodeโˆ‘j=1logโกbnโˆ’1ajf(nbj)=work_done_by_child_nodeT(n)=aT(n/b)+f(n) \\ T(n)=dn^{\log_b a}+f(n)+\sum_{j=1}^{\log_b n-1}a^jf({n\over b^j})\\ dn^{\log_b a} =base\_case \\ f(n)= work\_done\_by\_root\_node \\ \sum_{j=1}^{\log_b n-1}a^jf({n\over b^j})=work\_done\_by\_child\_node

if base is "dominant":

ฮ˜(n)=nlogโกba\Theta(n)=n^{\log_b a}

eg.

T(n)=4T(n/2)+cnT(n)=n2+n+โˆ‘....T(n)=4T(n/2)+cn\\ T(n)=n^2+n+\sum....\\

if root is "dominant":

ฮ˜(n)=f(n)\Theta(n)=f(n)

eg.

T(n)=2T(n/2)+cn2T(n)=n+n2+โˆ‘....T(n)=2T(n/2)+cn^2\\ T(n)=n+n^2+\sum....\\

if neither is "dominant" (balanced: top and bottom work are the same):

eg.

T(n)=2T(n/2)+cnT(n)=n+n+โˆ‘....T(n)=2T(n/2)+cn\\ T(n)=n+n+\sum....\\

the tree have log n levels and n work per level.

thus, the overall asymptotic complexity = Theta(n log n)

f(n)=ฮ˜(nlogโกba)T(n)=dnlogโกba+f(n)+โˆ‘j=1logโกbnโˆ’1ajf(nbj)=dnlogโกba+cnlogโกba+โˆ‘j=1logโกbnโˆ’1ajc(nbj)logโกba=dnlogโกba+โˆ‘j=0logโกbnโˆ’1ajc(nbj)logโกba=dnlogโกba+cnlogโกbaโˆ‘j=0logโกbnโˆ’1aj(1bj)logโกba=dnlogโกba+cnlogโกbaโˆ‘j=0logโกbnโˆ’1ajbjlogโกba=dnlogโกba+cnlogโกbaโˆ‘j=0logโกbnโˆ’1ajajlogโกbb=dnlogโกba+cnlogโกbaโˆ‘j=0logโกbnโˆ’1ajaj=dnlogโกba+cnlogโกbaโˆ‘j=0logโกbnโˆ’11=dnlogโกba+cnlogโกbalogโกbnT(n)=ฮ˜(f(n)logโกn)f(n)=\Theta(n^{\log_b a})\\ \begin{aligned} T(n)&=dn^{\log_b a}+f(n)+\sum_{j=1}^{\log_b n-1}a^jf({n\over b^j})\\ &=dn^{\log_b a}+cn^{\log_b a}+\sum_{j=1}^{\log_b n-1}a^jc({n\over b^j})^{\log_b a}\\ &=dn^{\log_b a}+\sum_{j=0}^{\log_b n-1}a^jc({n\over b^j})^{\log_b a}\\ &=dn^{\log_b a}+cn^{\log_ba}\sum_{j=0}^{\log_b n-1}a^j({1\over b^j})^{\log_b a}\\ &=dn^{\log_b a}+cn^{\log_ba}\sum_{j=0}^{\log_b n-1}{a^j\over b^{j\log_b a}}\\ &=dn^{\log_b a}+cn^{\log_ba}\sum_{j=0}^{\log_b n-1}{a^j\over a^{j\log_b b}}\\ &=dn^{\log_b a}+cn^{\log_ba}\sum_{j=0}^{\log_b n-1}{a^j\over a^j}\\ &=dn^{\log_b a}+cn^{\log_ba}\sum_{j=0}^{\log_b n-1}1\\ &=dn^{\log_b a}+cn^{\log_ba}\log_bn\\ \end{aligned}\\ T(n)=\Theta(f(n)\log n)

What dominates actually means

f(n) dominates g(n) if f(n) grows polynomial faster than g(n).

eg. n^3 dominates n^2, n^2.000000001 dominates n^2, but n log n does not dominates n.

Essence of master method

Let a>= 1 and b>1 be constants, let f(n) be a function, and let T(n) be defined on the nonnegative integers by the recurrence

T(n)=aT(n/b)+f(n)T(n)=aT(n/b)+f(n)

where we interpret n/b to mean either ceiling or floor of n/b. Then T(n) has to following asymptotic bounds.

  • Case I: if f(n)=O(nlogbaโˆ’c)f(n) = O(n^{log_b a-c}) (f(n)f(n) "dominates" nlogbaโˆ’cn^{log_b a-c}) for some constant c >0, then T(n) = Theta(f(n))

  • Case II: if f(n)=ฮ˜(nlogba)f(n) = \Theta(n^{log_b a}), (f(n),nlogโกbaโˆ’cf(n), n^{\log_b a-c} have no dominate) then %T(n) = Theta(n^{log_b a} log_2 n)%

    Extension for f(n)=ฮ˜(ncritical_valueโˆ—(logn)k)f(n)=\Theta(n^{critical\_value}*(log n)^k)

    • if k>-1

      T(n)=ฮ˜(ncritical_valueโˆ—(logโกn)(k+1))T(n)=\Theta(n^{critical\_value}*(\log n)^(k+1))

    • if k=-1

      ฮ˜(ncritical_valueโˆ—logโกlogโกn)\Theta(n^{critical\_value}*\log \log n)

    • if k<-1

      ฮ˜(ncritical_value)\Theta(n^{critical\_value})

  • Case III: if f(n) = Omega(n^{log_b a+c}) **(n^{log_b a-c} "dominates" f(n))**for some constant c >0, and if a f(n/b)<= c f(n) for some constant c <1 then for all sufficiently large n, T(n) = Theta(n^{log_b a+c})