Đệ quy


7

Tôi đang xem xét mức tái phát mô tả thời gian chạy của một số thuật toán không xác định (trường hợp cơ sở không được cung cấp).

T(n)=T(n/2)+T(n/3)+n,

Sử dụng cảm ứng, tôi thấy rằng , nhưng đã được thông báo rằng điều này không chặt chẽ. Thật vậy, giả sử rằng cho tất cả (và các giá trị đủ lớn của ), sau đóT(n)=O(nlogn)T(k)Cklogkk<nk

T(n)Cn2logn2+Cn3logn3+n=C56nlognn(C/2+Clog3/31).

Bây giờ tôi chọn đủ lớn cho , và vì vậy biểu thức cuối cùng bị chi phối bởi .C(C/2+Clog3/31)>0C56nlognCnlogn

Câu hỏi đầu tiên của tôi là, cái gì chặt chẽ hơn thế này?

Thứ hai, tôi đã thử sử dụng phương pháp Akra-Bazzi để giải quyết vấn đề này, vì vậy hãy để giải quyết Sau đó, khoảng và (với ) tôi nhận được và như vậyp

(12)p+(13)p=1.
p=0.79g(n)=n
1ng(u)up+1du=1n1updu=11p(n1p1),

T(n)=Θ(np(1+11p(n1p1))).

Điều này bằng , vì vậy, tổng thể , vì . Câu hỏi thứ hai của tôi là tôi không thực sự tin rằng là tuyến tính, vậy điều gì đã xảy ra trong ứng dụng Akra-Bazzi của tôi?Θ(np+11pn11pnp)Θ(n)p<1T

Trân trọng.

Câu trả lời:


5

Nếu và , chúng ta có thể chỉ ra rằng bằng cảm ứng.T(1)6T(2)12T(n)6n

T(n)=T(n/2)+T(n/3)+n6(n/2)+6(n/3)+n=6n.

Tổng quát hơn, đặt là hằng số sao cho và , sau đó chúng ta có thể chứng minh thường xuyên rằng . Mặc dù có vẻ khó tin với bạn, nhưng sự thật là c>6T(1)cT(2)2cT(n)cn

T(n)=O(n).

Theo trực giác, vì , các thuật ngữ và không đủ lớn để nâng lên lũy thừa của số mũ lớn hơn.12+13<1T(n/2)T(n/3)nn

Không có gì sai trong ứng dụng phương pháp Akra-Bazzi của bạn, điều này cho chúng ta biết rằng .T(n)=Θ(n)


4

Đặt . Sau đó thỏa mãn sự tái phát Đặc biệt, nếu thỏa mãn thì sẽ bao hàm . Đây là trường hợp cho tất cả .S(n)=T(n)/nS(n)

S(n)12S(n2)+13S(n3)+1.
C
12C+13C+1C
S(n/2),S(n/3)CS(n)CC6

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.