Professional Documents
Culture Documents
225988877 Một số kiến thức cơ sở của phương phap Monte Carlo
225988877 Một số kiến thức cơ sở của phương phap Monte Carlo
225988877 Một số kiến thức cơ sở của phương phap Monte Carlo
Mục lục
1 Mở đầu 2
5 Số ngẫu nhiên 7
5.1 Các loại số ngẫu nhiên . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.2 Những điều cần lưu ý khi mô phỏng số ngẫu nhiên . . . . . . . . . . . . . . . . . 7
5.3 Phương pháp tạo số ngẫu nhiên . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1
Đặng Nguyên Phương Tài liệu nội bộ NMTP
1 Mở đầu
Giữa thế kỉ 20, sự phát triển của các lĩnh vực quan trọng như vật lý hạt nhân, nguyên tử, các
nghiên cứu về vũ trụ, năng lượng, chế tạo các thiết bị phức tạp đòi hỏi phải tiến hành các bài
toán lớn phức tạp, không thể giải được bằng các kĩ thuật có vào thời bấy giờ. Cùng với sự phát
triển máy tính điện tử đã làm xuất hiện khả năng nhận được đầy đủ các mô tả định lượng của
các hiện tượng được nghiên cứu, và phạm vi giải các bài toán được mở rộng. Những yếu tố trên
đã góp phần hình thành nên việc thực nghiệm máy tính (computing experiment).
Thực nghiệm máy tính thực chất là áp dụng máy tính để giải các bài toán, nghiên cứu các kết
cấu hay các quá trình, thực hiện tính toán dựa trên mô hình toán học và vật lý bằng các tính
toán định lượng của đối tượng được nghiên cứu khi tương đối các tham số. Nó trải dài trên rất
nhiều lĩnh vực từ vật lý (computational physics), hóa học (computational chemistry) đến sinh
học (computational biology),...
Một trong những phương pháp thực nghiệm máy tính phổ biến nhất trên thế giới hiện nay là
phương pháp Monte Carlo (Monte Carlo experiment hay Monte Carlo method )1 . Đây là một lớp
các thuật toán (computationl algorithm) sử dụng việc lấy mẫu ngẫu nhiên (random sampling)
để thu được các kết quả số (numerical result). Phương pháp này thường được sử dụng để giải
quyết các bài toán có cấu hình phức tạp, liên quan đến nhiều biến số mà không thể dễ dàng giải
quyết được bằng các thuật toán tất định (deterministic algorithm). Có thể nói hiện nay một
phần lớn các sản phẩm của cả khoa học cơ bản lẫn ứng dụng đều dựa vào bộ ba thực nghiệm,
lý thuyết và Monte Carlo.
Phương pháp Monte Carlo cố gắng mô hình hoá các hiện tượng tự nhiên thông qua sự mô phỏng
trực tiếp các lý thuyết cần thiết dựa theo yêu cầu của hệ, chẳng hạn như mô phỏng sự tương
tác của những vật thể này với những vật thể khác hay là với môi trường dựa trên các mối quan
hệ vật thể − vật thể và vật thể − môi trường đơn giản. Lời giải được xác định bằng cách lấy
mẫu ngẫu nhiên của các quan hệ, hay là các tương tác vi mô, cho đến khi kết quả hội tụ. Do
vậy, cách thực hiện lời giải bao gồm các hành động hay phép tính được lặp đi lặp lại, có thể
được thực hiện trên máy tính.
Các lý thuyết vi mô cung cấp cái nhìn bên trong và cho phép chúng ta có thể suy luận một hệ
vĩ mô sẽ hoạt động như thế nào, phương pháp Monte Carlo không thể cạnh tranh được trong
việc này. Trong việc khám phá các tính chất của các hệ vĩ mô, phương pháp Monte Carlo rất
giống với một người làm thí nghiệm. Nếu không có sự hướng dẫn của lý thuyết, các quá trình
khám phá sẽ trở nên rất khó khăn và có thể bị sai lệch. Tuy nhiên khi bài toán trở nên quá phức
tạp, kĩ thuật Monte Carlo trở nên thuận lợi trong trường hợp bài toán có độ phức tạp tăng cao.
Điều này có thể được mô tả như trong Hình 1. Chúng ta có thể dễ dàng thấy được khi độ phức
tạp của bài toán (chẳng hạn như độ phức tạp của hình học) tăng, thời gian để tính toán của
các phương pháp tất định sẽ tăng nhiều hơn là phương pháp Monte Carlo.
Do những ưu điểm của mình, phương pháp Monte Carlo đã được ứng dụng trong rất nhiều lĩnh
vực khác nhau
• Trong khoa học xã hội: phân luồng giao thông, nghiên cứu sự phát triển dân số, nghiên
cứu thị trường chứng khoán,...
• Trong khoa học tự nhiên: nghiên cứu sự vận chuyển bức xạ, thiết kế lò phản ứng hạt nhân,
thiết kế vũ khí hạt nhân, tính liều bức xạ, sắc động học lượng tử, nghiên cứu sự chuyển
pha, tính các tích phân số (numerical integration),...
1
Cần phân biệt phương pháp Monte Carlo với thuật toán Monte Carlo (Monte Carlo algorithm) vốn là một
thuật toán làm việc với các bit ngẫu nhiên
2
Đặng Nguyên Phương Tài liệu nội bộ NMTP
Hình 1: So sánh thời gian giải quyết bài toán của 2 phương pháp Monte Carlo và tất định
2lN
π=
tn
3
Đặng Nguyên Phương Tài liệu nội bộ NMTP
Hình 2: Minh họa bài toán tính số π với các cây kim và đường thẳng song song
Trong khoảng những năm 1930, Enrico Fermi đã sử dụng phương pháp Monte Carlo để giải
quyết các bài toán khuếch tán neutron nhưng không xuất bản bất cứ công trình nào về vấn đề
này.
Phương pháp Monte Carlo chỉ được thực sự sử dụng như một công cụ nghiên cứu khi việc chế
tạo bom nguyên tử được nghiên cứu trong suốt thời kì chiến tranh thế giới lần thứ hai. Công
việc này đòi hỏi phải có sự mô phỏng trực tiếp các vấn đề mang tính xác suất liên quan đến sự
khuếch tán neutron ngẫu nhiên trong vật liệu phân hạch. Năm 1946, các nhà vật lý tại Phòng thí
nghiệm Los Alamos, dẫn đầu bởi Nicholas Metropolis, John von Neumann và Stanislaw Ulam,
đã đề xuất việc ứng dụng các phương pháp số ngẫu nhiên trong tính toán vận chuyển neutron
trong các vật liệu phân hạch. Do tính chất bí mật của công việc, dự án này đã được đặt mật
danh “Monte Carlo” và đây cũng chính là tên gọi của phương pháp này về sau. Các tính toán
Monte Carlo được viết bởi John von Neumann và chạy trên máy tính điện tử đa mục đích đầu
tiên trên thế giới ENIAC (Electronic Numerical Integrator And Computer ) (Hình 3).
Hình 3: Máy tính điện tử ENIAC được đặt tại BRL building 328
Các ý tưởng của phương pháp này được phát triển và hệ thống hóa nhờ vào các công trình của
Harris và Herman Kahn vào năm 1948. Cũng vào khoảng năm 1948, Fermi, Metropolis, và Ulam
thu được ước lượng của phương pháp Monte Carlo cho trị riêng của phương trình Schrodinger.
Mãi cho đến những năm 1970, các lý thuyết mới phát triển về độ phức tạp của tính toán bắt
đầu cung cấp các tính toán có độ chính xác cao hơn, những cơ sở lý luận thuyết phục cho việc
sử dụng và phát triển phương pháp Monte Carlo cho đến tận ngày hôm nay.
4
Đặng Nguyên Phương Tài liệu nội bộ NMTP
Assorted random model hay self-organized criticality (SOC): là thuật ngữ được dùng trong
vật lý để mô tả một hệ động học mà có một điểm tới hạn như là một điểm thu hút. Do vậy các
hoạt động vĩ mô của chúng được thực hiện trên thang không-thời gian − đặc trưng bất biến của
điểm tới hạn của một sự chuyển pha (phase transition), nhưng trong SOC các điểm này được
dẫn ra mà không cần các thông số đưa vào để đạt dược giá trị chính xác. Nó được ứng dụng
nhiều trong các lĩnh vực khác nhau chẳng hạn như địa vật lý, vũ trụ học, sinh học, sinh thái
học, kinh tế, xã hội học,...
Phương pháp mô phỏng Monte Carlo trực tiếp (Direct Simulation Monte Carlo −
DSMC): được đưa ra bởi GS. Prof. Graeme Bird, đây là phương pháp sử dụng kĩ thuật mô
phỏng xác suất để giải các phương trình Boltzman mô tả các dòng khí loãng mà trong đó quãng
đường tự do trung bình của phân tử có cùng bậc (hoặc lớn hơn) thang chiều dài vật lý đặc trưng
của hệ.
Phương pháp Monte Carlo động lực (Dynamic Monte Carlo − DMC): là phương pháp
mô phỏng các trạng thái của phân tử bằng cách so sánh tỉ lệ của các bước riêng lẻ với các số
ngẫu nhiên. Phương pháp DMC thường dùng để khảo sát các hệ không cân bằng chẳng hạn như
các phản ứng, khuyếch tán,... Phương pháp này được ứng dụng chủ yếu để phân tích các hoạt
động của các chất bị hút bám trên các bề mặt. Phương pháp DMC rất giống với phương pháp
Kinetic Monte Carlo mà ta sẽ trình bày ở phần tiếp theo.
Có rất nhiều phương pháp thông dụng có sử dụng mô phỏng DMC, gồm có First Reaction
Method (FRM) và Random Seelection Method (RSM). Dù cho FRM và RSM đều cho ra các kết
quả giống nhau với cùng một mô hình, nhưng các tài nguyên máy tính lại khác nhau phụ thuộc
vào hệ ứng dụng.
Phương pháp Monte Carlo động học (Kinetic Monte Carlo − KMC): là một phương
pháp Monte Carlo dựa trên sự mô phỏng máy tính để mô phỏng sự tiến triển theo thời gian của
một vài quá trình xảy ra trong tự nhiên, điển hình là các quá trình mà chúng xuất hiện với một
tỉ lệ được cho trước. Việc hiểu rõ các tỉ lệ này là rất quan trọng bởi vì chúng là dữ liệu đầu vào
cho thuật toán KMC, tự bản thân phương pháp không thể dự đoán chúng.
Phương pháp KMC cũng rất giống với phương pháp DMC, sự khác biệt chính giữa chúng dường
như nằm ở chỗ thuật ngữ và lĩnh vực sử dụng: KMC được sử dụng chủ yếu trong vật lý còn
DMC thì được sử dụng chủ yếu trong hoá học.
Phương pháp Monte Carlo lượng tử (Quantum Monte Carlo − QMC): là phương pháp
mô phỏng các hệ lượng tử với mục đích giải quyết các bài toán nhiều vật thể (many-body). QMC
dùng phương pháp Monte Carlo bằng cách này hay cách khác để tính toán các tích phân nhiều
chiều. QMC cho phép mô tả một cách trực tiếp các hiệu ứng nhiều vật thể trong hàm sóng, với
độ bất định có thể được giảm với thời gian mô phỏng kéo dài.
5
Đặng Nguyên Phương Tài liệu nội bộ NMTP
Phương pháp Quasi-Monte Carlo (Quasi-Monte Carlo): là một phương pháp để tính toán
một tích phân (hay đôi khi là một bài toán) mà dựa trên cơ sở là các dãy số có sự nhất quán
thấp. Nó trái ngược với phương pháp Monte Carlo thông thường, được dựa trên các dãy số giả
ngẫu nhiên.
6
Đặng Nguyên Phương Tài liệu nội bộ NMTP
Hình 4: Nguyên tắc hoạt động của phương pháp Monte Carlo
5 Số ngẫu nhiên
Trong phương pháp mô phỏng Monte Carlo, chúng ta không thể nào thiếu được các số ngẫu
nhiên. Các số ngẫu nhiên có mặt trong các hiện tượng tự nhiên như nhiễu loạn điện tử, phân
rã phóng xạ,... Để giải một bài toán bằng phương pháp Monte Carlo điều quan trọng nhất là
chúng ta cần tạo ra các số ngẫu nhiên phân bố đều (uniform distribution) trên khoảng (0,1).
7
Đặng Nguyên Phương Tài liệu nội bộ NMTP
Các số giả ngẫu nhiên trong phương pháp Monte Carlo chỉ cần tỏ ra “đủ mức ngẫu nhiên”, nghĩa
là tuân theo phân bố đều hay theo phân bố định trước, khi số lượng của chúng lớn.
Để tạo được một dãy số ngẫu nhiên, chúng ta có thể dùng nhiều phương pháp khác nhau. Ở
đây tôi xin trình bày một phương pháp được dùng phổ biến nhất. Phương pháp này đã được
sử dụng trong nhiều ngôn ngữ lập trình, chẳng hạn như C, Fortran,... đó chính là phương pháp
đồng dư tuyến tính (linear congruential generator ). Thuật toán của phương pháp này như sau
Ở đây a và c là các số nguyên và M thường là một số nguyên có giá trị lớn, số gieo ban đầu x0
có thể được đặt bởi người dùng trong quá trình tính toán.
Thực sự đây không phải là một thuật toán tạo số ngẫu nhiên tốt nhất nhưng ưu điểm của thuật
toán này là đơn giản, dễ sử dụng, tính toán nhanh và dãy số ngẫu nhiên do nó tạo ra là khá tốt.
Ta có thể thấy rằng trong dãy số được tạo ra bởi phương pháp này mỗi số chỉ có thể xuất hiện
duy nhất một lần trước khi dãy bị lặp lại. Do đó chu kì của phương pháp đồng dư tuyến tính
(chiều dài của dãy số cho đến khi số đầu tiên bị lặp lại) ≤ M . có nghĩa là trong trường hợp
tốt nhất thì xn sẽ lấy tất cả các giá trị có trong đoạn [0, M − 1]. Đối với phương pháp đồng dư
tuyến tính thì chu kì cực đại sẽ phụ thuộc vào độ dài kí tự của máy tính. Ví dụ: chu kì lớn nhất
đối với máy 16 bit có độ chính xác đơn (single precision) là 216 = 65536 đối và với độ chính xác
kép (double precision) là 232 = 4.29 × 109 .
Ngoài ra còn một số thuật toán khác để tạo dãy số ngẫu nhiên
• Shift register : yn = yn−s + yn−r mod 2 với r > s
• Additive lagged − Fibonacci : zn = zn−s + zn−r mod 2k với r > s
• Phương pháp kết hợp (combined ): wn = yn + zn mod p
• Multiplicative lagged − Fibonacci : xn = xn−s × xn−r mod 2k với r > s
• Phương pháp đồng dư nghịch đảo ngầm (implicit inversive congruential ): xn = axn−1 +
c mod M
• Phương pháp đồng dư nghịch đảo tường minh (explicit inversive congruential ): xn =
an̄ + c mod M
8
Đặng Nguyên Phương Tài liệu nội bộ NMTP
Hình 5: Minh họa phân bố xác suất của biến rời rạc và liên tục
Giá trị kì vọng (expected value hay expectation) hay còn gọi là giá trị trung bình (mean) của
biến x (thường được kí hiệu là µ) chính là giá trị mà ta “kì vọng” sẽ thu được khi lặp lại N lần
phép đo đó với N tiến đến vô cực. Hay nói một cách khác, giá trị kì vọng chính là trung bình
có trọng số (weight average) của tất cả các giá trị khả dĩ (possible values) của biến x, trọng số
được dùng ở đây chính là xác suất fi tương ứng với các giá trị của biến.
N
P
xi fi
i=1
E(x) = N
(4)
P
fi
i=1
Phương sai (variance) được dùng để đánh giá mức độ phân tán của tập hợp giá trị thu được,
giá trị của phương sai bằng 0 có nghĩa là tất cả các giá trị của tập hợp là đồng nhất. Phương
sai thường được kí hiệu là σ 2 .
N
(xi − µ)2 fi
P
h i
2 i=1
V ar(x) = E (x − E(x)) = N
= E(x2 ) − [E(x)]2 (5)
P
fi
i=1
Độ lệch chuẩn (standard deviation) kí hiệu σ là căn bậc hai của phương sai, có cùng thứ nguyên
với giá trị của biến x nên thường được dùng kèm với giá trị trung bình để biểu diễn kết quả thu
được.
Hàm mật độ tích lũy (cumulative density function hay cumulative distribution function − CDF)
3
đôi khi còn được gọi là hàm phân bố xác suất (probability distribution function) hay hàm xác suất (probability
function), tuy nhiên không có quy định nào thống nhất cho các tên gọi. Hàm xác suất đôi khi còn được dùng để
chỉ hàm mật độ tích lũy (cumulative distribution function)
9
Đặng Nguyên Phương Tài liệu nội bộ NMTP
được tính như là tích phân của hàm mật độ xác suất (Hình 6)
Zx
F (x) = f (t)dt (7)
−∞
Hình 6: So sánh hai hàm PDF và CDF, giá trị của hàm CDF tại vị trí x chính là tích phân của
hàm PDF từ −∞ đến x
Trong trường hợp ta có hàm g(x) với x là biến ngẫu nhiên với mật độ f (x), giá trị trung bình
của hàm g(x) sẽ được tính theo công thức
+∞
Z N
X
E[g(x)] = g(x)f (x)dx E[g(x)] = gk fk (8)
−∞ k=1
Moment bậc 1 dùng để đánh giá độ lệch của phân bố ra khỏi kì vọng của phân bố (µ). Trong
trường hợp phân bố lý tưởng, giá trị moment này có giá trị bằng 0. Trong thực tế, người ta cũng
10
Đặng Nguyên Phương Tài liệu nội bộ NMTP
xem giá trị trung bình chính là moment bậc 1 của phân bố 4 .
+∞
Z N
X
(x − µ)f (x)dx (x − µ)fk (10)
−∞ k=1
Moment bậc 2 được sử dụng để đánh giá độ phân tán của phân bố. Trong trường hợp phân
bố chỉ có 1 giá trị duy nhất, moment này có giá trị bằng 0. Trong thực tế, người ta xem phương
sai (σ 2 ) là moment bậc 2 của phân bố 5 .
+∞
Z N
X
(x − µ)2 f (x)dx (x − µ)2 fk (11)
−∞ k=1
Moment bậc 3 được dùng để đánh giá độ đối xứng (symmetry) của phân bố. Nếu phân bố
là hoàn toàn đối xứng, moment này có giá trị bằng 0. Nếu phân bố có đuôi dài về theo chiều
dương của trục tọa độ, moment này sẽ có giá trị dương, trong trường hợp ngược lại sẽ có giá trị
âm (xem Hình 7). Trong thực tế, người ta thường hay sử dụng moment chuẩn hóa (normalised
moment hay standardised moment)6 để đánh giá, moment chuẩn hóa bậc 3 của phân bố được
gọi là skewness.
+∞ N
(x − µ)3 f (x)dx
R
(x − µ)3 fk
P
−∞ k=1
(12)
σ3 σ3
Moment bậc 4 được dùng để đánh giá độ phẳng (flatness) của phân bố. Tương tự như
skewness, moment chuẩn hóa bậc 4 (kurtosis) thường được sử dụng
+∞ N
(x − µ)4 f (x)dx
R
(x − µ)4 fk
P
−∞ k=1
(13)
σ4 σ4
Phân bố có dạng phẳng được gọi là platykurtic, còn phân bố có đỉnh nhọn được gọi là leptokurtic,
phân bố chuẩn (normal distribution) có kurtosis bằng 3 và được xem là chuẩn để phân biệt độ
phẳng của các phân bố (xem Hình 7).
11
Đặng Nguyên Phương Tài liệu nội bộ NMTP
Hình 8: Minh họa Luật số lớn khi thực hiện thí nghiệm tung đồng xu, đồ thị biểu diễn tỉ lệ phần
trăm xuất hiện mặt ngửa (head ) nhiều hơn mặt sấp (tail ) theo số lần tung
sẽ có một hàm phân bố tích lũy giới hạn xấp xỉ theo phân bố chuẩn.
Một cách đơn giản hơn, Định lý giới hạn trung tâm có thể hiểu như là phân bố của việc lấy mẫu
12
Đặng Nguyên Phương Tài liệu nội bộ NMTP
Hình 9: Minh họa Định lý giới hạn trung tâm, trung bình của các phân bố từ X1 đến X5 sẽ có
dạng phân bố chuẩn
ngẫu nhiên sẽ tiến về phân bố chuẩn khi kích cỡ mẫu được tăng lên, dù cho phân bố thực hay
còn gọi là phân bố quần thể (population) của biến không phải là phân bố chuẩn.
Lưu ý: điền kiện của Định lý giới hạn trung tâm là cả trị trung bình và phương sai của phân
bố phải tồn tại hữu hạn.
7.2 Các phương pháp lấy mẫu với phân bố xác suất không đồng nhất
Thông thường các phép gieo ngẫu nhiên để lấy mẫu trong Monte Carlo đều là các phép lấy mẫu
đồng nhất (uniform sampling), các giá trị được lấy mẫu với xác suất như nhau. Tuy nhiên, trong
rất nhiều trường hợp tính toán Monte Carlo, ta cần phải lấy mẫu từ một biến có hàm mật độ
7
lưu ý phân bố chuẩn này khác với phân bố chuẩn của quần thể
8
cần phân biệt với độ lệch chuẩn của quần thể vốn được gọi với tên standard deviation
13
Đặng Nguyên Phương Tài liệu nội bộ NMTP
Bảng 1: Một số ví dụ phân bố mẫu ngẫu nhiên được lấy từ quần thể
xác suất không đồng nhất (non-uniform) chẳng hạn như lấy mẫu biến x trong khoảng [a, b] với
hàm mật độ f (x) có phân bố như trong Hình 5. Có rất nhiều phương pháp để thực hiện việc
lấy mẫu này, dưới đây là một số phương pháp thông dụng nhất
Phương pháp biến đổi (transformation method ) hay còn gọi là phương pháp biến đổi ngược
(inverse transform method ). Phương pháp này thường được áp dụng trong những trường hợp
hàm phân bố f (x) có dạng đơn giản, ta có thể thực hiện một phép biến đổi x(t) về một phân
bố t đồng nhất, ta có công thức bảo toàn xác suất
Ví dụ: Lấy mẫu biến ngẫu nhiên x có hàm mật độ xác suất f (x) = ae−ax trong khoảng [0, ∞)
Ta có
dt ln(t)
= f (x) = ae−ax nên t = e−ax hay x = −
dx a
Khi x = 0 thì t = 1 và x = ∞ thì t = 0, do đó ta có thể thu được biến x bằng cách gieo ngẫu
nhiên biến t trong khoảng (0, 1) và áp dụng công thức
ln(1 − t)
x=−
a
Phương pháp chấp nhận − loại bỏ (acceptance-rejection method ) thường được sử dụng
trong những trường hợp hàm f (x) có dạng phức tạp, không thể dễ dàng lấy mẫu được bằng các
phương pháp khác như phương pháp biến đổi. Trong phương pháp này, ta sẽ đi tìm một hàm
phân bố công cụ (instrumental distribution) g(x) có thể dễ dàng lấy mẫu bằng các phương pháp
khác như lấy mẫu phân bố đồng đều hay phương pháp biến đổi.
Gọi C là chặn trên của giá trị cực đại tỉ số f (x)/g(x)
f (x)
C ≥ max (18)
g(x)
14
Đặng Nguyên Phương Tài liệu nội bộ NMTP
Hàm f (x) sẽ được lấy mẫu bằng cách lấy mẫu hàm g(x) và giữ lại số điểm lấy mẫu với xác suất
f (x)
P = (19)
C g(x)
Hình 10: Minh họa phương pháp chấp nhận − loại bỏ. Đường màu xanh là phân bố f (x) mà ta
muốn lấy mẫu, đường gạch đoạn là phân bố Cg(x), đường màu đỏ và màu xanh lá là xác suất
loại bỏ và chấp nhận giá trị gieo ngẫu nhiên thu được
Lấy mẫu theo trọng số (importance sampling) trong kĩ thuật này, ta sẽ đi lấy mẫu từ một
phân bố khác thay vì lấy mẫu trực tiếp từ phân bố cần quan tâm. Kĩ thuật này thường được
xem là một kĩ thuật giảm phương sai trong lấy mẫu Monte Carlo.
Ta đã biết rằng kì vọng của biến x được tính theo công thức
Z
E(x) = x f (x)dx (20)
Thay vì lấy mẫu biến x từ phân bố f (x), ta sẽ đi lấy mẫu theo một phân bố g(x) đơn giản hơn,
khi đó kì vọng của x được tính lại theo công thức
Z
f (x)
E(x) = x g(x)dx (21)
g(x)
Điều này tương đương với việc lấy mẫu biến x.w(x) theo phân bố g(x) với w(x) = f (x)/g(x)
được gọi là trọng số lấy mẫu (importance sampling weight).
15
Đặng Nguyên Phương Tài liệu nội bộ NMTP
• Phân bố cân bằng là duy nhất (unique), điều này được đảm bảo bởi tính chất của quá
trình Markov9 .
Ta có thể viết lại công thức (22)
P (x → x0 ) P (x0 )
= (23)
P (x0 → x) P (x)
Gọi phân bố đề xuất (proposal distribution) g(x → x0 ) là xác suất điều kiện (conditional proba-
bility) để thu được x0 từ x cho trước; và phân bố chấp nhận (acceptance distribution) A(x → x0 )
là xác suất điều kiện để chấp nhận x0 . Xác suất dịch chuyển là tích của hai xác suất này
Bước kế tiếp là chọn giá trị chấp nhận phù hợp với nguyên lý cân bằng chi tiết, thông thường
người ta chọn
P (x0 ) g(x0 → x)
0
A(x → x ) = min 1, (26)
P (x) g(x → x0 )
nghĩa là ta sẽ chọn dịch chuyển x → x0 nếu A(x → x0 ) lớn hơn 1 và loại bỏ nó nếu nhỏ hơn 1.
Các bước tiến hành như sau
1. Chọn ngẫu nhiên 1 giá trị x ban đầu
2. Chọn ngẫu nhiên giá trị x0 tương ứng với phân bố g(x → x0 )10
3. Chấp nhận giá trị mới x0 dựa vào giá trị của A(x → x0 )
9
được gọi là ergodicity đòi hỏi rằng mỗi trạng thái phải (1)phi tuần hoàn (aperiodic), hệ thống không thể trở
lại trạng thái cũ trong một khoảng cố định; (2)có khả năng quay trở lại, kì vọng của số bước dịch chuyển để trở
lại trạng thái cũ phải là hữu hạn
10
Cần phải lưu ý một điều là hàm phân bố g(x → x0 ) là do người dùng tự lựa chọn vào điều chỉnh tùy thuộc
vào từng trường hợp cụ thể.
16
Đặng Nguyên Phương Tài liệu nội bộ NMTP
4. Lặp lại bước 2 cho đến khi N giá trị của x được tạo ra
Các phương pháp khác ngoài những phương pháp vừa kể trên, ta cũng còn nhiều cách lấy
mẫu khác như
• Đối với các phân bố rời rạc, ta có các phương pháp lấy mẫu tuyến tính (linear sampling),
theo cấu trúc cây (decision tree), phương pháp mảng (array method ),...
• Đối với các phân bố liên tục, ta có thuật toán Ziggurat (Ziggurat algorithm), Gibbs (Gibbs
sampling), HMC (Hamiltonian Monte Carlo),...
công thức12
N
2 1 X
S = (xi − x̄)2 (30)
N
i=1
Nếu ta xem x̄ như là một ước lượng của trung bình quần thể µ với
E(x̄) = µ (31)
thì S 2 cũng được xem như là một ước lượng của phương sai quần thể σ, tuy nhiên đây lại là
11
giá trị x̄ còn được xem là trung bình không trọng số của các giá trị, ngược lại với µ là trung bình có trọng
số, xem công thức (4)
12
Cần lưu ý phân biệt giữa các đại lượng σ 2 (phương sai của quần thể), σx̄2 (phương sai của phân bố trung bình
mẫu) và S 2 (phương sai mẫu)
17
Đặng Nguyên Phương Tài liệu nội bộ NMTP
Tỉ số giữa phương sai chưa hiệu chỉnh trên phương sai đã hiệu chỉnh (S/s)2 = N/(N − 1) được
gọi là hệ số hiệu chỉnh Bessel (Bessel’s correction).
Sai số ngẫu nhiên liên quan đến kích thước hữu hạn của mẫu, trong khi đó sai số hệ thống lại
liên quan đến việc mẫu thhu được không đại diện đầy đủ các tính chất của quần thể (vì nhiều
lý do như sai số thiết bị, con người,...). Sai số hệ thống thường khó được định lượng tuy nhiên
trong một số trường hợp cụ thể ta cũng có thể ước lượng được giá trị của nó.
Độ chính xác (accuracy) dùng để đánh giá độ gần (closeness) hay độ chệch (bias) của giá
trị trung bình ước lượng so với giá trị thực của đại lượng vật lý, đôi khi còn được mô tả bởi sai
số hệ thống (systematic error ). Trong Monte Carlo, ta không thể ước lượng độ chính xác này
một cách trực tiếp được.
Các nhân tố chính ảnh hưởng lên độ chính xác gồm có
• Độ chính xác của code (mô hình vật lý,...)
• Mô hình bài toán (hình học, nguồn,...)
• Lỗi do người sử dụng
13
Lý do là vì trung bình mẫu x̄ là một
P ước lượng bình phương cực tiểu tuyến tính (linear least squares) của µ,
giá trị của x̄ được chọn sao cho tổng (xi − x̄)2 đạt giá trị nhỏ nhất. Do vậy, khi đưa thêm số hạng vào trong
tổng, giá trị của tổng chỉ có thể tăng lên, đặc biệt khi µ 6= x̄ ta có
N N
1 X 1 X
(xi − x̄)2 < (xi − µ)2
N i=1 N i=1
18
Đặng Nguyên Phương Tài liệu nội bộ NMTP
Độ tập trung (precision) là độ bất định của của các thăng giáng thống kê trong việc lấy mẫu.
Mối tương quan giữa độ chính xác và độ tập trung được mình họa trong Hình 11 và Hình 12.
Hình 11: Minh họa độ chính xác và độ tập trung của một phân bố ước lượng
Hình 12: Minh họa các mức độ của độ chính xác và độ tập trung
14
Nhiều người cho rằng xác suất được cho bởi khoảng tin cậy chính là xác suất mà giá trị trung bình của quần
thể rơi vào trong khoảng tin cậy đó, suy nghĩ này là không đúng. Giá trị trung bình của quần thể là một hằng số,
nó không thay đổi, do đó xác suất để giá trị trung bình quần thể rơi vào trong khoảng tin cậy chỉ là một trong 2
giá trị 0 hoặc 1.
15
Các giá trị xác suất như 68%, 95%, 99% được cho bởi khoảng tin cậy tính theo σ chỉ đúng trong trường hợp
phân bố một chiều (1-dimension)
19
Đặng Nguyên Phương Tài liệu nội bộ NMTP
Hình 13: Minh họa khoảng tin cậy của phân bố chuẩn
Tài liệu
[1] J.M. Hammersley, D.C. Handscomb, Monte Carlo Methods, Methuen & Co Ltd (1975).
[2] A.F. Bielajew, Fundamentals of the Monte Carlo Method for Neutral and Charged Particle
Transport, National Reseach Council of Canada (2001).
[3] Malvin H. Kalos, Paula A. Whitlock, Monte Carlo Methods, WILEY-VCH Verlag GmbH
& Co. KGaA (2004).
[4] http://en.wikipedia.org/wiki/Monte_Carlo_method
[5] http://www.inference.phy.cam.ac.uk/tcs27/talks/sampling.html#0
[6] https://quanto.inria.fr/pdf_html/mc_standard_doc/
[7] http://en.wikipedia.org/wiki/Metropolis%E2%80%93Hastings_algorithm
20