Kỹ thuật đánh giá thuật toán Nội dung: 1. Công cụ sơ cấp 2. Hàm sinh 3. Nhóm Hoán vị 4. Định lý Master Phép toán chủ yếu trong các đoạn mã là phép gán và so sánh. Phƣơng pháp này không giải quyết đƣợc hết các trƣờng hợp tổng quát
Trang 1C HƯƠNG 2
1
Trang 5sum = sum +i*j;
Trang 6sum = sum +i*j;
Trang 7n P
Gan n
1 1 1
2 2
2
2 2
2
) ( 1
i i
i
Trang 82
1)(
20
2 2
2
2 2
2
2
n i
khi n
i
n i
khi
n i
khi i
n i
n i
Trang 9n i
n
n i
n
n i
i n
i
i
i n
n
n i
n n
12
22
12
22
2
22
2
Trang 10
2
41
12
22
2
22
1
12
22
2
n
n n
n n
n
i n
n n
n
n
n i
Trang 11(thể hiện rõ ràng trong đoạn mã)
Loại 2: Số lần lặp không tường minh
Có thể tính toán xác định Ví dụ: Tổng n số nguyên
Biến ngẫu nhiên phụ thuộc dữ liệu nhập Ví dụ: Tìm số lớn nhất
11
Trang 12 Vòng lặp trong số vòng lặp khôngxác định một cách hiển nhiên
Trang 15 Không phụ thuộc vào dữ liệu ngẫu nhiên
Rẽ nhánh phụ thuộc tính ngẫu nhiên
Dùng xác xuất
15
Trang 17B ÀI T ẬP
2.1.1 Tính số phép so sánh của ví dụ trong slide 5
Từ đó xác định thời gian thực hiện của thuật toán đó.
2.1.2 Xác định thời gian thực thi của đoạn mã sau:
17
sum = 0;
i = 1;
while (i ≤ n) {
j = i;
while ( j > 0 ) {
Trang 19N ỘI DUNG
1 Công cụ sơ cấp
2 Hàm sinh (Generating function)
2.1 Giới thiệu về hàm sinh
Trang 20n
nz a z
z a z
f
n
n n
an n0 f ( z )
Trang 210
0 1
,
0 , 0
,
1
0
0
0 0
,
0 , 0
z z
1 1
,
1 , 1
z
1 1
Trang 221
0
n a
a
a
n n
n
n
n z a z
f
Trang 23n n n
n
a z
z zf
1
2
7 )
(
k
k k
k
k
a z
1 )
7 2
1 )
(
1
0 0
7 2
1 )
zf
Trang 247 )
( 2
1 )
z f
z zf
7 )
( 2
1 )
z
a z
f z
7 2
1 )
( 2
1
0
z
a z
f z
z
1
1 2
7 3
)
( 2
1
Trang 25z f
z z
z
z f
z z
z
z f
z
z f z
2
8 )
(
1 2
2 1
1 7
1 2
6 )
(
1 2
1
7 1
2
6 )
(
1 2
7 3
)
( 2
1 2
Trang 262 H ÀM SINH
2.1 GIỚI THIỆU VỀ HÀM SINH
Ví dụ: Xác định hàm sinh của dãy sau:
) ( )
1 (
7 )
0 (
n n
n T n
T T
Trang 272 H ÀM SINH
2.2 TÍNH CHẤT CỦA HÀM SINH
F(z) là hàm sinh của dãy {an} có bán kính hội tụ là R1
G(z) là hàm sinh của dãy {bn} có bán kính hội tụ là R2
1 0
2
2
1 0 0
1
1
0 0
0
n
k n k
c
b a b
a b
a
c
b a b
Trang 283 1 1 1 1 1 1
2 1 1 1 1 1
(
1 )
z H
Trang 29G
Trang 321 2
1 3
1 )
Trang 332 H ÀM SINH
2.3 HÀM SINH CỦA DÃY PHÂN BỐ XÁC SUẤT
Tính chất hàm sinh của dãy phân bố xác xuất
Định lý:
a) Kỳ vọng của biến ngẫu nhiên X
(trong đó G là hàm sinh tương ứng với X)
0
G np
Mean G
1 ( '' )
)
Trang 3411 6
1 9 2
1 4 3
1 )
(
6
11 2
1 1 3 1
2 2
0 2
n X
Var
np X
1 ( ' [ ) 1 ( ' )
1 ( ' )
(
1 ) ( '
6
11 )
1 ( '
2
1 3
1 ) ( ' 6
1 2
1 3
1 ) (
2
2 3
G X
Var
z z
G
G X
z z
z G z
z z
z G
Trang 35và F(z) là hàm sinh của dãy {rn} đƣợc xác định nhƣ sau:
35
) (
) (
) (
) (
) (
) (
H Var
G Var
F Var
H Mean
G Mean F
1 1
0 0 0
n
k n k
n p q r
q p q
p r
q p r
Trang 363 4
1 2
1 4
1 3
3
2 )
F
Trang 372 )
(
1
z z
3
1 3
,3
1,32
1 4
1 )
4
1 2
1 4
,4
1,2
1,41
Trang 382 H ÀM SINH
2.3 HÀM SINH CỦA DÃY PHÂN BỐ XÁC SUẤT
nên là hàm sinh của dãy xác suất
Mean(F) = Mean(F1)+Mean(F2)+Mean(F3)
3 )
8
5 8
,8
5,0,0
,83
Trang 39n
nz a z
a a p
Trang 40( n là biến ngẫu nhiên {0, …, n-1})
1
n
Trang 421
)
| (
1 1
)
| (
1
)
| (
) (
)
| (
).
( )
(
1 1
M k
P n
M k
P n p
M k
P M P M
k P
M P k
P
k n k
n nk
n n
nk
n n
Trang 431 0
1 0
1
1 1
1 1 0
1
1 1
1 0
1
0 0
1 1
1 1
1
1 1
1
n k
k k n k
k
k n n
k
k k n k
k
k n n
k k
k n k
n n
k k
nk n
k k
nk n
p z
p n
z
p n
z p
z
p n
z
p n
p
z
p n
p n p
z p p
z p z
G
Trang 440 1 0
1 0
1 0
1 1
1 1
n n
n k
k k n k
k
k n n
n
p z
G n
z
G n
z p
p z
p n
z
p n
z p
10
1 0
n
P p
n n
n n
Trang 451 1
1
1
1 1
1 1
1
1 1
1
1 1
1 1
0 1 1
1 0
G n
n z
z
G n
z
G n z
n n
z
G n
z
G n
z n
p z
G n
z
G n
z p
z
G
n
n n
n n
n n
n n
n
Trang 46n
z z
G n
n
z z
G
z G
z
z z
G
z z
G
z G
z z
G
n
1 2
3
1 2
2
1
1
2 1
1
2
1 3
1 3
2 2 1
Trang 472 2
1
1 )
1 ( '
Trang 49 3.2 Phần tử cực đại bên phải
3.3 Ứng dụng phân tích các thuật toán sắp xếp
4 Định lý Master
49
Trang 5031
321
Trang 52Xét hoán vị = (5 9 1 8 2 6 4 7 3)Bảng nghịch thế = (2 3 6 4 0 2 2 1 0)
b I
1
Trang 53 nN, b1, b2, …, bn là dãy thỏa điều kiện 0 bi n-i, i=1, 2,
, n thì luôn có duy nhất một hoán vị sao cho bảng nghịch thế
của là b1, b2, …, bn
Ví dụ: Xét b = (2 3 0 0 0) Hãy viết hoán vị có 5 phần tử
53
Trang 54 nN, b1, b2, …, bn là dãy thỏa điều kiện 0 bi n-i, i=1, 2,
, n thì luôn có duy nhất một hoán vị sao cho bảng nghịch thế
Trang 553 N HÓM HOÁN VỊ
3.2 PHẦN TỬ CỰC ĐẠI BÊN PHẢI
Định nghĩa
Cho hoán vị của tập S = {1, 2, 3, …, n} Phần tử j S đƣợc
gọi là phần tử cực đại bên phải nếu nó lớn hơn tất cả các phần
tử nằm ở bên phải nó
Ví dụ: = (5 7 3 2 6 1 4)
7, 6, 4 là phần tử cực đại bên phải
55
Trang 563 N HÓM HOÁN VỊ
3.2 PHẦN TỬ CỰC ĐẠI BÊN PHẢI
Mệnh đề
Cho hoán vị của tập S = {1, 2, 3, …, n} Nếu j S là phần tử
cực đại bên phải thì bj = n – j
Gọi M là tổng số các phần tử cực đại bên phải của một hoán vị
thì giá trị trung bình của M là và Hn = O(logn)
Trang 573 N HÓM HOÁN VỊ
3.3 ỨNG DỤNG PHÂN TÍCH CÁC THUẬT TOÁN SẮP XẾP
Xét bài toán sắp xếp mảng R[0], R[1], …, R[n-1] với các
khóa tương ứng là R[0].key, R[1].key, …, R[n-1].key.
Giả sử các khóa khác nhau từng đôi một
57
Trang 583 N HÓM HOÁN VỊ
3.3 ỨNG DỤNG PHÂN TÍCH CÁC THUẬT TOÁN SẮP XẾP
Sắp xếp bằng cách đếm
Sử dụng một mảng tạm Count[0], Count[1], …, Count[n-1]
với Count[i] = số phần tử trong mảng R có khóa nhỏ hơn R[i].key
Trang 60CHÈN TRỰC TIẾP – INSERTION SORT
Cho dãy số :
i=1
i=2
Trang 61CHÈN TRỰC TIẾP – INSERTION SORT
Trang 62CHÈN TRỰC TIẾP – INSERTION SORT
i=6
i=7
Trang 63R[pos+1] = R[pos];
pos ;
} R[pos+1] = x];
}
Trang 64 = số nghịch thế
Trang 66) ( n O nlogb a
) ( )
( n O nc
a b
c
c n
O n
f ( ) ( ) , log
0 ,
log ,
) log (
) ( n O n c k
) log
( )
( n O n 1 n
a b
c
c n
O n
f ( ) ( ) , log
Trang 674 Đ ỊNH L Ý M ASTER
Định lý Master dùng để tính độ phức tạp của các thuật toán chia để trị Các thuật toán này thường chuyển bài toán lớn về các bài toán nhỏ rồi kết hợp lời giải các bài toán nhỏ để tạo ra kết quả của bài toán ban đầu
Bài toán lớn được chia ra thành a bài toán có kích
thước n/b để giải rồi dùng f(n) phép tính để kết hợp lời giải các bài toán con lại
67
Trang 68( 8 )
T ) 10
2
( 2 )
n n O n n O n n
O n
T ( ) loga b logk1 1 log1 log
2
) 2
( 2 )
( n T n n
) ( n O n O n
T c
Trang 69ĐỆ QUI VÀ ĐÁNH GIÁ
69
Trang 70P HÂN TÍCH C HƯƠNG TRÌNH ĐỆ QUI
Để phân tích chương trình đệ qui ta cần:
Thành lập phương trình đệ qui
Giải phương trình đệ qui, nghiệm của pt đệ qui sẽ là
thời gian thực hiện chương trình
70
A
Trang 72T HÀNH LẬP PHƯƠNG TRÌNH ĐỆ QUI
PT đệ qui là mối quan hệ giữa T(n) và T(k), với
T(n) và T(k) là thời gian thực hiện chương trình có
kích thước dữ liệu là n, k
Trường hợp dừng: thời gian thực hiện là C(n)
Gọi đệ qui Có bao nhiêu lời gọi đệ qui có kích thước
k ta sẽ có bấy nhiêu T(k)
Ngoài ra, thời gian để tổng hợp bài toán f(n)
72
Trang 73T HÀNH LẬP PHƯƠNG TRÌNH ĐỆ QUI
Dạng tổng quát của phương trình đệ qui
C(n): thời gian thực hiện chương trình trong th dừng
( (
)
( )
(
n f k
T g
n
C n
T
Trang 740)
(
2
1
n khi C
n T
n khi
C n
T
Trang 770)
(
2
1
n khi C
n T
n khi
C n
T