Chứng minh định lý master

Một phần của tài liệu Tiểu luận phân tích và thiết kế thuật toán hệ THỨC TRUY hồi (Trang 29)

II. Nội dung

3 Phương pháp master

3.3 Chứng minh định lý master

Chứng minh định lý master gồm có 2 phần. Phần đầu sẽ phân tích hệ thức truy hồi (*) với sự đơn giản hóa giả thiết rằng T(n) được xác định trên tập đối số là lũy thừa của b > 1, đó là n = 1, b, b2, … .Phần thứ hai sẽ mở rộng tập đối số trên mọi số nguyên n với sự trợ giúp của hàm sàn và hàm trần.

Trong phần này, chúng ta hạn chế dùng các ký hiệu tiệm cận khi mô tả các hàm chỉ được định nghĩa trên tập đối số là lũy thừa của b. Ví dụ, chứng minh được rằng T(n) = O(n) khi n là lũy thừa của 2 không đảm bảo được rằng T(n) = O(n) với mọi n nguyên dương. Bởi vì T(n) có thể được định nghĩa như sau:

n nếu n = 1, 2, 4, 8, …

n2 với các trường hợp còn lại

trong trường hợp này chặn trên của T(n) là T(n) = O(n2)

a. Chứng minh với trường hợp n là lũy thừa của b

Phần đầu của chứng minh là phân tích hệ thức truy hồi (*) T(n) = aT(n/b) + f(n)

Với giả thiết rằng n là lũy thừa của b >1, b không nhất thiết phải là một số nguyên. Quá trình phân tích được chia thành 3 bổ đề. Bổ đề thứ nhất bằng phương pháp cây đệ quy sẽ đưa bài toán tìm nghiệm của hệ thức truy hồi thành bài toán đánh giá tổng chi phí trên các mức của cây đệ quy. Trong khi chi phí ở các nút lá có thể tính toán được thì tổng chi phí trên các mức còn lại được ghi nhận bởi một biểu thức tổng. Bổ đề thứ hai sẽ đánh giá chính xác biểu thức tổng này bằng bao nhiêu. Bổ đề thứ ba là sự kết hợp kết quả của hai bổ đề trước đó để cho ra kết quả của định lý master trong trường hợp n là lũy thừa của b.

Bổ đề 1

Cho các hằng số a ≥ 1 và b > 1, f(n) là hàm không âm xác định trên n là lũy thừa của b. T(n) được định nghĩa trên tập các lũy thừa của b như sau:

Θ(1) khi n =1,

aT(n/b) + f(n) khi n = bi,

i là số nguyên dương. Lúc đó:

Chứng minh: Chúng ta sử dụng cây đệ quy được mô tả như hình 3

(6) T(n) =

Hình 3 Cây đệ quy được sinh ra bởi T(n) = aT(n/b) + f(n). Cây a-phân này có chiều cao logbn và nlog

bn lá. Chi phí ở từng mức được ghi ở bên trái và tổng chi

phí được cho bởi biểu thức (4.6)

Gốc của cây có chi phí là f(n), gốc có a con, mỗi con có chi phí là f(n/b). Với

mỗi con đó lại có a con tiếp sau với chi phí f(n/b2), do đó có a2 nút có khoảng

cách 2 tính từ gốc. Tổng quát, có aj nút với khoảng cách j tính từ gốc, mỗi nút có

chi phí là f(n/bj). Chi phí ở mỗi nút lá là T(1) = Θ(1), và mỗi lá có độ cao logbn

vì n/blog

bn =1. Có tất cả alog

bn = nlog

ba lá trên cây đệ quy.

Chúng ta thu được đẳng thức (4.6) bằng cách lấy tổng các chi phí theo từng

mức của cây đệ quy. Chi phí ở mức j đối với các nút trong là ajf(n/bj), vì vậy

tổng chi phí các nút trong là:

Tổng trên đại diện cho chi phí phân rã bài toán thành các bài toán con rồi sau đó tổng hợp các bài toán con để cho ra lời giải. Chi phí ở các nút là là chi phí thực hiện các bài toán con với chi phí 1 là nlog

ba là Θ(nlog ba)

Tổng trong biểu thức (6) biểu diễn chi phí của việc phân rã và kết hợp trong chiến lược chia để trị. Bổ đề tiếp theo sẽ đánh giá tổng đó dựa trên các ký hiệu tiệm cận

Bồ đề 2

Cho các hằng số a ≥ 1 và b > 1, f(n) là hàm không âm xác định trên n là lũy thừa của b. Hàm g(n) được định nghĩa trên tập các lũy thừa của b:

bị chặn một cách tiệm cận trên tập các lũy thừa của b như sau: 1. Nếu f(n) = O(nlog

ba-ε) với hằng ε >0 nào đó thì g(n) = O(nlog ba) 2. Nếu f(n) = Θ(nlog

ba) thì g(n) = Θ (nlog ba lgn)

3. Nếu af(n/b) ≤ cf(n) với hằng c < 1 nào đó và với mọi n ≥ b, thì g(n) = Θ (f(n))

Chứng minh: Đối với trường hợp 1, ta có f(n) = O(nlog

ba-ε), suy ra rằng f(n/bj) = O((n/bj)log

ba-ε). Thế vào đẳng thức (7) thu được

Tổng trong đẳng thức (4.8) là được tính như sau:

(7)

Bởi vì b và ε là hằng số nên nlog

ba-ε O(nε) = O(nlog

ba). Thay vào đẳng thức (8) ta có g(n) = O(nlog

ba). Trường hợp 2 được chứng minh.

Với giả thiết f(n) = Θ(nlog

ba) suy ra f(n/bj) = Θ ((n/bj)log

ba). Thay vào đẳng thức (4.7) thu được:

Tương tự như trường hợp 1, tổng trong biểu thức (9) được tính như sau:

Thay kết quả vừa tính được vào biểu thức (9)

trường hợp 2 được chứng minh.

Trường hợp 3 được chứng minh một cách tương tự. Vì tính chất f(n) xuất hiện trong đẳng thức (7) của g(n) và tất cả hạng thức của g(n) là không âm, chúng ta có thể kết luận rằng g(n) = Ω(f(n)) với n là các lũy thừa của b. Theo giả thiết af(n/b) ≤ cf(n) với hằng c < 1 nào đó và với mọi n ≥ b, ta có f(n/b) ≤ (c/a)f(n). Lặp lại j bước ta có f(n/bj) ≤ (c/a)j f(n). Thay vào đẳng thức (7):

với c là hằng số. Vì vậy, có thể kết luận rằng g(n) = Θ (f(n)) với n là các lũy thừa của b. Trường hợp 3 được chứng minh. Bổ đề được chứng minh.

Dựa vào 2 bổ đề trên, định lý master được chứng minh với trường hợp n là lũy thừa của b.

Bồ đề 3

Cho các hằng số a ≥ 1 và b > 1, f(n) là hàm không âm xác định trên n là lũy thừa của b. T(n) được định nghĩa trên tập các lũy thừa của b như sau:

Θ(1) khi n =1,

aT(n/b) + f(n) khi n = bi,

i là số nguyên dương. Lúc đó: 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 ba lgn) 3. Nếu f(n) = Ω (nlog

ba+ε) với hằng ε >0 nào đó và af(n/b) ≤ cf(n) với hằng c < 1 nào đó và với mọi n đủ lớn, thì T(n) = Θ (f(n))

Chứng minh Dựa vào bổ đề 3 để đánh giá tổng (6) từ bổ đề 2. Đối với trường hợp 1, ta có

Đối với trường hợp 2,

vì f(n) = Ω (nlog ba+ε)

b. Hàm sàn (floor) và hàm trần (ceiling)

Để hoàn tất việc chứng minh định lý master, chúng ta mở rộng sự khảo sát với sự có mặt của hàm sàn và hàm trần trong hệ thức truy hồi. Từ đó hệ thức truy hồi có thể được định nghĩa trên tập số nguyên, không chỉ riêng trường hợp là lũy thừa của b như trước đây. Chúng ta có thể đánh giá chặn dưới của

và đánh giá chặn trên của

vì và . Việc đánh giá chặn dưới của (4.11) cũng

tương tự như đánh giá chặn trên của (4.10) vì vậy chúng ta chỉ thực hiện với một trường hợp, trường hợp còn lại hoàn toàn tương tự.

Chúng ta điều chỉnh cây đệ quy ở hình 3 để có được cây đệ quy mới như hình 4.

Hình 4 Cây đệ quy sinh bởi . Phần tử nj được cho bởi

biểu thức (4.12)

Đi dọc theo cây đệ quy mới này, chúng ta sẽ thu được những lời gọi đệ quy đối với các đối số như sau:

(10) (11)

Ký hiệu phần tử thứ j của dãy là nj trong đó

Mục đích trước hết của chúng ta là xác định độ sâu k sao cho nk là hằng số. Sử

dụng bất đẳng thức , ta có:

Tổng quát,

Đặt j = , ta có:

Từ đó nhận xét rằng tại độ sâu ddd thì kích thước của bài toán là không đổi. Từ hình 4 chúng ta thấy rằng

tương đương với đẳng thức (6) ngoại trừ bây giờ n là một số nguyên bất kỳ, không bị giới hạn bởi giả thiết n là lũy thừa của b.

Bây giờ chúng ta có thể đánh giá tổng xuất hiện trong (13)

Bắt đầu bằng trường hợp thứ 3, nếu d với n > b+b/(b-1) (hằng số c < 1) thì ajf(nj)

≤ cjf(n). Vì vậy, tổng trong biểu thức (14) có thể được đánh giá như ở bổ đề 3

Đối với trường hợp 2, chúng ta có f(n) = Θ(nlog

ba). Nếu như chúng ta có thể chỉ ra f(nj) = O(nlog

ba / aj) = O((n/bj)log

ba) thì trường hợp 2 của bổ đề 3 được chứng

minh. Nhận xét rằng kéo theo bj/n ≤ 1. Chặn trên của f(n) là

O(nlog

ba) suy ra tồn tại hằng số c > 0 sao cho với nj đủ lớn thì:

trong đó c(1 + b/(b-1))log

ba là hằng số. Vì vậy, trường hợp 2 được chứng minh.

Chứng minh trường hợp 1 hoàn toàn rõ ràng. Ý tưởng chính là chứng minh f(nj)

= O(nlog

ba-ε), chứng minh tương tự trường hợp 2.

Chúng ta đã xác định được chặn trên của T(n) được xác định bằng hệ thức truy hồi với mọi n nguyên. Việc xác định chặn dưới của T(n) hoàn toàn tương tự.

Một phần của tài liệu Tiểu luận phân tích và thiết kế thuật toán hệ THỨC TRUY hồi (Trang 29)

Tải bản đầy đủ (DOC)

(37 trang)
w