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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

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

Trang 1

Hệ 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 3

1.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 4

Ví dụ:

Chúng ta thử đánh giá chặn trên đối với hệ thức truy hồi sau:

nn 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 5

Việ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 6

Cá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 7

Mộ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(

)(nc nc n  cn

T

Dự đoán mới: T(n)  cn-b

c n

Trang 8

Biế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 9

Nhậ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 10

2.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 11

Xé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 14

Tiế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 15

Bâ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 16

Trong 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 17

Bâ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 19

dươ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 21

Nhậ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 22

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 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 24

Ví 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 27

Kế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 28

Nhóm 4 xin chân cám ơn thầy giáo

và các bạn lắng nghe, góp ý

kiến!!!

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