II. Nội dung
3 Phương pháp master
3.1 Định lý Master
Cho a ≥ 1 và b> 1 là các hằng, f(n) là một hàm, và T(n) được định nghĩa trên các số nguyên không âm theo phép truy toán.
T(n) = aT(n/b) + f(n),
Ở đó ta hiểu n/b theo nghĩa (n/b) hoặc (n/b). Như vậy T(n) có thể được định cận theo tiệm cận sau:
1. Nếu f(n)=O(nlog
ba-∈) với hằng ∈ >0 nào đó, thì T(n)=Θ(nlog ba) 2. Nếu f(n)=Θ(nlog
ba) thì T(n)=Θ(nlog balgn) 3. Nếu f(n) = Ω( nlog
ba+∈) với hằng ∈ > 0 nào đó, và nếu a f (n/b) ≤
cf (n) với hằng c < 1 và với mọi n đủ lớn, thì T(n) = Θ (f (n)).
Trước khi áp dụng định lý master cho một số ví dụ, chúng ta tìm hiểu ý
nghĩa của nó. Trong cả ba trường hợp, ta đang so sánh hàm f(n) với hàm nlog
ba. Theo trực giác, nghiệm của hệ thức truy hồi được xác định bởi hàm lớn hơn
trong hai hàm. Như trong trường hợp 1, nếu hàm nlog
ba là lớn hơn, nghiệm sẽ là T(n)=Θ(nlog
ba). Trong trường hợp 3, nếu hàm f(n) lớn hơn , nghiệm sẽ là T (n) =
Θ(f (n)). Trong trường hợp 2 nếu hai hàm cùng kích cỡ, ta nhân với một thừa số
logarit và nghiệm sẽ là T(n)=Θ(nlog
balgn)= Θ(f(n)lgn).
Ngoài trực giác, có một vài chi tiết phải được làm rõ. Trong trường hợp 1, không chỉ f (n) phải nhỏ hơn , nó còn phải nhỏ hơn theo đa thức. Tức là, theo
tiệm cận f (n) phải nhỏ hơn nlog
ba một thừa số n∈ với một hằng ∈> 0 nào đó.
Trong trường hợp thứ ba, không chỉ phải f(n) phải lớn hơn nlog
hơn theo đa thức và ngoài ra còn phải thỏa điều kiện “tính cân đối” af (n/b) ≤
cf(n). Điều kiện này được thỏa hầu hết các hàm đa thức mà ta sẽ gặp.
Điều quan trọng là phải nhận ra rằng ba trường hợp không bao gồm tất cả các khả năng cho f(n). Có một khoảng cách giữa trường hợp 1 và 2 khi f (n) là nhỏ hơn nlog
ba nhưng không nhỏ hơn theo đa thức. Cũng vậy, có một khoảng
cách giữa các trường hợp 2 và 3 khi f (n) là lớn hơn nlog
ba nhưng không phải lớn hơn theo đa thức. Nếu hàm f(n) rơi vào một trong những lỗ hổng đó, hoặc giả sử điều kiện trong trường hợp 3 không được duy trì, ta không thể sử dụng phương pháp master để giải quyết hệ thức truy hồi.