1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn Kỹ thuật lập trình Hệ thức truy hồi (Recurrence)

28 1,4K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 251 KB

Nội dung

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

Hệ thức truy hồi (Recurrence) Lớp KHMT B (2010 – 2012) Nhóm thực - Nhóm 4: 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 Giáo viên hướng dẫn: T.S Hồng Quang  Định nghĩa cơng thức truy hồi: Công thức truy hồi đẳng thức hay bất đẳng thức hàm mơ tả thơng qua giá trị hàm đối số nhỏ Trong phần đề cập phương pháp giải hệ thức truy hồi Đó là:  phương pháp  phương pháp đệ quy  phương pháp master 1.Phương pháp thế:  Giải hệ thức truy hồi phương pháp gồm bước: Bước Đoán dạng nghiệm Bước Dùng quy nạp tốn học để chứng minh tính đắn nghiệm đốn, đồng thời làm xác hóa nghiệm cách tìm số phù hợp  Phương pháp phương pháp giải hệ thức truy hồi tự nhiên Nó hiệu quả, nhiên áp dụng trường hợp dạng nghiệm dễ đốn  Phương pháp sử dụng để đánh giá chặn hay chặn hệ thức truy hồi Ví dụ: Chúng ta thử đánh giá chặn hệ thức truy hồi sau: T ( n) = 2T (  n / 2 ) + n (1.1) 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 đó): Giả sử giả thiết quy nạp 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ó: bất đẳng thức với c ≥1 Việc chứng minh tính đắn suy đốn quy nạp cịn thể điều kiện biên Thơng thường, điều kiện biên trùng với bước sở chứng minh quy nạp, đắn với suy đoán Đối với hệ thức truy hồi (1.1), phải chọn số c đủ lớn để chặn T(n) ≤ cnlgn với điều kiện biên Tuy nhiên, yêu cầu gây số vấn đề Giả sử T(1)=1 Với n=1 T(n) ≤ cnlgn dẫn đến T(1) ≤ c1lg1 = (mâu thuẫn với T(1)=1) Do đó, trường hợp sở chứng minh quy nạp khơng thỏa mãn tính đắn Để khắc phục điều này: – Chọn điều kiện biên n0, chứng minh T(n)≤cnlgn với n>=n0 – Ta chọn n=3 điều kiện biên Khi T(3)=5 T(3) ≤ C3lg3 Với C>=2 Cách suy đoán nghiệm tốt: • Khơng có phương pháp chung cho việc đốn nghiệm • Dựa vào kinh nghiệm sáng tạo • Nếu cơng thức truy hồi có dạng gặp trước ta đốn nghiệm tương tự Xét ví dụ: T (n) = 2T (  n / 2 + 17) + n Mới nhìn vào cơng thức truy hồi phức tạp có mặt tham số 17 Tuy nhiên tham số 17 không ảnh hưởng đến nghiệm hệ thức truy hồi n đủ lớn Vì vậy, đốn ln nghiệm T(n)=O(nlgn) • Dự đốn cận cận cách sơ lược sau thu nhỏ miền cận cận cách cố gắng làm tăng cận giảm cận Một số điểm cần lưu ý: • Mơ ơt số trường hợp dự đốn dạng nghiê ôm ô thức truy hồi quy nạp tốn học khơng chứng minh • Ngun nhân: giả thiết quy nạp chưa đủ mạnh • Khắc phục: xem lại dự đoán việc trừ cộng số hạng thích hợp Ví dụ: T (n) = T (  n / 2 ) + T (  n / 2 ) + Ta đoán nghiệm O(n), gắng chứng tỏ T(n) ≤ cn với chọn lựa thích hợp cho c Thay suy đốn vào phép truy hồi ta có: T (n) ≤ c(  n / 2 ) + c(  n / 2 ) + = cn + sai Dự đoán mới: T(n) ≤ cn-b T ( n) ≤ c (  n / 2 − b) + c (  n / 2 − b) + = cn − 2b + ≤ cn − b (với b ≥1) Biến đổi biến số hệ thức dạng thích hợp: Đơi cần điều chỉnh nhỏ đối số khiến hệ thức truy hồi chưa xác định trở thành dạng tương tự gặp trước Xét hệ thức truy hồi : T (n) = 2T ( n ) + lg n Có thể đơn giản hóa hệ thức truy hồi cách thay đổi biến, để tiện dụng ta khơng quan tâm việc làm trịn giá trị số nguyên Đặt m=lgn Ta có: T(2m)=2T(2m/2)+m Bây ta đặt lại S(m)=T(2m) để có hệ thức truy hồi sau: S(m)=2S(m/2)+m Hệ thức truy hồi tương tự hệ thức (1.1) có nghiệm S(m) = O(mlgm) Thay đổi từ S(m) thành T(n): ta có T(n) = T(2m) = S(m) = O(mlgm) = O(lgn.lglgn)   Nhận xét phương pháp thế: • Phương pháp phương pháp giải hệ thức truy hồi đơn giản, hữu dụng hệ thức truy hồi có dạng nghiệm dễ đốn • Tuy nhiên khơng có sở việc đốn nghiệm, dễ dẫn đến việc đốn nghiệm khơng xác • Để khắc phục điều này, tìm hiểu phương pháp đệ qui cung cấp thêm phương pháp đốn nghiệm có sơ sở xác 2.Phương pháp đệ quy:  Trong phương pháp đệ quy, công thức truy hồi thể dạng  Cây đệ quy xây dựng dựa vào công thức đệ quy Những nút mức đệ quy đại diện cho chi phí (cost) phải gánh chịu mức q trình phân rã  Thời gian thực thuật tốn tổng chi phí theo toàn mức đệ quy Dựa tổng đó, rút đánh giá thời gian thực thuật toán biến đổi tốn học Chi phí đệ quy: Tiếp đến tính chi phí cho mức cây, số lượng nút mức gấp lần số lượng nút mức kề số nút độ sâu i 3i Bởi kích thước tốn giảm xuống với cấp số nhân hệ số cho mức xuống từ gốc, nút độ sâu i với i=0, 1, 2, 3, , log4n – có chi phí c(n/4i)2 Việc nhân lên thấy tổng chi phí tất nút độ sâu i với i = 0, 1, 2, , log4n - 1, 3i c(n/4i)2 = (3/16)i cn2 Ở mức cuối độ sâu log4n có n log nút với chi phí đóng góp T(1) tổng chi phí mức n log T(1) với Θ(n log ) Bây tính tổng chi phí tất mức để xác định chi phí cho tồn cây: 3 3 T (n) = cn + cn +   cn + +   16  16   16  log n −1 i ( ) 3 = ∑   cn + Θ n log4 i =  16  log n (3 / 16) −1 = cn + Θ(n log ) (3 / 16) − log n −1 cn + Θ(n log ) Trong cơng thức cuối có dạng tổng cấp số nhân có: Do suy đoán T(n)= O(n2) cho hệ thức truy hồi T (n) = 3T (  n / 4 ) + Θ(n ) Dùng phương pháp kiểm chứng Bây sử dụng phương pháp để kiểm chứng dự đoán Thật vậy, T(n) = O(n2) cận hệ thức truy hồi T (n) = 3T (⌊n/4⌋)+Θ(n2) Chúng ta muốn T(n) ≤ dn với d số > Giả sử giả thiết quy nạp với n/4, có nghĩa : T(⌊n/4⌋) ≤ d⌊n/4⌋ Thế bất đẳng thức giả thiết quy nạp vào hệ thức truy hồi ta có: T(n) ≤ 3T(⌊n/4⌋) + cn2 ≤ 3d⌊n/4⌋2 + cn2 ≤ 3d(n/4)2 + cn2 = 3/16 dn2 + cn2 ≤ dn2, với d ≥ (3/16)c Vậy nghiệm T (n) = 3T (⌊n/4⌋)+Θ(n 2) O(n2) Nhận xét: + Dùng phương pháp ta đốn nghiệm có sở xác + Nhưng cuối phải sử dụng lại phương pháp để kiểm chứng + Thực chất hỗ trợ đoán nghiệm cho phương pháp Phương pháp master: • Phương pháp master cung cấp phương pháp tổng quát rõ ràng để giải hệ thức truy hồi dạng: T(n)=aT(n/b)+ f(n) đó: a ≥ 1, b > 1, f(n) hàm xác định dương cho trước • Hệ thức truy hồi mô tả thời gian thực thuật tốn đệ quy Trong đó, tốn có kích thước n chia thành a tốn có kích thước n/b (a,b dương) • Thời gian thực toán T(n/b) Thời gian để phân chia tổ hợp kết toán f(n) Định lý master: • Cho a ≥ b> hằng, f(n) hàm, T(n) định nghĩa số nguyên không âm theo công thức truy hồi: T(n) = aT(n/b) + f(n) Nếu f(n) = O(nlogba – ε ) với ε > đó, T(n)=Θ(nlogba ) Nếu f(n) = Θ(nlogba ) T(n)= Θ(nlogba lgn) Nếu f(n) = Ω(nlogba + ε ) với ε > Nếu af(n/b) ≤ cf (n) n đủ lớn T(n) = Θ (f (n)) (c số đó, c < 1) Nhận xét: • Trong ba trường hợp, ta so sánh hàm f(n) với hàm nlogba • Theo trực giác, nghiệm hệ thức truy hồi xác định hàm lớn hai hàm • Như trường hợp 1, hàm nlogba lớn hơn, nghiệm T(n)= Θ(nlogba) • Trong trường hợp 3, hàm f(n) lớn hơn, nghiệm T (n) = Θ(f (n)) • Trong trường hợp hai hàm kích cỡ, ta nhân với thừa số logarit nghiệm T(n)=(n logbalgn)= Θ (f(n)lgn) Ngồi trực giác, có vài chi tiết phải làm rõ • Trong trường hợp 1, khơng f (n) phải nhỏ hơn, phải nhỏ theo đa thức Tức là, theo tiệm cận f (n) phải nhỏ nlog a ∈ ∈ thừa số n với > • Trong trường hợp thứ ba, khơng phải f(n) phải lớn nlog a, cịn phải lớn theo đa thức ngồi cịn phải thỏa điều kiện “tính cân đối” af (n/b) ≤ cf(n) Điều kiện thỏa hầu hết hàm đa thức mà ta gặp b b • Điều quan trọng phải nhận ba trường hợp không bao gồm tất khả cho f(n) • Có khoảng cách trường hợp f (n) nhỏ nlogba không nhỏ theo đa thức • Cũng vậy, có khoảng cách trường hợp f (n) lớn nlog a lớn theo đa thức • Nếu hàm f(n) rơi vào lỗ hổng đó, giả sử điều kiện trường hợp khơng trì, ta sử dụng phương pháp master để giải hệ thức truy hồi b Ví dụ 1: Cho cơng thức truy hồi: T(n) = 9T(n/3) + n • Cơng thức truy hồi có:  a=9  b=3  f(n)=n • Suy ra, nlogba = nlog39 = Θ(n2) • Vì f(n) = O(nlog39-ε) với ε = , áp dụng trường hợp định lý master thu kết T(n) = Θ(n2) Ví dụ 2: T (n) = T(2n/3) + • Cơng thức truy hồi có:  a=1  b=3/2  f(n)=1  nlogba = nlog3/21 = n0=  Vì f(n)=Θ(nlog3/21)=Θ(1) áp dụng cho trường hợp ta T(n) =Θ(nlog3/21lgn)=Θ(lgn) Ví dụ 3: T(n) = 3T(n/4) + n lg n • Cơng thức truy hồi có:  a=3  b=4  f(n)=nlgn  nlogba = nlog43=Ω(n0.793)  f(n)=Ω(nlog43+ε) với ε ≈0.2  điều kiện trường hợp 3: af(n/b) = 3(n/4)lg(n/4) ≤ ≤ ¾.nlgn = cf(n) (với c=3/4 < n đủ lớn)  Vậy T(n)=Θ(nlgn) Kết luận Các phương pháp mạnh có cách giải vấn đề riêng: - Phương pháp phương pháp đoán nghiệm tự nhiên dựa kinh nghiệm người làm - Phương pháp đệ qui cung cấp cơng cụ mạnh để đốn nghiệm xác, nhiên việc tính tổng chi chí nút đệ qui dễ dàng - Phương pháp master có ý nghĩa điều kiện thỏa mãn  rõ ràng việc tìm nghiệm công thức truy hồi dễ dàng Nhóm xin chân cám ơn thầy giáo bạn lắng nghe, góp ý kiến!!! ... Định nghĩa công thức truy hồi: Công thức truy hồi đẳng thức hay bất đẳng thức hàm mơ tả thơng qua giá trị hàm đối số nhỏ Trong phần đề cập phương pháp giải hệ thức truy hồi Đó là:  phương... giải hệ thức truy hồi tự nhiên Nó hiệu quả, nhiên áp dụng trường hợp dạng nghiệm dễ đốn  Phương pháp sử dụng để đánh giá chặn hay chặn hệ thức truy hồi Ví dụ: Chúng ta thử đánh giá chặn hệ thức. .. hệ thức dạng thích hợp: Đơi cần điều chỉnh nhỏ đối số khiến hệ thức truy hồi chưa xác định trở thành dạng tương tự gặp trước Xét hệ thức truy hồi : T (n) = 2T ( n ) + lg n Có thể đơn giản hóa hệ

Ngày đăng: 19/09/2014, 14:36

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w