Professional Documents
Culture Documents
Internet Computing
Chương 1.
SỰ KIỆN VÀ XÁC SUẤT
Lịch trình
• Dẫn dắt: một câu chuyện giản dị về ứng dụng của randomness
• Các tiên đề xác suất- các bổ đề cơ sở
• Phân tích xác suất cho thuật toán RANDOM_TEST: vấn đề lấy
mẫu (sampling)
• Sự kiện độc lập; lấy mẫu không thay thế
• Sự kiện phụ thuộc; lấy mẫu có thay thế
• Biến ngẫu nhiên; kỳ vọng
• BNN Bernoulli và Nhị thức (Binomial)
• Ứng dụng: Bài toán tuyển dụng trợ lý và phân tích
• Khái niệm phân tích xác suất và thuật toán ngẫu nhiên
Ứng dụng của randomness
• “Máy tính có thể bị lỗi” – một hiện tượng không hiếm
• Lỗi lập trình
• Lỗi phần cứng
• Tiếp cận này còn nhanh hơn giải pháp trên (chạy 1 chương trình khác): đ ộ ph ức t ạp
O(d) vs. O(d2)
• Tuy nhiên phạm phải 1 vấn đề là “lỗi một phía” (One-sided error):
(1) Trả lời “non-equivalent” là luôn luôn đúng
(2) Nhưng trả lời “equivalent” là có thể sai
5
Các tiên đề xác suất – axioms of prob.
• Chúng ta cần một nền lý thuyết toán để thiết lập một đánh giá hình thức
(chặt chẽ) cho RANDOM_TEST
• Bất cứ mệnh đề xác suất nào cũng cần dựa trên một không gian xác su ất
(probability space) được định nghĩa theo h ệ tiên đ ề
• Sau đây chúng ta sẽ ôn tập lại các đ ịnh nghĩa XS c ơ sở
8
RANDOM_TEST: Phân tích xác suất
9
Làm thế nào để giảm thiểu XS lỗi của RT?
• Có một giải pháp là mở rộng KG mẫu
• VD như {1,…, 1000d}
• Nhưng không thật sự tốt: phép lấy ngẫu nhiên mẫu sẽ trễ lâu h ơn
• Giải pháp khác: Thực hiện lặp RT nhiều lần vòng lặp, với lựa chọn r
ngẫu nhiên khác nhau
• Nếu chỉ cần F(r)=G(r) chỉ trong một vòng lặp thì báo “non-equivalent”
• Có thể lấy mẫu trên {1,…100d} nhiều lần theo 2 cách cơ bản: with or
without replacements
• Lấy mẫu có thay thế: Không nhớ gì về các kết quả sampling các vòng tr ước, coi
như sau khi “lấy hàng” đi là có “hàng mới” thay th ế bỏ vào
• Các phép lấy mẫu các vòng lặp sẽ là độc lập với nhau
10
Tính độc lập của các sự kiện
• Def3: Hai sk E & F là độc lập iff (nếu và chỉ nếu)
Pr(EF)= Pr(E) . Pr(F)
Khái quát hơn, các sk E1, E2, …, Ek là độc lập với nhau iff với mọi tập con các chỉ
số I[1,k]: Pr(iIEi)= PiIPr(Ei)
• Với phép lấy mẫu có thay thế, ta phân tích RT nh ư sau:
• Kết quả phép lấy mẫu r trong mỗi vòng lặp là độc lập với nhau
• Gọi Ei là sk tại vòng lặp i RT chọn “đúng phải” một nghiệm ri sao cho F(ri)-G(ri)=0
• XS để cho thuật toán chung bị lỗi là
Pr(E1 E2 … Ek) = Pi=1,kPr(Ei) Pi=1,k (d/100d) = (1/100)k
• Giờ ta hãy chuyển sang khảo sát khi lấy mẫu không có thay th ế (Sampling
without replacement):
• The probability of choosing a given number is conditioned on the events of the
previous iterations
11
Xác suất có điều kiện
12
Lấy mẫu không thay thế
• Giả sử FG
• Ta lặp RT k lần: thực hiện k lần lấy mẫu NN từ [1,…100d]
• Cần tính XS của sk tất cả các lần đó đều lấy trùng nghiệm của F-G,
gây ra lỗi trả lời sai của thuật toán chung?
• Ta cần ước lượng chặn trên cho Pr(E1 E2 … Ek)
Pr(E1 E2 … Ek)= Pr(Ek|E1 … Ek-1) . Pr(E1 E2 … Ek-1)
= Pr(E1). Pr(E2|E1). Pr(E3|E1 E2) … Pr(Ek|E1 … Ek-1)
• Nhận xét Pr(Ej|E1 … Ej-1): d-(j-1)/100d-(j-1) Hãy lập luận cho điều này?
Từ đó Pr(E1 E2 … Ek) Pj=1,k d-(j-1)/100d-(j-1) (1/100)k, tức là XK lỗi này nhỏ
hơn chút so với tiếp cận lấy mẫu cho thay thế.
• If using d+1 iterations: always give correct answer. Why? Efficient?
13
Các biến ngẫu nhiên
14
Biến ngẫu nhiên
• Def6: Hai BNN X & Y là độc lập iff với mọi x & y:
Pr( (X=x)(Y=y) ) = Pr(X=x). Pr(Y=y)
15
Kỳ vọng
• ĐN 7: Kỳ vọng của BNNRR X, ký hiệu E[X], được xác
định bởi E[X] = ii.Pr(X=i)
• Phép lấy tổng xác định trên miền mọi giá trị của X
• VD: Hãy tính kỳ vọng của BNN X xác định bởi tổng giá trị mặt
ngửa khi reo 2 xúc xắc
16
Tính chất tuyến tính của kỳ vọng
• Định lý:
• E[i=1,nXi] = i=1,nE[Xi]
• E[c X] = c E[X] cho các hằng số c
17
BNN Bernoulli & Nhị thức -Binomial
• Hãy xét các thí nghiêm mà thành công với xác suất p và
thất bại với xác suất 1-p
• Gọi là BNN Bernoulli hay BNN chỉ báo (indicator)
• Nếu Y là BNN Bernoulli thì E[Y] = p
• Liên quan: Khảo sát BNN X, là số lần thành công khi thực hiện 1
chuỗi n thí nghiệm Bernoulli độc lập và giống hệt nhau
• BNN nhị thức (binomial) X với tham số n và p, ký hiệu
B(n,p), được xác định là một phân phối xác suất với j=0,1,2,
…, n:
Pr(X=j) = C(n;j) * pj(1-p) n-j
Trong đó C(n;j) là số tổ hợp chập j của n phần tử
18
ƯD: Bài toán Tuyển dụng trợ lý
• Chúng ta sẽ làm quen với một bài toán th ực s ự có ý nghĩa th ực t ế mà thu ật gi ải đ ề
xuất mang tính ngẫu nhiên, chỉ có thể đánh giá đ ược thông qua phân tích xác su ất
• Tuyển dụng trợ lý – assistant hiring
• Tuyển dụng cho 1 lãnh đạo quan trọng hay cho 1 hội đ ồng, 1 ủy ban hay 1 ch ương trình ph ối
hợp (khi đó có thể gọi là thư ký, hay đi ều ph ối viên …)
• Đây là 1 vị trí tuyển dụng duy nhất (chỉ 1) và có nhi ều đ ặc thù, đôi khi ch ỉ qua ph ỏng v ấn và
CV, bằng cấp sẽ không tìm được người thực s ự phù h ợp t ốt nh ất.
• Nét đặc thù: sẽ là tốt nhất nếu cho ứng viên đang đ ược đánh giá t ốt làm th ử, qua đó s ẽ d ễ
đánh giá được các phẩm chất “kín”– các k ỹ năng m ềm
• Thuật toán đề xuất: Khi phỏng vấn 1 ứng viên b ất kỳ n ếu th ấy người đó th ể hi ện
xem như tốt nhất tời giờ thì lập tức “test hiring” tức “làm th ử”, thay th ế ng ười đã
làm thử trước
• Thuật toán này dường như có 1 “điểm y ếu”: có th ể d ẫn đ ến s ố l ần hiring quá nhi ều, t ốn kém
chi phí và công sức để train và hỗ trợ ứng viên (v ị lãnh đ ạo có th ể m ất nhi ều th ời gian)
Tuyển dụng trợ lý: thuật toán đề xuất
HIRE-ASSISTANT(n)
1 best←0
candidate 0 is a least-qualified dummy candidate
2 for i←1 to n
3 do interview candidate i
4 if candidate i is better than candidate best
5 then best←i
6 hire candidate i
20
Phân tích chi phí
• Trái với thông lệ, không cần chú ý nhiều đến thời
gian thực hiên của HIRE-ASSISTANT, mà quan tâm
đến chi phí thực hiện bao gồm phỏng vấn & thuê thử
(interviewing & hiring).
• Phỏng vấn có chi phi thấp hơn, ký hiệu ci, trong khi
thuê sẽ chiếm chi phí lớn, ký hiệu ch. Gọi m là số ứng
viên được thuê thử; chi phí thực hiện sẽ là O
(nci+mch).
• Chi phí phỏng vấn luôn là cố định vì tất cả ứng viên đều phải PV
• Chi phí thuê sẽ là biến động, có thể cao và khó lường
• Cảm nhận tự nhiên là mọi người có thể cho rằng khó chấp nhận thuật
toán này vì chi phí cao và thay thế bằng những cách làm truyền thống
hơn (chỉ thông qua phỏng vấn hoặc giới thiệu, tiến cử)
21
Phân tích trường hợp xấu nhất
22
Phân tích XS – Probabilistic analysis
23
Thuật toán NN – Randomized algorithm
24
BNN chỉ báo (indicator)
BNN chỉ báo I[A] gắn với sk A được định
nghĩa
1 i f A occur s
I [ A]
0 i f A does not occur
• Bổ đề: Với không gian mẫu và sự kiện A
trên , gọi XA=I{A}. Thếthì E[XA]=Pr(A).
25
Phân tích BT Tuyển Trợ lý sử dụng BNN Chỉ báo
• Gọi X là BNN cho biết số lần người ta thuê thử trong thuật
toán AH(tức số ƯV được cho làm thử), Xi là BNN chỉ báo sự
kiện ƯV thứ i được thuê. Dễ thấy là,
X=X1+X2+…+Xn
Từ bổ đề trên ta có:
E[Xi]=Pr{ƯV i được thuê} = 1/i. BTTL: Hãy chứng minh
điều này
Vậy,
E[X]=1+1/2+1/3+…+1/n=ln n+O(1)
Nếu n= 100 thì kỳ vọng X chỉ cỡ ~5. Hóa ra AH cũng rất khả
thi; cảm nhận ban đầu là không đúng!
26
Randomized algorithms
Ta có phiên bản “ngẫu nhiên hóa” để đảm bảo áp dụng được cách
phân tích trên (không cần giả thiết thứ tự chất lượng ƯV là NN)
RANDOMIZED-HIRE-ASSISTANT(n)
1 randomly permute the list of candidate
2 best←0
3 for i←1 to n
4 do interview candidate i
5 if candidate i is better than candidate best
6 then best←i
7 hire candidate i
27
Ví dụ khác về thuật toán ngẫu nhiên
PERMUTE-BY-SORTING(A)
1 n←length[A]
2 for i←1 to n
3 do P[i] ←RANDOM(1,n3)
4 sort A, using P as sort keys
5 return A
Lemma: Procedure PERMUTE-BY-SORTING
produces a uniform random permutation of
input, assuming that all priorities are distinct.
28
Ví dụ khác về thuật toán ngẫu nhiên
RANDOMIZE-IN-PLACE(A)
1 n←length[A]
2 for i←1 to n
3 do swap A[i ]↔A[RANDOM(i,n)]
29
Thank you for
your attentions!