Akra-Bazzi method
From Wikipedia, the free encyclopedia
In computer science, the Akra-Bazzi method, or Akra-Bazzi theorem, is used to analyze the asymptotic behavior of the mathematical recurrences that appear in the analysis of divide and conquer algorithms where the sub-problems have substantially different sizes. It is a generalization of the well-known Master theorem, which assumes that the sub-problems have equal size; that is, that the recursive expression for the desired function contains exactly one reference to the function.
[edit] The formula
The Akra-Bazzi method applies to recurrence formulas of the form
for
The conditions for usage are:
- sufficient base cases are provided
- ai and bi are constants for all i
- ai > 0 for all i
- 0 < bi < 1 for all i
O(xc), where c is a constant
for all i
- x0 is a constant
The asymptotic behavior of T(x) is found by determining the value of p for which and plugging that value into the equation
Intuitively, hi(x) represents a small perturbation in the index of T. By noting that and that
is always between 0 and 1, hi(x) can be used to ignore the floor function in the index. Similarly, one can also ignore the ceiling function. For example,
and
will, as per the Akra-Bazzi theorem, have the same asymptotic behavior.
[edit] An example
Suppose T(n) is defined as 1 for integers and
for integers n > 3. In applying the Akra-Bazzi method, the first step is to find the value of p for which
. In this example, p = 2. Then, using the formula, the asymptotic behavior can be determined as follows:
[edit] Significance
The Akra-Bazzi method is more useful than most other techniques for determining asymptotic behavior because it covers such a wide variety of cases. Its primary application is the approximation of the runtime of many divide-and-conquer algorithms. For example, in the merge sort, the number of comparisons required in the worst case, which is roughly proportional to its runtime, is given recursively as T(1) = 0 and
for integers n > 0, and can thus be computed using the Akra-Bazzi method to be Θ(nlogn).