Solving recurrences and proving bounds
Exercise 7.4-1
Show that the recurrence
T(n)=max{T(q)+T(n−q−1):0≤q≤n−1}+Θ(n)
has a lower bound of T(n)=Ω(n2). [1]
Inductive hypothesis: T(n)≥n2
T(n)=max{q2+(n−q−1)2:0≤q≤n−1}+Θ(n)
f(q)=q2+(n−q−1)2:0≤q≤n−1
By expanding the expression we obtain
f(q)=q2+(n−q)2−2⋅(n−q)+1
f(q)=2⋅q2+n2−2nq−2n+2q+1
Now let’s find the local maxima of the function using its first derivative. Taking the first derivative with respect to q we obtain:
f′(q)=ddq2q2+ddqn2+ddq−2nq+ddq−2n+ddq2q+ddq1
Since we are looking for a critical point in the graph,
f′(q)=4q−2n+2=0
q=n−12
This can be either a local minima or a maxima of our function. Let’s determine it next.
Let q=1 for sufficiently large n, plugging in the values in the above equation we get:
4⋅1−2n+2=6−2n<0 for sufficiently large value of n.
Now let’s plug in q=n2 in our equation:
2n−2n+2=2>0
Thus, we have a local minimum of our function at q=n−12
Given that this is a continuous function, our local maxima should lie at the boundary points of the function where q=0 and q=n−1
Both of these q values lead to the following recurrence.
T(n)=T(0)+T(n−1)+Θ(n)
Now let’s solve this recurrence using the substitution method.
Let T(n)≥c⋅n2 for some constant c>0.
Plugging into our equation we then obtain
T(n)≥c⋅(n−1)2+Θ(n)
By expanding brackets, we then obtain
T(n)≥cn2+c+n⋅(1−2c)
T(n)≥cn2
And this holds for 0<c≤12 for some constant c.
Thus, T(n)=Ω(n2)
And that concludes our proof.
References
[1] https://www.amazon.com/Introduction-Algorithms-fourth-Thomas-Cormen/dp/026204630X
Comments
Post a Comment