Thuật toán và chương trình

Một phần của tài liệu Thuật toán metropolis và ứng dụng (Trang 47)

3 ÁP DỤNG THUẬT TOÁN METROPOLIS

3.3Thuật toán và chương trình

+ ) Đầu vào:

- Đồ thị G =(V,E) với |V|= N. - T: số phép lặp.

+ ) Đầu ra:

Véc tơ B với Bi là số trạng thái "1" của cấu hình chấp nhận được ở bước thứ i. Dùng véc tơ B để có thể vẽ được biểu đồ hình cột và ước lượng được E[n(X)].

+ ) Thuật toán:

- Trước hết ta tạo một véc tơ A cỡ N và đặt Ai = 0 với ∀i tức là tất cả các đỉnh đều ở trạng thái "0". Ở các bước sau giá trị của Ai (0 hoặc 1) chính là trạng thái của đỉnh i.

- Với mỗi t= 1,2, ..., N (bước t) ta làm như sau:

+ ) Sinh một số ngẫu nhiên có phân bố đều trên{1, ..., N} và lưu vào biến v.

+ ) Sinh biến ngẫu nhiên có phân bố đều trên (0,1) và lưu vào biến c. + ) Nếu c > 1

2 và không có đỉnh kề nào của v ở trạng thái "1" ta đăt Av = 1. Nếu c ≤ 1

2 đặt Av = 0.

+ ) Đếm số các số "1" trong véc tơ A và lưu vào Bt.

Xích Markov được xây dựng theo thuật toán này với trường hợp lưới vuông G kích cỡ 10x10 là tối giản và không có chu kỳ.

+ ) Tính tối giản: Xích tối giản vì từ cấu hình δ bất kỳ với xác suất dương có thể quay về cấu hình gồm toàn trạng thái "0". Điều này xảy ra khi các đỉnh ở trạng thái "1" đều được chọn và khi sinh giá trị c thìc ≤ 1

2.

Từ cấu hình 0 (mọi đỉnh đều ở trạng thái "0") cũng có thể đi đến một cấu hình δ, chấp nhận được bất kỳ. Điều này xảy ra khi các đỉnh có trạng thái "1" trong δ, được chọn và khi sinh c thì c > 1

2.

+ ) Tính không có chu kỳ: Xích không có chu kỳ vì tại mỗi biến với xác suất dương cấu hình không thay đổi.

Trong ví dụ này đồ thị G có kích thước 10x10 như hình vẽ số 3 như vậy ta sẽ có N = 100 đỉnh. Ta dùng ma trận Mij(i, j = 1,2, ...,100) để lưu đồ thị này: Mij = 1 nếu (i,j) kề nhau (có cạnh nối i, j) ngược lại Mij = 0.

Hình 3.1: Hình vẽ cho trường hợp các đỉnh đều ở trạng thái "0" + ) Chương trình:

+ ) Kết quả: - Vẽ ra histogram.

KẾT LUẬN

Như vậy, trong luận văn trên, em đã trình bày những kiến thức cơ bản nhất về các phương pháp mô biến ngẫu nhiên như: phương pháp lấy mẫu ngược, phương pháp lấy mẫu loại trừ. Trong chương I của luận văn đã trình bày về ước lượng bằng mô phỏng cũng như các kiến thức về xích Markov với các phân bố dừng và phân bố giới hạn, cũng như kiến thức về xích tối giản và không có chu kỳ, xích khả nghịch.

Trong chương 2 từ những điều đã nêu về xích Markov ta nâng cấp lên thành thuật toán MCMC-Markov Chain Monte Carlo. Nhờ tính Ergodic của xích Markov đã được nêu trong định lý Ergodic ta có: Giả sử ta muốn biết kỳ vọng của BNN mà có Y là hàm phân phối với hàm mật độ tương ứng là Tuy vậy, ta không thể tính được, rất may ta có thể xây dựng một xích Markov có tính Ergodic mà hàm phân phối ban đầu có hàm mật độπ

. Sau đó ta cho X tới một số giá trị theo thời gian - các giá trị này rất lớn và ta đặt là N và ước lượng Eh(Y) bởi 1

N

N

X

n=1

h(Xn). Đây là ý tưởng chính của thuật toán MCMC. Và luận văn cũng giới thiệu một vài cơ chế sinh (sampler) xích Markov như vậỵ, đó là thuật toán Metropolis-Hastings.

Chương III của luận văn nêu áp dụng thuyết Metropolis thông qua ngôn ngữ R bằng cách nêu bài toán : Xích Markov được xây dựng theo thuật toán này là với G là lưới 10x10 là tối giản và không có chu kỳ. Chương trình này cho ta kết quả và biểu đồ biểu diễn các phân phối các trạng thái "1". Luận văn kết thúc bởi đoạn chương trình và kết quả ước lượng. (adsbygoogle = window.adsbygoogle || []).push({});

Tài liệu tham khảo

[1] Đặng Hùng Thắng, Xác suất nâng cao, NXB Đại học Quốc gia Hà nội, 2012.

[2] Nguyễn Duy Tiến, Vũ Viết Yên, Lý thuyết xác suất, NXB Giáo dục, 2009.

[3] Đặng Hùng Thắng, Quá trình ngẫu nhiên và tính toán ngẫu nhiên, NXB Đại học Quốc gia Hà nội, 2012

[4] Gareth Robert ST911 Fundamentals of Statistical Inference Part III, University of Warwick.

[5] Jun S.Liu Strategies In Scientific Computing , Department of Statis- tics Harvard University, June 13,2001.

Một phần của tài liệu Thuật toán metropolis và ứng dụng (Trang 47)