2.3.1. Giới thiệu về phương pháp Monte Carlo
Phương pháp Monte Carlo là tên gọi để chỉ nhóm các thuật toán sử dụng việc lấy mẫu ngẫu nhiên để thu được lời giải cho bài toán đặt ra. Tên gọi của phương pháp này được đặt theo tên của một thành phố ở Monaco, nơi nổi tiếng với các sòng bạc, có lẽ là do phương pháp này dựa vào việc gieo các số ngẫu nhiên, tuy nhiên việc gieo số ngẫu nhiên để giải các bài toán đã xuất hiện từ rất lâu rồi. Một trong những bài toán đầu tiên có sử dụng phương pháp gieo ngẫu nhiên đó là bài toán Cây kim Buffon được đưa ra vào năm 1772. Tới khoảng giữa thế kỉ XIX, một số người đã thực hiện các thí nghiệm, mà trong đó họ ném một cây kim một cách tình cờ lên trên một tấm bảng theo các đường thẳng song song và đã suy ra giá trị của n từ việc đếm các điểm giao nhau giữa các cây kim và các đường. Vào năm 1899, Lord Rayleigh chỉ ra rằng một bước đi ngẫu nhiên một chiều không có vật hấp thụ có thể cung cấp một lời giải xấp xỉ cho một phương trình vi phân parabolic. Năm 1931, Kolmogorov chỉ ra mối liên hệ giữa các quá trình ngẫu nhiên Markov và các phương trình vi tích phân tất định. Vào đầu thế kỉ XX, các trường dạy thống kê ở Anh đã đưa vào một lượng nhỏ các công trình Monte Carlo khá đơn giản. Hầu hết trong số này chỉ để dạy học sinh và ít khi được sử dụng cho công việc nghiên cứu hoặc khám phá. 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. Vào tháng 11/1947, John von Neumann đã gửi một lá thư cho Robert Richtmyer, lãnh đạo của Bộ phận Lý thuyết tại Los Alamos, đề nghị sử dụng phương pháp thống kê để giải các bài toán khuếch tán và hệ số nhân của neutron trong các thiết bị phân hạch. Cùng năm đó, Fermi phát minh ra một thiết bị cơ khí tên là FERMIAC theo dõi sự phát triển của neutron trong các vật liệu phân hạch bằng phương pháp Monte Carlo. 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.
Năm 1954, tuyển tập báo cáo về phương pháp Monte Carlo đầu tiên được viết bởi Herman Kahn và cuốn sách đầu tiên được xuất bản bởi nhà xuất bản Cashwell &
Everett vào năm 1959. Vào khoảng năm 1970, những lý thuyết mới phát triển về độ
28
phức tạp của tính toán bắt đầu cung cấp độ chính xác hơn và cơ sở lý luận thuyết phục cho việc sử dụng phương pháp Monte Carlo. [9]
Ngày nay, phương pháp Monte Carlo là một lớp các thuật toán để giải quyết các bài toán trên máy tính theo kiểu không tất định, thường bằng cách sử dụng các số ngẫu nhiên (số giả ngẫu nhiên), ngược lại với các thuật toán tất định. Phương pháp Monte Carlo có một vị trí hết sức quan trọng trong vật lý tính toán và nhiều ngành khác, từ tính toán trong sắc động lực học lượng tử, mô phỏng hệ spin tương tác mạnh, đến thiết kế vỏ bọc thanh nhiên liệu hay hình dáng khí động học. Các phương pháp này đặc biệt hiệu quả khi giải quyết các bài toán vi-tích phân; ví dụ trong mô tả trường bức xạ hay trường ánh sáng trong mô phỏng hình ảnh 3 chiều trên máy tính. Phương pháp Monte Carlo thường được thực hiện lặp lại một số lượng rất lớn các bước đơn giản, song song với nhau (một phương pháp phù hợp với máy tính). Kết quả của phương pháp này càng chính xác (tiệm cận với kết quả thực) khi số lượng lặp các bước tăng lên. [10]
Phương pháp mô phỏng Monte Carlo đã và đang được ứng dụng rộng rãi trong các lĩnh vực khác nhau của vật lý hạt nhân lý thuyết cũng như thực nghiệm. Có thể nói rằng những thí nghiệm vật lý hạt nhân hiện đại ngày càng trở nên phức tạp và chi phí tốn kém. Vì vậy trước khi tiến hành những thí nghiệm này, cần phải thiết kế chúng một cách cẩn thận với việc sử dụng các kỹ thuật mô phỏng khác nhau. Do tính chất phức tạp của các thiết bị dùng trong thí nghiệm nên phương pháp Monte Carlo thường xuyên được sử dụng vì nó tỏ ra ưu việt hơn hẳn các phương pháp mô phỏng khác.
Hơn nữa, khi phân tích số liệu thực nghiệm trong ghi nhận bức xạ, để thu được các kết quả chính xác ta cần tính đến hàng loạt hiệu chính khác nhau. Những hiệu chính này thường phức tạp và khó xác định bằng thực nghiệm. Chúng thường được đánh giá bằng phương pháp Monte Carlo. Để xét đoán quy luật vật lý chi phối kết quả đo thực nghiệm, đôi khi cũng cần mô phỏng lại hiện tượng vật lý bằng phương pháp Monte Carlo rồi so sánh kết quả mô phỏng với kết quả đo thí nghiệm để rút ra những kết luận vật lý. Vì vậy có thể nói phương pháp Monte Carlo đóng một vai trò rất quan trọng trong nghiên cứu thực nghiệm. [11]
Phương pháp Monte Carlo được xây dựng dựa trên nền tảng:
Các số ngẫu nhiên: đây là nền tảng quan trọng của phương pháp. Các số ngẫu nhiên không chỉ được sử dụng trong việc mô phỏng lại các hiện tượng ngẫu nhiên xảy ra trong thực tế mà còn được sử dụng để lấy mẫu ngẫu
29
nhiên của một phân bố nào đó, chẳng hạn như trong tính toán các tích phân số.
Luật số lớn: luật này đảm bảo rằng khi ta chọn ngẫu nhiên các giá trị (mẫu thử) trong một dãy các giá trị (quần thể), kích thước dãy mẫu thử càng lớn thì các đặc trưng thống kê (trung bình, phương sai,...) của mẫu thử càng
“gần” với các đặc trưng thống kê của quần thể. Luật số lớn rất quan trọng đối với phương pháp Monte Carlo vì nó đảm bảo cho sự ổn định của các giá trị trung bình của các biến ngẫu nhiên khi số phép thử đủ lớn.
Định lý giới hạn trung tâm: định lý này phát biểu rằng dưới một số điều kiện cụ thể, trung bình số học của một lượng đủ lớn các phép lặp của các biến ngẫu nhiên độc lập sẽ được xấp xỉ theo phân bố chuẩn. Do phương pháp Monte Carlo là một chuỗi các phép thử được lặp lại nên định lý giới hạn trung tâm sẽ giúp chúng ta dễ dàng xấp xỉ được trung bình và phương sai của các kết quả thu được từ phương pháp.
Các thành phần chính của phương pháp mô phỏng Monte Carlo (Hình 6) bao gồm:
Hàm mật độ xác suất: một hệ vật lý (hay toán học) phải được mô tả bằng một bộ các PDF.
Nguồn phát số ngẫu nhiên: một nguồn phát các số ngẫu nhiên đồng nhất phân bố trong khoảng đơn vị.
Quy luật lấy mẫu (sampling rule): mô tả việc lấy mẫu từ một hàm phân bố cụ thể.
Ghi nhận (scoring hay tallying): dữ liệu đầu ra phải được tích luỹ trong các khoảng giá trị của đại lượng cần quan tâm.
Ước lượng sai số: ước lượng sai số thống kê theo số phép thử và theo đại lượng quan tâm.
Các kĩ thuật giảm phương sai: các phương pháp nhằm giảm phương sai của đáp số được ước lượng để giảm thời gian tính toán của mô phỏng Monte Carlo.
Song song hoá và vector hoá: các thuật toán cho phép phương pháp Monte Carlo được thực thi một cách hiệu quả trên một cấu trúc máy tính hiệu năng cao.
30
Hình 6. Nguyên tắc hoạt động của phương pháp Monte Carlo 2.3.2. Giới thiệu về chương trình MCNP
MCNP (Monte Carlo N-Particle) là chương trình ứng dụng phương pháp Monte Carlo để mô phỏng các quá trình vật lí hạt nhân đối với neutron, photon, electron (các quá trình phân rã hạt nhân, tương tác giữa các tia bức xạ với vật chất, thông lượng neutron,...). Chương trình ban đầu được phát triển bởi nhóm Monte Carlo và hiện nay là nhóm Transport Methods Group (nhóm XTM) của phòng Applied Theoretical & Computational Physics Division (X Division) ở Trung tâm thí nghiệm quốc gia Los Alamos (Los Alamos National Laboratory - Mỹ). Trong mỗi hai hoặc ba năm họ lại cho ra một phiên bản mới của chương trình.
Đây là một công cụ tính toán rất mạnh, có thể mô phỏng vận chuyển neutron, photon và electron, và giải các bài toán vận chuyển bức xạ 3 chiều, phụ thuộc thời gian, năng lượng liên tục trong các lĩnh vực từ thiết kế lò phản ứng đến bảo vệ bức xạ và vật lý y học với các miền năng lượng neutron từ 10-11 MeV đến 20 MeV và các miền năng lượng photon và electron từ 1 keV đến 1000 MeV. Chương trình này là công cụ mô phỏng được thiết lập rất tốt cho phép người sử dụng xây dựng các dạng hình học phức tạp và mô phỏng dựa trên các thư viện hạt nhân. Sự phức tạp của tương tác photon cũng được xử lý trong chương trình MCNP. Chương trình điều khiển các quá trình này bằng cách gieo số theo quy luật thống kê cho trước và mô phỏng được thực hiện trên máy tính vì số lần thử cần thiết thường rất lớn.
MCNP có khoảng 44000 dòng FORTRAN và 1000 dòng lệnh C, trong đó có khoảng 400 chương trình con. Ngày nay, tại Los Alamos có khoảng 250 người dùng và trên thế giới có hơn 3000 người dùng trong hơn 200 cơ sở ứng dụng.
Tại Trung tâm thí nghiệm quốc gia Los Alamos, phương pháp Monte Carlo đã được bắt đầu ứng dụng từ những năm 1940, và chương trình MCNP là một trong
31
những sản phẩm ra đời từ việc ứng dụng này. Tiền thân của nó là một chương trình Monte Carlo vận chuyển hạt mang tên là MCS được phát triển tại Los Alamos từ năm 1963. Tiếp theo MCS là MCN được viết năm 1965. Chương trình MCN có thể giải bài toán các neutron tương tác với vật chất hình học 3 chiều và sử dụng các thư viện số liệu vật lý.
MCN được hợp nhất với MCG (chương trình Monte Carlo gamma xử lý các photon năng lượng cao) năm 1973 để tạo ra MCNG - chương trình ghép cặp neutron- gamma. Năm 1973, MCNG được hợp nhất với MCP (chương trình Monte Carlo photon với xử lý vật lý chi tiết đến năng lượng 1 keV) để mô phỏng chính xác các tương tác neutron-photon và trở thành MCNP từ đó. Mặc dù đầu tiên MCNP có nghĩa là Monte Carlo neutron-photon song hiện nay nó lại mang ý nghĩa là Monte Carlo N hạt, ở đây N có thể là neutron, photon và electron. [9]
Các phiên bản của MCNP:
MCNP3 được viết lại hoàn toàn và công bố năm 1983. MCNP3 là phiên bản đầu tiên được phân phối quốc tế. Các phiên bản tiếp theo MCNP3A và 3B lần lượt được ra đời tại phòng thí nghiệm quốc gia Los Almos trong suốt thập niên 1980.
MCNP4 được công bố năm 1990, cho phép việc mô phỏng được thực hiện trên các cấu trúc máy tính song song. MCNP4 cũng đã bổ sung vận chuyển electron.
MCNP4A được công bố năm 1993 với các điểm nổi bật là phân tích thống kê được nâng cao, nhiều tải đặt bộ xử lý được phân phối để chạy song song trên cụm các trạm (workstation).
MCNP4B được công bố năm 1997 với việc tăng cường các quá trình vật lý của photon và đưa vào các toán tử vi phân nhiễu loạn,...
MCNP4C được công bố năm 2000 với các tính năng của electron được cập nhật, xử lý cộng hưởng không phân giải,...
MCNP4C2 có bổ sung thêm các đặc trưng mới như hiệu ứng quang hạt nhân và các cải tiến cửa số trọng số, được công bố năm 2001.
MCNP5 được công bố vào năm 2003 cùng với việc cập nhật các quá trình tương tác mới chẳng hạn như các hiện tượng va chạm quang hạt nhân, hiệu ứng giãn nở Doppler,...
Ngoài ra còn có thêm phiên bản MCNPX với các mức năng lượng và chủng loại hạt được mở rộng.
32