Tiểu luận môn Kỹ thuật lập trình Hệ thức truy hồi (Recurrence) Công thức truy hồi là một đẳng thức hay một bất đẳng thức trong đó một hàm được mô tả thông qua giá trị của chính hàm đó trên các đối số nhỏ hơn. Trong phần này sẽ đề cập 3 phương pháp giải quyết hệ thức truy hồi. Đó là: phương pháp thế phương pháp cây đệ quy phương pháp master
Trang 1Hệ thức truy hồi (Recurrence)
Lớp KHMT B (2010 – 2012) Giáo viên hướng dẫn: Nhóm thực hiện - Nhóm 4: T.S Hoàng Quang
Nguyễn Thị Thanh Tâm
Lê Bá Minh Phong
Trần Thị Thành
Nguyễn Vũ Cát Tường
Trần Như Đăng Tuyên
Trang 2 Định nghĩa về công thức truy hồi :
Công thức truy hồi là một đẳng thức hay một bất đẳng thức trong đó một hàm được
mô tả thông qua giá trị của chính hàm đó trên các đối số nhỏ hơn.
Trong phần này sẽ đề cập 3 phương
pháp giải quyết hệ thức truy hồi Đó là:
phương pháp thế
phương pháp cây đệ quy
phương pháp master
Trang 31.Phương pháp thế:
Giải hệ thức truy hồi bằng phương pháp thế gồm 2 bước:
Bước 1 Đoán dạng của nghiệm
Bước 2 Dùng quy nạp toán học để chứng minh
tính đúng đắn của nghiệm được đoán, đồng thời làm chính xác hóa nghiệm bằng cách tìm các hằng số phù hợp
Phương pháp thế là một phương pháp giải hệ thức truy hồi khá tự nhiên Nó rất hiệu quả, tuy nhiên chỉ áp dụng trong các trường hợp dạng của nghiệm là dễ
đoán.
Phương pháp thế có thể được sử dụng để đánh giá
Trang 4Ví dụ:
Chúng ta thử đánh giá chặn trên đối với hệ thức truy hồi sau:
n n T
n
Bước 1: Suy đoán T(n)=O(nlgn)
Bước 2: Sử dụng phương pháp qui nạp để chứng minh T(n) ≤ c.nlogn (c:hằng số thích hợp nào đó):
Giả sử rằng giả thiết quy nạp đúng với n/2, có nghĩa là:
T([n/2]) ≤ c[n/2]lg[n/2] Thế bất đẳng thức ở giả thiết quy nạp vào hệ thức truy hồi (1.1), ta có:
(1.1)
trong đó bất đẳng thức đúng với mọi c ≥1.
Trang 5Việc chứng minh tính đúng đắn của suy đoán bằng quy nạp còn thể hiện ở điều kiện biên Thông thường, chúng ta chỉ ra rằng điều kiện biên trùng với bước cơ sở trong chứng minh quy nạp, vì vậy nó là đúng đắn với sự suy đoán Đối với hệ thức truy hồi (1.1), chúng ta phải chỉ ra rằng có thể chọn hằng số c đủ lớn để chặn trên
T(n) ≤ cnlgn đúng với điều kiện biên Tuy nhiên, yêu cầu này đôi khi gây ra một số vấn đề Giả sử T(1)=1 Với
n=1 thì T(n) ≤ cnlgn dẫn đến T(1) ≤ c1lg1 = 0 (mâu thuẫn với T(1)=1) Do đó, trường hợp cơ sở của chứng minh quy nạp không thỏa mãn tính đúng đắn
Trang 6Cách suy đoán nghiệm tốt:
• Không có phương pháp chung cho việc đoán nghiệm
• Dựa vào kinh nghiệm và sự sáng tạo
• Nếu công thức truy hồi có dạng đã gặp trước thì ta đoán nghiệm tương tự
T n
T ( ) 2 ( / 2 17 )
Xét ví dụ:
Mới nhìn vào công thức truy hồi này có vẻ phức tạp vì
sự có mặt của tham số 17 Tuy nhiên tham số 17 này
về cơ bản không ảnh hưởng đến nghiệm của hệ thức
truy hồi trên khi n đủ lớn
Vì vậy, có thể đoán luôn nghiệm T(n)=O(nlgn)
• Dự đoán các cận trên và cận dưới một cách sơ lược
rồi sau đó thu nhỏ miền giữa cận dưới và cận trên bằng
cách cố gắng làm tăng cận dưới và giảm cận trên
Trang 7Một số điểm cần lưu ý:
• Một số trường hợp có thể dự đoán đúng dạng nghiệm của hệ thức truy hồi nhưng quy nạp toán học không chứng minh được
• Nguyên nhân: giả thiết quy nạp chưa đủ mạnh
• Khắc phục: xem lại dự đoán bằng việc trừ hoặc cộng một số hạng thích hợp
Ví dụ: T(n) T( n/ 2 ) T( n/ 2 ) 1
/ 2 ) ( / 2 ) 1 1(
)(n c n c n cn
T
Dự đoán mới: T(n) cn-b
c n
Trang 8Biến đổi biến số của hệ thức về dạng thích hợp:
Đôi khi chỉ cần điều chỉnh nhỏ trong đối số là khiến một
hệ thức truy hồi chưa được xác định trở thành dạng tương
tự như đã gặp trước đó
Xét hệ thức truy hồi :
Có thể đơn giản hóa hệ thức truy hồi này bằng cách thayđổi các biến, để tiện dụng ta sẽ không quan tâm về việclàm tròn các giá trị như sẽ là các số nguyên
n
T( ) 2 ( ) lg
Trang 9Nhận xét về phương pháp thế:
• Phương pháp thế là phương pháp giải hệ thức truy hồi khá đơn giản, rất hữu dụng đối với những hệ thức truy hồi có dạng nghiệm dễ đoán
• Tuy nhiên không có cơ sở trong việc đoán nghiệm, vì vậy dễ dẫn đến việc đoán nghiệm có thể không chính xác
• Để khắc phục điều này, chúng ta sẽ đi tìm hiểu về
phương pháp cây đệ qui sẽ cung cấp thêm 1 phương pháp đoán nghiệm có sơ sở và chính xác hơn
Trang 102.Phương pháp cây đệ quy:
Trong phương pháp cây đệ quy, công thức truy hồi
được thể hiện dưới dạng cây
Cây đệ quy được xây dựng dần dần dựa vào công thức
đệ quy Những nút ở từng mức trên cây đệ quy đại diệncho chi phí (cost) phải gánh chịu ở mức đó trong quá trìnhphân rã
Thời gian thực hiện thuật toán sẽ là tổng chi phí theotoàn bộ các mức của cây đệ quy Dựa trên tổng đó, chúng
ta sẽ rút ra được đánh giá về thời gian thực hiện của thuậttoán bằng các biến đổi toán học
Trang 11Xét ví dụ, chẳng hạn xét một cây đệ quy để đưa ra mộtphỏng đoán với hệ thức truy hồi sau:
Chúng ta bắt đầu bằng cách tập trung vào tìm cận trên cholời giải này Chúng ta sẽ tạo một cây đệ quy từ hệ thức truyHồi: , với c>0
/ 4 ) ( ) (
3 )
( n T n n2
/ 4 ) ( ) (
3 )
Trang 13• Kích thước của bài toán con giảm khi chúng ta triển khai tiếp cho đến khi chúng ta đạt đến điều kiện biên.
• Kích thước của bài toán con ở một nút với độ sâu i là n/4i
• kích thước của bài toán con đạt đến giá trị 1 khi mà n/4i=1 hoặc là tương đương khi mức i=log n do vậy cây có log n +1
Xác định độ cao của cây đệ quy:
Trang 14Tiếp đến chúng ta tính chi phí cho mỗi mức của cây, số lượng nút của mức
dưới gấp 3 lần số lượng nút của mức kề trên nó và vì thế số nút tại độ sâu i
là 3 i Bởi vậy kích thước của bài toán con sẽ giảm xuống với cấp số nhân hệ
số 4 cho mỗi mức khi chúng ta đi xuống từ gốc, mỗi nút tại độ sâu i với i=0,
1, 2, 3, , log 4n – 1 có chi phí là c(n/4 i)2 Việc nhân lên chúng ta sẽ thấy tổng
chi phí của tất cả các nút tại độ sâu i với i = 0, 1, 2, , log4n - 1, là 3 i c(n/4 i) 2 = (3/16)i cn2 Ở mức cuối cùng tại độ sâu log 4 n có nút với chi phí đóng góp là T(1) vì vậy tổng chi phí của mức này là T(1) với
3 log4
n
3 log4
Chi phí cây đệ quy:
Trang 15Bây giờ chúng ta tính tổng chi phí của tất cả các
mức để xác định chi phí cho toàn bộ cây:
)
( 1
) 16 / 3 (
1 )
16 / 3 (
16 3
)
( 16
3
16
3 16
3 )
(
3 log 2
log
1 log
0
3 log 2
3 log 2
1
log 2
2 2
2
4 4
4
4
4 4
n cn
n cn
n cn
cn cn
cn n
T
n
n i
Trang 16Trong công thức cuối này nó có dạng là tổng cấp số nhân
vì vậy chúng ta có:
Do đó chúng ta có thể suy ra phỏng đoán T(n)= O(n2) cho
hệ thức truy hồi T (n) 3T( n / 4 ) (n2 )
Trang 17Bây giờ chúng ta sử dụng phương pháp thế để kiểm chứng
dự đoán của chúng ta là đúng
Thật vậy, T(n) = O(n2) là một cận trên của hệ thức truy hồi
T (n) = 3T ( n/4 )+Θ(n⌊n/4⌋)+Θ(n ⌋)+Θ(n 2)
Chúng ta muốn chỉ ra rằng T(n) ≤ dn2 với d là một hằng số > 0 Giả sử rằng giả thiết quy nạp đúng với n/4, có nghĩa là :
Trang 19dương cho trước
• Hệ thức truy hồi trên mô tả thời gian thực hiện của thuật toán đệ quy Trong đó, bài toán có
kích thước n được chia thành a bài toán con có kích thước n/b (a,b dương)
• Thời gian thực hiện bài toán con là T(n/b) Thời
gian để phân chia và tổ hợp các kết quả bài
toán con là f(n)
Trang 20Đị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 công thức truy hồi:
T(n) = aT(n/b) + f(n)
1 Nếu f(n) = O(nlogb a – ε ) với ε > 0 nào đó, thì T(n)=Θ(nlogb a )
2 Nếu f(n) = Θ(nlogb a ) thì T(n)= Θ(nlogba lgn)
3 Nếu f(n) = Ω(nlogb a + ε ) với ε > 0 nào đó
Nếu af(n/b) ≤ cf (n) khi n đủ lớn thì T(n) = Θ (f (n))
(c là một hằng số nào đó, c < 1)
Trang 21Nhận xét:
• Trong cả ba trường hợp, ta đang so sánh hàm f(n) với
• 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 n log b a là lớn hơn,
• 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
Θ (f(n)lgn).
Trang 22Ngoà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 b a 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)
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.
Trang 23• Đ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 nlogba 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 b a 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.
Trang 24Ví dụ 1:
• Công thức truy hồi trên có:
• Suy ra, nlogb a = nlog3 9 = Θ(nn2)
• Vì f(n) = O( nlog3 9-ε) với ε = 1 , áp dụng trường hợp 1 của định lý master và thu được kết quả
T(n) = Θ(nn2)
Trang 27Kết luận
Các phương pháp đều có thế mạnh và có cách
giải quyết vấn đề riêng:
- Phương pháp thế là phương pháp đoán nghiệm tự nhiên nhưng dựa trên kinh nghiệm của người làm
- Phương pháp cây đệ qui cung cấp 1 công cụ khá mạnh
để đoán nghiệm chính xác, tuy nhiên việc tính tổng chi chí các nút của cây đệ qui không phải khi nào cũng dễ dàng
- Phương pháp master có ý nghĩa khi các điều kiện được thỏa mãn rõ ràng việc tìm ra nghiệm của công thức truy hồi là dễ dàng
Trang 28Nhóm 4 xin chân cám ơn thầy giáo
và các bạn lắng nghe, góp ý
kiến!!!