Tải bản đầy đủ (.ppt) (56 trang)

Tiểu luận Phân tích và thiết kế thuật toán HỆ THỨC TRUY HỒI Recurrences

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (871.49 KB, 56 trang )

HỆ THỨC TRUY HỒI
(Recurrences)
Giáo viên hướng dẫn: TS Hoàng Quang
Nhóm thực hiện: Nhóm 9, gồm các thành viên:
Trần Thị Kim Dung
Nguyễn Tiến Hoàng
Dương Minh Hùng
Nguyễn Thành Minh
Nguyễn Thanh Sơn
(Lớp Cao học Khoa học Máy tính khóa 2013-2015)
Phân công các thành viên trong nhóm

Phần mở đầu và kết luận: Thanh Sơn

Phương pháp thế: Tiến hoàng

Phương pháp cây đệ qui:Thành Minh

Phương pháp Master: Hùng + Dung
* Sự phân công chỉ mang tính chất tương đối,
nhóm đã tổ chức 2 buổi seminar nhỏ cho các
thành viên nắm được toàn bộ nội dung.
Mục đích của phần trình bày

Cung cấp cho chúng ta 3 phương pháp giải hệ
thức truy hồi:
- Phương pháp thế
- Phương pháp cây đệ qui
- Phương pháp Master

Từ đó xác định được nghiệm của hệ thức truy


hồi và kết luận được độ phức tạp của thuật
toán một cách đúng đắn.
Nội dung trình bày gồm 3 phần chính
I. Phần mở đầu
- Trình bày các khái niệm liên quan
II. Phần nội dung
- Trình bày 3 phương pháp giải công
thức truy hồi
III. Phần kết luận
- Một số kết luận rút ra sau khi
nghiên cứu 3 phương pháp giải công
thức truy hồi trên
I. Mở đầu

Đối với giải thuật đệ qui thì thời gian thực
hiện thường được mô tả bởi hệ thức truy hồi
VD: Xét giải thuật sắp xếp trộn
Procedure MERGE_SORT(A,Left,Right){T(n)}
Begin
if (Left<Right) then {1}
Begin
Mid:=Round((Left+Right)/2); {1}
Merge_Sort(A, Left, Mid); {T(n/2)}
Merge_Sort(A, Mid+1, Right);{T(n/2)}
Merge(A, left, mid, right); {n}
End;
End;
1 nếu n=1
T(n)=
2T(n/2) + n nếu n>1


Minh họa sắp xếp trộn
1. Đị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”
1. Định nghĩa về công thức truy hồi
a. Ký hiệu Θ (Θ-notation)
Định nghĩa:
Cho trước hàm g(n). Lúc đó:
Θ(g(n)) = { f(n): tồn tại số dương c
1
, c
2
và n
0
sao cho
0 ≤ c
1
g(n) ≤ f(n) ≤ c
2
g(n) với mọi n ≥ n
0
}
Θ(g(n)) được gọi là giới hạn chặt của f(n)
Ví dụ: ½.n
2
– 3.n
=

Θ(n
2
)
Chọn c
1

và c
2
sao cho: c
1
n
2
≤ ½.n
2
– 3.n

≤ c
2
n
2
với n ≥ n
0
tương đương với: c
1

≤ ½

– 3/n

≤ c

2
với n ≥ n
0
(chọn c
1
=1/14; c
2
= ½; n
0
=7)
2. Một số kí hiệu tiệm cận
Θ
Định nghĩa:
Cho trước hàm g(n). Lúc đó:
O(g(n)) = { f(n): tồn tại số dương c và n
o
sao cho
0 ≤ f(n) ≤ cg(n) với mọi n ≥ }
O(g(n)) được gọi là giới hạn trên của f(n)
Ví dụ:
f(n) = (n+1)
2.

Có thể đánh giá f(n) là O(n
2
) vì nếu chọn
n
0
= 1 và c = 4 thì: (n+1)
2

≤ 4n
2
với n ≥ 1

b. Ký hiệu O (O-notation)

O
Định nghĩa:
Cho trước hàm g(n). Lúc đó:
Ω(g(n)) = { f(n): tồn tại số dương c và n
0
sao cho
0 ≤ cg(n) ≤ f(n) với mọi n ≥ n
0
}

Ω(g(n)) được gọi là giới hạn dưới của
f(n)
Ví dụ:
n
2
= Ω (n)
tồn tại c = 1 và n
0
=1 để
n ≤ n
2
với n ≥ 1
C. Ký hiệu Ω (Ω-notation)
Minh họa ký hiệu Ω bằng đồ thị

-
Giá trị
Sàn (floor)
của một số thực x, được ký hiệu là một số nguyên lớn
nhất không lớn hơn x.
Ví dụ:
2
2
5
=






 
x
-
Giá trị
Trần (ceiling)
của một số thực x, được ký hiệu là một số
nguyên nhỏ nhất không nhỏ hơn x.
Ví dụ:
 
x
3
2
5
=







3. Trần (ceilings) và sàn (floors)

Thông thường, chúng ta bỏ qua một số chi
tiết khi thiết lập và giải công thức truy
hồi, đó là:
- Tính nguyên của đối số
- Điều kiện biên
4. Tính nguyên của đối số và điều kiện biên

Thời gian thực hiện T(n) có ý nghĩa khi n nguyên
(vì kích thước của dữ liệu vào luôn là số nguyên)

Ví dụ: Hệ thức truy hồi của thuật toán MERGE_SORT
nếu xét đến tính nguyên của đối số n là:

Sau khi bỏ qua tính nguyên của đối số, hệ thức
truy hồi của thuật toán MERGE_SORT được viết lại:
Θ(1) nếu n=1
2T(n/2) + Θ(n) nếu n>1
Tính nguyên của đối số
T(n) =
- Cho dù giá trị biên (trường hợp suy biến đệ quy) có thay đổi thì kết
quả thu được sau khi giải công thức truy hồi cũng không thay đổi
nhiều khi n đủ lớn vì chúng chỉ hơn kém nhau một hằng số C nào đó.

Do đó, độ phức tạp của thuật toán không phụ thuộc vào các điều kiện
biên ban đầu.
- Để thuận tiện, chúng ta có thể bỏ qua điều kiện biên trong quá trình
giải hệ thức truy hồi
Ví dụ:
Điều kiện biên
T(n) =
Θ(1) nếu n=1
2T(n/2) + Θ(n) nếu n>1
T(n) = 2T(n/2) + Θ(n)
II. Nội dung
1. Phương pháp thế (The substitution method)

 Phương pháp thế dùng để giải công thức truy hồi T(n), qua 2
bước thực hiện như sau:
+ Bước 1. Dự đoán chặn trên của T(n). Đó là một đại
lượng được đại diện bởi O(f(n)), khi đó ta suy đoán rằng
T(n)=O(f(n))
+ Bước 2. Sử dụng quy nạp toán học để chứng minh giả
thiết đưa ra là đúng đắn. Tức là ta chứng minh
T
(n) ≤ C.f(n),
trong đó C là một hằng số dương nào đó.

Thông thường f(n) là một trong các hàm quen
thuộc như logn, n, nlogn, n
2
, n
3
, 2

n
, n!, n
n
.
Ví dụ:
1. Phương pháp thế
)(
2
2)( n
n
TnT Θ+






=
 !"#$%&#'$
()*+,-,!,.,/01T(n)
≤C.nlogn
(*) )(
2
2)( n
n
TnT Θ+







=
     
(**) 2/log2/)2/( nncnT ≤
* Giả sử T(n) ≤C.nlogn
(1)
đúng với n/2, nghĩa là:
* Ta chứng minh
(1)
đúng với n. Từ
(*)

(**)
ta có:
   
log
2loglog
2
log
)2/log2/(2)(
ncn
ncnncn
n
n
cn
nnncnT

+−=
+≤

+≤
#231≥$
456017!,*+ !
8
T#$%
9/:,+7
;    
<
= 0 1 T#$>;' 
3?%
<
8
"@/%A'78B@
"#A$%C8
37T#A$>;A' A8D;?%(
01log)1( =≤ cnT
Sai
)(
2
2)( n
n
TnT Θ+






=
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ự
 
nnTnT ++= )172/(2)(
EF3*+
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
Sự tinh tế

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ả thuyết quy nạp không đủ mạnh.

Khắc phục: Xem lai dự đoán bằng việc trừ hoặc cộng
một số hạng thích hợp.
Ví dụ:
   

1)2/()2/()( ++= nTnTnT
&#$GGG
"#$≤
   
11)2/()2/()( +=++≤ cnncncnT
HII
JK !1"#$≤
   
bcn
bcnbncbncnT
−≤
+−=+−+−≤ 121)2/()2/()(
#3≥$
Biến đổi hệ thức về dạng thích hợp
m%'n
#1$%"#(
1
$
#1$%&#m'm$
)lglg(lg)lg(
)()2()(
)2/(2)(
)2(2)2(
lg)(2)(
2
nnOmmO
mSTnT
mmSmS
mTT
nnTnT

m
m
m
==
==
+=
+=
+=
9LM6MN OHO'7P1Q0
NRS!NT7*.-KUV,
N@
D*+
9W
X

9W
X

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.
2. Phương pháp cây đệ quy (The recursion-tree method)
- 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 trên cây đệ quy đại diện
cho chi phí phải gánh chịu ở từng mức trong quá
trình phân rã.
- Thời gian thực hiện thuật toán sẽ là tổng chi
phí theo toà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ật toán bằng các
biến đổi toán học.

×