Tải bản đầy đủ (.pdf) (10 trang)

CÁC THUẬT TOÁN XÁC SUẤT (PROBABILISTIC) ppt

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 (212.5 KB, 10 trang )

C
C
Á
Á
C THU
C THU


T TO
T TO
Á
Á
N
N
X
X
Á
Á
C
C
SU
SU


T
T
(PROBABILISTIC)
(PROBABILISTIC)
Numberical probabilistic algorithms
Numberical probabilistic algorithms
 Giới thiệu:


- Thuật toán xác suất về số dùng để tính toán 1 kết
quả gần đúng của vấn đề toán học (Kết quả gần
chính xác nhất với kết quả thực tế).
1. Buffon’s Needle:
- Gạch những đường thẳng có khoảng cách D đều
nhau trên bảng
- Có 355 que tăm có chiều dài L=1/2 D.
- Tung những que này lên bảng, thì bao nhiêu que sẽ
rơi vào giữa 2 đường thẳng?
Numberical probabilistic algorithms
Numberical probabilistic algorithms
 Giải quyết bài toán:
- Số que sẽ rơi vào giữa 2 đường thẳng 0355
- Giả sử que rơi vuông góc với đường thẳng: sẽ có ½
khả năng que rơi vào giữa 2 đường thẳng
- Nếu que rơi song song với đường thẳng thì xác
suất rơi ra ngoài là rất nhỏ
 Mỗi que có 1/pi khả năng để rơi vào 2 đường
thẳng
- Bài toán Buffon’s Needle tính ra được là 113 que
(355/pi) sẽ rơi vào giữa 2 đường thẳng
Numberical probabilistic algorithms
Numberical probabilistic algorithms
 Kết luận:
- Từ bài toán Buffon’s needle có thể được dùng để
tính pi = n/k ( n- số que ném ban đầu, k – số que
rơi vào giữa 2 đường thẳng)
 Cách giải quyết khác:
- Cho 1 hình vuông có cạnh là 2R chứa 1 hình tròn
có bán kính là R.

- Ném phi tiêu ngẫu nhiên vào trong hình vuông.
Đếm xem có bao nhiêu phi tiêu rơi vào hình tròn
Numberical probabilistic algorithms
Numberical probabilistic algorithms
Diện tích hình tròn: S
T
=pi*R
2
Diện tích hình vuông: S
V
=(2R)
2
Tỉ lệ: S
T
/S
V
= pi/4
Hay nói cách khác: pi = 4*c/s (c- số phi tiêu rơi
vào hình tròn, s- số phi tiêu được ném)
Từ kỹ thuật này có thể được ứng dụng để tính diện
tích những hình không quy tắc:
- Cho 1 hình bất kì A, và 1 hình vuông bao trùm
ngoài hình A.
- Ném ngẫu nhiên phi tiêu vào hình vuông
Numberical probabilistic algorithms
Numberical probabilistic algorithms
Tính tỉ lệ: T = phi tiêu rơi vào A / tổng phi tiêu
được ném.
 T = Diện tích A/Diện tích hình vuông
2. Monte Carlo Intergration:

- Cho 1 hàm f liên tục  vùng dưới đường cong của
f chính là tích phân của hàm
(Tích phân xem như diện tích S
dưới đường cong y =f(x) với x
chạy từ ab)
Numberical probabilistic algorithms
Numberical probabilistic algorithms
- Tuy nhiên có những hàm rất khó hoặc không thể
lấy tích phân
 Cần sử dụng đến kỹ thuật Monte Carlo:
- Cho 1 hàm y=f(x) bất kì
- Vẽ 1 hình vuông bao bọc đoạn f(x) cần tính tích
phân
- Ném ngẫu nhiên phi tiêu vào trong hình vuông, và
đếm bao nhiêu phi tiêu rơi vào dưới đường cong
 Diện tích dưới đường cong xấp xỉ = Số phi tiêu
dưới đường cong/số phi tiêu ném
Numberical probabilistic algorithms
Numberical probabilistic algorithms
 Giải thuật:
float Integrate (f, n ) // n- số phi tiêu được ném
{ int hits=0;
for (int i =1;i<=n;i++)
{ x=uniform (0,1);
y=uniform (0,1);
if (y<=f(x)) hits=hits+1;
}
return hits/n;
Numberical probabilistic algorithms
Numberical probabilistic algorithms

3. Probabilistic Counting:
- Đặt cược: Chọn ngẫu nhiên ít nhất 2 người trong
25 người, sao cho 2 người này có cùng sinh nhật.
- Có N!/(N-k)! Cách để chọn k khác nhau từ tập N
có thứ tự
- Có N
k
cách khác nhau để chọn k nếu có sự lặp lại
Cơ hội để thắng cược: 1- 365!/(340!*365
25
) =
56,9%
Thực tế cơ hội chiến thắng có thể cao hơn, vì ngày
sinh nhật này không tính đến năm
Monte Carlo Algorithms
Monte Carlo Algorithms
Giới thiệu:
- Thuật toán Monte Carlo sẽ trả về 1 kết quả, và tính
chính xác của kết quả sẽ tăng dần theo những lần
chạy của thuật toán.
- Thỉnh thoảng thuật toán này cũng đưa ra kết quả
sai.
- Thuật toán Monte Carlo trả về kết quả p có độ
chính xác là: ½<p<1
- Nếu với mỗi input khác nhau, thuật toán đều trả về
chung 1 kết quả  Monte Carlo đồng nhất

×