Tìm hiểu về số ngẫu nhiên và ứng dụng
VIỆN CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG ĐẠI HỌC BÁCH KHOA HÀ NỘI BÀI TẬP LỚN QUÁ TRÌNH NGẪU NHIÊN ỨNG DỤNG Đề số 5: Tìm hiểu về số ngẫu nhiên và ứng dụng Giảng viên hướng dẫn: PGS. TS Nguyễn Thị Hoàng Lan Hà Nội 11/2014 Số ngẫu nhiên Trang 2 Số ngẫu nhiên Mục lục Trang 3 Số ngẫu nhiên CHƯƠNG I: Ý NGHĨA CỦA SỐ NGẪU NHIÊN 1. Bắt đầu từ lớp bài toán quen thuộc Trong số các phương pháp để giải quyết những bài toán tất định, các phương pháp Monte Carlo là lời giải thích hợp để tính toán bằng máy tính, nhất là khi các thuật toán tất định không thể đưa ra được kết quả chính xác. Chúng ta quan tâm đến các phương pháp này vì lời giải của chúng sử dụng đến lý thuyết số ngẫu nhiên. Một ví dụ điển hình là ước lượng giá trị của tích phân Monte Carlo có dạng tổng quát: I = Dạng cơ bản của tích phân này trong không gian một chiều, xét trong khoảng (0,1). I = Như ta đã biết, giả sử có một biến ngẫu nhiên X ~ U(0,1), Y là một hàm của X có dạng y = g(x), khi đó tính được E{g(x)} = = Giả sử biến ngẫu nhiên X mô hình hóa cho một đai lượng vât lý nào đó trong thực tế, khi đó ta có thể ước lượng giá trị kỳ vọng E{g(x)} bằng tần suất tương đối: với n đủ lớn. Nhận xét rằng, cho dù những dữ liệu x i được tạo bằng cách nào đi nữa, chúng vẫn là những số ngẫu nhiên có đặc trưng nhất định. Do đó, nếu có một Trang 4 Số ngẫu nhiên cách nào đó có thể tạo ra những số như vậy thì ta có thể tính được giá trị tích phân I. Từ đó dẫn đến nhu cầu thiết lập một phương pháp số để khởi tạo số ngẫu nhiên. Để thực hiện được điều đó, trước tiên ta cần trả lời các vấn đề sau: - Số ngẫu nhiên là gì? - Có thể khởi tạo số ngẫu nhiên bằng máy tính không? - Có thể tạo ra số thực sự “ngẫu nhiên”? 2. Khái niệm số ngẫu nhiên Khái niệm số ngẫu nhiên được rút ra từ hai quá trình nghiên cứu: lý thuyết và thực nghiệm. - Khái niệm lý thuyết: Một chuỗi số x i được gọi là ngẫu nhiên nếu các phần tử của nó bằng với những mẫu x i = X i (ζ) của một biến ngẫu nhiên độc lập có phân phối đều. Biến ngẫu nhiên ở đây có phân phối đều vì số ngẫu nhiên cũng được hiểu theo nghĩa tương tự, tức là xác suất tạo ra một số ngẫu nhiên là như nhau trong cả chuỗi ngẫu nhiên. - Khái niệm thực nghiệm: Một chuỗi số x i được gọi là ngẫu nhiên nếu các thuộc tính thống kê của nó giống với những thuộc tính của dữ liệu ngẫu nhiên thu được từ một thử nghiệm ngẫu nhiên Để kết quả thu được từ thực nghiệm phù hợp với lý thuyết xác suất: o Các phép thử phải độc lập o Mẫu thử thu được chi coi là gần đúng Vì số liệu không chắc chắn như vậy ⇒ Khó xác định bản chất của các số được tạo ⇒ Lợi thế là có thể chuyển những vấn đề thiết lập tính ngẫu nhiên của chuỗi số về những bài toán quen thuộc Trang 5 Số ngẫu nhiên 3. Khởi tạo số ngẫu nhiên Thuật toán chung nhất để khởi tạo một dãy số ngẫu nhiên z i là: z n = f(z n-1 ,…,z n-r ) mod m Trên đây là 1 biểu thức đệ quy phi tuyến thể hiện z n với điều kiện m là hằng số, f là hàm với các điều kiện ban đầu z n-1 ,…,z n-r . Chất lượng của bộ khởi tạo phụ thuộc vào dạng hàm f. 3.1 Thuật toán Lehmer: là bộ khởi tạo lâu đời nhất và đơn giản nhất. z 0 = 1 z n = az n-1 mod m ≥ 1 m là số nguyên tố, a là số nguyên. Qua nhiều năm, một số thuật toán đã được đưa ra để tạo ra 1 dãy số ngẫu nhiên đẹp. Tuy nhiên không phải tất cả đều được kiểm chứng và đứng vững với thời gian. . Một ví dụ về chuỗi z n co thể đáp ứng hầu hết đc các yêu cầu thu được từ (8-134) với a = 2 7 – 1 và m = 2 31 -1 : z n = 16.807z n-1 mod 2.147.483.647 Dãy này được xem là chuẩn nhất khi thỏa mãn các tiêu chuẩn kiểm tra về tính ngẫu nhiên và đã được áp dụng trong rất nhiều trường hợp. 3.2 Số ngẫu nhiên với phân phối bất kỳ - Gọi U là một biến ngẫu nhiên có phân phối đều trong khoảng (0, 1) tương ứng sẽ có các số ngẫu nhiên u i . - Nếu x i là các mẫu của BNN x, y i =g(x i ) là thể hiện của BNN y=g(x). Ta chứng minh được: nếu x i có phân phối F x (x), thì y i có phân phối F x ((y-a)/b) nếu b>0 F x ((y-a)/b) nếu b<0 Trang 6 Số ngẫu nhiên Ta sẽ sử dụng những bổ đề trên để trình bày những phương pháp tạo ra số ngẫu nhiên với phân phối bất kỳ Trang 7 Số ngẫu nhiên 3.3 Phương pháp chuyển đổi phân vị Trước hết ta chứng minh được: - Giả sử biến ngẫu nhiên X có phân phối bất kỳ F x (X) thì U = F x (X) là biến ngẫu nhiên có phân phối đều trong khoảng (0,1) Suy ra: X = F x (-1) (U) với F x (-1) (U) là hàm ngược của F x (X) Phương pháp khởi tạo: Như vậy để tạo một chuỗi có phân phối F x (X) ta chỉ cần tính hàm ngược của hàm phân phối đó và tính F x (-1) (u i ) . Lưu ý rằng dãy x i là phân vị u i của F x (x). - Nhược điểm: Tìm hàm ngược không dễ dàng. 3.4 Phương pháp loại trừ Để tránh phải sử dụng hàm ngược như phương pháp chuyển đổi phân vị, ta xây dựng một phương pháp khác dựa trên trên khái niệm tần suất tương đối của hàm mật độ có điều kiện của BNN X với sự kiện giả định ω: f x (X|ω)dx = (1) Sự kiện ω xảy ra với điều kiện theo biến x và u, và được chọn sao cho: f x (X|ω)dx = f y (Y) Tạo chuỗi y i bằng cách đặt y i = x i nếu ω xảy ra, loại bỏ x i nếu ngược lại. Lời giải là thỏa mãn nếu f y (X) bằng 0 trong mọi khoảng f x (X) bằng 0 Ta có thể giả định, mà ko cần làm mất đi tầm quan trọng của dạng tổng quát, tỷ lệ f x (X)/f y (X) bị chặn dưới bởi một hằng số a dương. ≥ a > 0 với mọi x Trang 8 Số ngẫu nhiên Định lý loại trừ: nếu BNN X và U là độc lập và ω={u ≤ r(x)} với r(x) =a ≤ 1 thì f x (x|ω) = f y (x) (2) Chứng minh: Hàm mật độ chung của hai BNN X và U bằng f x (X) trong dải 0<u<1 của mặt phẳng xu, các trường hợp còn lại bằng 0. Sự kiện µ bao gồm tất cả các kết quả mà điểm (X,U) là vùng bị che dưới đường cong u=r(x) của hình bên dưới. Do đó P(ω) = Sự kiện {x< X≤ x+dx,ω} bao gồm tất cả các điểm (x,u) nằm trong dải x<X≤ x+dx nằm dưới đường cong u=r(x). Các khối xác suất trong dải f x (x)r(x)dx như nhau. Do đó P{ x< X≤ x+dx,ω } = f x (x)r(x)dx Thay vào (1) ta có (2), (đpcm) Từ định lý loại trừ suy ra một chuỗi con của chuỗi x i thỏa mãn điều kiện u i ≤r(x i ) xác định một chuỗi số ngẫu nhiên có hàm mật độ f x (y|ω) = f y (y). Ta có kết quả như sau: Phương pháp khởi tạo: Đặt y i =x i nếu u i ≤ a; loại bỏ x i trong các trường hợp còn lại Trang 9 Số ngẫu nhiên 3.5 Phương pháp trộn Ta tạo một chuỗi số có hàm mật độ là tổng trọng số của m hàm mật độ khác f(x) = p 1 f 1 (x) + … + p m f m (x) p k > 0 (3) với mỗi f k là hàm mật độ của một chuỗi đã biết x i k Chuỗi x i được tạo theo quá trình trộn m chuỗi x i k được chọn ra theo quy tắc sau: Đặt x i = nếu p 1 + … + p k-1 ≤ u i <p i +…+ p k (4) Định lý trộn: nếu các chuỗi u i và ,……, là độc lập đôi một lẫn nhau thì hàm mật độ f x (x) của chuỗi x i được quy định bởi (4) có dạng như sau : f x (x) = p 1 f 1 (x) + … + p m f m (x) (5) Chứng minh: chuỗi x i là hỗn hợp của m m chuỗi khác.Gọi hàm mật độ của chuỗi con của chuỗi thứ k là x i k chính là f k (x). Chuỗi này cũng là một chuỗi con của x i với điều kiện phụ thuộc vào sự kiện: A k = { p 1 + … + p k-1 ≤u< p 1 +…+p k } Do đó hàm mật độ của nó cũng bằng f x (x|A k ). Điều đó dẫn tới kết luận rằng : f x (x|A k ) = f k (x) Từ định lý tổng xác suất, suy ra: f x (x) = f x (x|A 1 )P(A 1 ) + …+ f x (x|A m )P(A m ) Mặt khác ta có P(A k )=p k , suy ra đpcm. Kết luận: hàm mật độ f x (x) tạo ra bởi (5) bằng với hàm f(x) của (3). Như vậy ta có phương pháp khởi tạo số như sau: Đặt x i = nếu p 1 + … + p k-1 ≤ u i <p i +…+ p k Trang 10 [...].. .Số ngẫu nhiên CHƯƠNG 2: SỬ DỤNG MATLAB TẠO SỐ NGẪU NHIÊN 1 Các hàm sử dụng để sinh số ngẫu nhiên (Genrating random number) 1.1 Hàm rand hàm trả về số giả ngẫu nhiên từ phân phối đều - rand: trả về số ngẫu nhiên có phân phối đều trong khoảng (0, 1) - m + (n-m)*rand: trả về số ngẫu nhiên có phân phối đều trong khoảng (m, n) - rand (1, n) : trả về n số ngẫu nhiên có phân phối đều... (n-m)*rand (1, k): trả về k số ngẫu nhiên có phân phối đều (m, n) Hình 1: Code và kết quả hàm rand Trang 11 Số ngẫu nhiên 1.2 Hàm randn hàm trả về số giả ngẫu nhiên có phân phối chuẩn Gauss - randn: trả về 1 số ngẫu nhiên có phân phối chuẩn Gauss - randn (1, n): trả về n số ngẫu nhiên có phân phối chuẩn Gauss Hình 2: Code và kết quả chạy hàm randn 1.3 Hàm randi hàm trả về số giả ngẫu nhiên có phân phối... của số ngẫu nhiên - m cho biết số phần tử tạo ra Hình 3: Kết quả chạy hàm randi 1.4 Hàm random Cú pháp Mô tả Trả về Y là số ngẫu nhiên có phân phối name Tham số được giới hạn bởi A Y có cùng kích thước với A Trang 12 Số ngẫu nhiên Trả về Y là số ngẫu nhiên có phân phối name Tham số được giới hạn trong khoảng (A, B) Trả về Y là mảng có kích thước [m n …] chứa các số ngẫu nhiên có phân phối name.Tham số. .. sinh số ngẫu nhiên nhị thức Trang 18 Số ngẫu nhiên 4 Số ngẫu nhiên Chi-square (Chi-square random numbers) Cú pháp: Mô tả: - tạo ra các số ngẫu nhiên phân phối chi-square trong miền giới hạn V - : tạo ra mảng m, n,… chứa các số ngẫu nhiên phân phối chi-square trong miền giới hạn V Bài tập: Sinh 10 số ngẫu nhiên chi-square trong miền giới hạn V nhập vào từ bàn phím Code: Hình 11: Code sinh số ngẫu nhiên. .. sinh số ngẫu nhiên Chi-square Trang 19 Số ngẫu nhiên 5 Hướng dẫn sử dụng 5.1 Các file nguồn kèm theo - CHISQUARE.m: Chương trình nguồn sinh số ngẫu nhiên Chi-square - NHITHUC.m: Chương trình nguồn sinh số ngẫu nhiên nhị thức - RAND.m: Chương trình nguồn sinh số ngẫu nhiên bằng hàm rand - RANDN.m: Chương trình nguồn sinh số ngẫu nhiên bằng hàm randn - RANDOM.m: Chương trình nguồn sinh số ngẫu nhiên. .. trung bình và độ lệch chuẩn tương ứng với phân phối chuẩn miên quan - R=lognrnd(mu,sigma,m,n) hoặc R=lognrnd(mu,sigma,[m,n, ]): trả về một mảng có kích thước m, n Đề bài: Sinh 8 số ngẫu nhiên Lognormal có kì vọng là 1 và độ lệch chuẩn là 2 Code: Hình 7: Code sinh số ngẫu nhiên Lognormal Trang 16 Số ngẫu nhiên Kết quả: Hình 8: Kết quả sinh số ngẫu nhiên Lognormal 3 Số ngẫu nhiên nhị thức (Binomial random... tả: - tạo ra các số ngẫu nhiên phân phân phối nhi thức N là số lượng các thử nghiệm, P là xác suất thành công cho mỗi thử nghiệm - : tạo ra một mảng m, n các số ngẫu nhiên phân phối nhị thức với N là số lượng các thử nghiệm, P là xác suất thành công cho mỗi thử nghiệm Trang 17 Số ngẫu nhiên Bài tập: N từ 10 đến 40, P = sinh dãy số ngẫu nhiên nhị thức Code: Hình 9: Code sinh số ngẫu nhiên nhị thức Kết... Lognormal Trang 15 Số ngẫu nhiên z có phân phối chuẩn N(0, 1) w có phân phối Lognormal với kỳ vọng và độ lệch chuẩn Trong đó m, v lần lượt là kì vọng, độ lệch chuẩn của phân phối chuẩn tương ứng 2.2 Sinh số ngẫu nhiên Lognormal bằng matlab Cú pháp: - R= lognrnd(mu,sigma): trả về một mảng các số ngẫu nhiên được sinh ra từ phân phối Lognormal với các thông số mu và sigma mu và sigma là trung bình và độ lệch... giới hạn bởi A Các name trong hàm random Trang 13 Số ngẫu nhiên Hình 4: Các name trong hàm random Bài tập: Sinh dãy số ngẫu nhiên có phân phối chuẩn, phân phối poission, phân phối Gamma, phân phối Beta, phân phối Rayleigh, phân phối student-t, phân phối nhị thức Code: Hình 5: Code sinh số ngẫu nhiên Trang 14 Số ngẫu nhiên Kết quả: Hình 6: Kết quả 2 Số ngẫu nhiên Lognormal 2.1 Lý thuyết Nếu z là phân phối... Chương trình nguồn sinh số ngẫu nhiên bằng hàm randn - RANDOM.m: Chương trình nguồn sinh số ngẫu nhiên bằng hàm random - LOG.m: Chương trình nguồn sinh số ngẫu nhiên Lognormal - RANDI.m: Chương trình nguồn sinh số ngẫu nhiên bằng hàm randi 5.2 Cách sử dụng - Giải nén - Mở Matlab->Open->chọn chương trình nguồn -> run( kết quả bên giao diện chính Trang 20 ) Xem . NGẪU NHIÊN ỨNG DỤNG Đề số 5: Tìm hiểu về số ngẫu nhiên và ứng dụng Giảng viên hướng dẫn: PGS. TS Nguyễn Thị Hoàng Lan Hà Nội 11/2014 Số ngẫu nhiên Trang 2 Số ngẫu nhiên Mục lục Trang 3 Số ngẫu. 17 Số ngẫu nhiên Bài tập: N từ 10 đến 40, P = sinh dãy số ngẫu nhiên nhị thức Code: Hình 9: Code sinh số ngẫu nhiên nhị thức Kết quả: Hình 10: Kết quả sinh số ngẫu nhiên nhị thức Trang 18 Số ngẫu. Mô tả Trả về Y là số ngẫu nhiên có phân phối name. Tham số được giới hạn bởi A. Y có cùng kích thước với A Trang 12 Số ngẫu nhiên Trả về Y là số ngẫu nhiên có phân phối name. Tham số được giới