Phương pháp monte carlo và thuật toán giải bài toán quy hoạch luận văn tốt nghiệp đại học

41 1.1K 2
Phương pháp monte carlo và thuật toán giải bài toán quy hoạch luận văn tốt nghiệp đại học

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 Bộ GIáO DụC ĐàO TạO Trờng Đại học Vinh ******************** nguyễn thị ngọc anh phơng pháp monte carlo thuật toán giải bài toán quy hoạch KhóA LUậN cử nhân khoa học Ngành toán tin ứng dụng Vinh, 2011 Bộ GIáO DụC ĐàO TạO Trờng Đại học Vinh ******************** nguyễn thị ngọc anh phơng pháp monte carlo thuật toán giải bài toán quy hoạch Ngời hớng dẫn khoa học: ThS. Nguyễn thị thanh hiền Vinh, 2011 2 Mục lục Tran g Mở đầu: 1 Chơng 1. Phơng pháp Monte Carlo thuật toán 3 1.1. Phơng pháp Monte Carlo .3 1.1.1. Giới thiệu chung phơng pháp Monte Carlo .3 1.1.2. Các nội dung phơng pháp Monte Carlo 5 1.2. Sơ lợc về Thuật toán 9 1.2.1. Bài toán Quy hoạch .9 1.2.2. Thuật toán Monte Carlo tổng quát .10 1.2.2.1. Định nghĩa 10 1.2.2.2. Định lý .11 1.2.3. Thuật toán Monte Carlo theo toạ độ 13 Chơng 2. Thiết lập chơng trình bằng ngôn ngữ lập trình Visual Basic .14 2.1. Giới thiệu Visual Basic .14 2.1.1. Visual Basic là gì? .14 2.1.2. Cài đặt Visual Basic 15 2.1.3. Khởi động Visual Basic .15 2.1.4. Thoát chơng trình Visual Basic .16 2.1.5. Hóng dẫn cài đặt chơng trình mô phỏng thuật toán Monte Carlo theo tọa độ (đã đợc đóng gói) 16 2.1.6. Từ khóa, tên, quy tắc đặt tên một số câu lệnh thờng gặp 18 2.1.6.1. Từ khóa .18 2.1.6.2. Tên quy tắc đặt tên 18 2.1.6.3. Một số câu lệnh thờng gặp .18 2.1.6.4. Câu lệnh, khối lệnh, bẫy lỗi trong Visual Basic .19 2.2. Cấu trúc giao diện chơng trình 21 Kết luận 36 Tài liệu tham khảo .37 1 Mở ĐầU Phơng pháp Monte Carlo ra đời cùng thời với thế hệ máy tính điện tử đầu tiên ở Mỹ từ những năm 1943-1944. Tuy nhiên, tên gọi phơng pháp Monte Carlo hay còn gọi là phơng pháp thử thống kê xuất hiện trong từ điển Toán học vào những năm 1949-1950. Đến năm 1961 cuốn chuyên khảo đầu tiên về phơng pháp Monte Carlo của nhà toán học N.P.Buslenko J.A.Srejder (ngời Nga) ra đời đ- ợc nhiều nhà toán học quan tâm. ở nớc ta, phơng pháp Monte Carlo đợc giảng dạy áp dụng vào thực tế từ những năm 1963, mà công đầu tiên phải kể đến là Giáo s Nguyễn Quý Hỷ, trờng Đại học KHTN-ĐHQG Hà Nội. Chuyện kể rằng tại Thành phố Monte (Monaco), thành phố nổi tiếng với những sòng bạc phục vụ nhiều hạng ngời khác nhau. Sự may rủi, đỏ đen liên tiếp đợc thể nghiệm bằng phép thử tung đồng tiền trên chiếu bạc. Nếu nói xác suất bắt nguồn từ chuyện ngời say rợu, thì phơng pháp Monte Carlo lại bắt nguồn từ những sòng bạc của thành phố có tên Monte. Mãi đến năm 1977 phơng pháp này mới đợc đa ra ứng dụng cùng thời các máy tính điện tử lần đầu tiên ở nớc ta. Trớc tiên là việc mô phỏng các trận động đất giải bài toán thiết kế tối u thí nghiệm cỡ lớn (1977-1978) để bổ sung hệ trạm quan sát trên lãnh thổ Việt Nam. Năm 1985-1987 phơng pháp đợc dùng để giải bài toán điều khiển tối u của nhà máy thủy điện Hoà Bình xác định trữ lợng thủy điện của các con sông trong lới điện thống nhất Bắc-Nam. Phơng pháp Monte Carlo đã đang đợc nhiều nhà Toán học ứng dụng quan tâm đến để giải các bài toán quy hoch tối u. Để hiểu rõ hơn về phơng pháp Monte Carlo cách thức giải bài toán quy hoạch, chúng tôi lựa chọn đề tài Phơng pháp Monte Carlo thuật toán giải bài toán quy hoạch. Việc sử dụng phần mềm Visual Basic để giải bài toán quy hoạch bằng phơng pháp Monte Carlo sẽ đ- ợc đề cập trong khóa luận này. Nội dung của khoá luận đợc trình bày thành hai chơng. Chơng 1 : Phơng pháp Monte Carlo thuật toán. Chơng 2 : Thiết lập chơng trình bằng ngôn ngữ lập trình Visual Basic. 1 Khóa luận đ ợc thực hiện v ho n th nh tại tr ờng Đại học Vinh, d ới sự h ớng dẫn khoa học của Th.S. Nguyễn Thị Thanh Hiền. Tác giả xin b y tỏ lòng biết ơn sâu sắc đến cô, ng ời đã d nh cho tác giả nhiều thời gian, sự quan tâm nhiệt tình h ớng dẫn giúp đỡ tác giả ho n th nh khóa luận. Nhân dịp n y, tác giả cũng xin trân trọng gửi lời cảm ơn chân th nh tới PGS.TS. Trần Xuân Sinh, Th.S. Lơng Xuân Phú, các thầy cô giáo trong tổ Xác suất Thống kê v Toán ứng dụng, khoa Toán đã nhiệt tình tạo điều kiện giúp đỡ, góp ý cho tác giả trong quá trình học tập v nghiên cứu để ho n th nh khóa luận. Tác giả xin chân th nh cảm ơn tập thể lớp 48B Toán tin ứng dụng, gia đình v bạn bè đã động viên, giúp đỡ v tạo điều kiện tốt cho nhất tác giả trong quá trình học tập v nghiên cứu. Vinh, tháng 5 năm 2011 Tác giả CHƯƠNG 1 2 Phơng pháp monte carlo thuật toán 1.1. Phơng pháp Monte Carlo 1.1.1. Giới thiệu chung phơng pháp Monte Carlo Ví dụ 1.( Bài toán Buffon- nhà toán học Pháp, TK 18) Trên mặt phẳng của một chiếc bàn, ta kẻ các đờng thẳng song song, cách đều nhau, cự ly giữa chúng là 1 ( đơn vị độ dài). Tính xác suất P( ) của biến cố để chiếc kim AB cắt một trong các đờng thẳng đã kẻ trên mặt bàn. Giải. Bằng cách tung hú họa nh đã nêu với số lần tung N đủ lớn, ta xác định số lần kim cắt đờng thẳng là m, dựa vào luật số lớn ta có đợc ( ) . N m P (*) Để tính toán hoàn chỉnh hơn, ta ký hiệu: - là khoảng cách từ trung điểm O của chiếc kim AB (đã rơi trên mặt bàn, sau khi tung hú họa) đến đờng A thẳng gần nhất trong các đờng đã kẻ. A - là góc nhỏ nhất trong các góc tạo bởi kim AB với l O hớng trực giao đối với các đờng thẳng song song. Trên B hình 1, ta thấy =OA , góc { } ' , ' ' .A OA OA OA = = Vì ( ) ' .cos cos 2 h OA OA = = nên ta có Hình 1. ( ) { } ( ) cos . 2 h P P = Ta biết rằng 1 0 ;0 2 2 chiếc kim đợc tung hú họa từ một vị trí cao nên , là các đại lợng ngẫu nhiên độc lập, nhận giá trị trên đoạn 0, 2 một cách đồng khả năng, tức là có phân phối đều trên đoạn 0, 2 với hàm mật độ 3 [ ] [ ] 1 , , ( ) 0, , . x a b b a f x x a b = cụ thể là 2 , 0, 2 ( ) 0, 0, . 2 x p x x = Tơng tự, đại lợng có phân phối đều trên đoạn 1 0, 2 với hàm mật độ có dạng 2, ( ) 0, , y G x y G = Do tính độc lập của nên hàm mật độ của có dạng 4 , ( , ) ( ). ( ) 0, , x G f x y p x y x G = = trong đó ( ) { } 1 , : 0 ,0 . 2 2 G x y x y = Trên mặt phẳng với hệ toạ độ vuông góc xOy, ta gọi S là hình giới hạn bởi trục hoành cung đờng cong ( ) , 0, . 2 2 h y cosx x = Khi đó ( ) ( ) { } , : 0 ,0 . 2 2 h S x y x y cosx G = Từ đó ta suy ra ( ) { } 2 2 0 0 4 2 ( ) , . h cosx h P P S dy dx = = = So sánh với (*), ta tính đợc số theo công thức 2 . hN m Chẳng hạn với N=500 thì đợc 3,159. Ví dụ 2. Để giải bài toán quy hoạch tuyến tính 4 min { CX : X M }, với M = { X n : AX = B, X 0 } ta có thể sử dụng thuật toán sau đây: Bớc 1. Chọn ngẫu nhiên điểm 0 X M . Gọi 0 X là phơng án kỷ lục. Bớc k.(k=0,1, .). Đã biết phơng án kỷ lục k X . Chọn ngẫu nhiên 1k X M + . + Nếu 1k k CX CX + , loại bỏ 1k X + . + Nếu 1k k CX CX + < , gán k X := 1k X + , trở lại bớc k. Quá trình trên lặp lại với k đủ lớn, ta đợc phơng án xấp xỉ của phơng án tối u. 1.1.2. Các nội dung của Phơng pháp Monte Carlo + Nội dung thứ nhất: Một loại đối tợng khá quan trọng của phơng pháp Monte Carlo là việc giải một số bài toán tất định, có thể thực hiện việc giải bằng cách gắn các yếu tố ngẫu nhiên của bài toán, nghĩa là ta đã xây dựng mô hình xác suất tơng ứng với các bài toán đã cho, các bài toán không liên quan đến tính xác suất. Để sử dụng phơng pháp Monte Carlo vào mỗi bài toán tất định nói trên trớc hết ta lập bài toán xác suất tơng ứng mà lời giải y của bài toán tất định xác định đ- ợc từ lời giải x của bài toán xác suất bởi một quan hệ hàm y = f(x) nào đó. Đây là nội dung thứ nhất của phơng pháp Monte Carlo. Ví dụ. Để xác định lời giải y = của bài toán tính số , ta lập mô hình xác suất tơng ứng là tung hú họa chiếc kim có độ dài AB trên mặt bàn kẻ có sẵn các đ- ờng thẳng song song cách đều. Lời giải x của bài toán xác suất P( ) để chiếc kim cắt một trong các đờng thẳng song song x =P( ). Khi đó y = 2 ( ) h p = 2h x = f(x). + Nội dung thứ hai: Sau công việc lập bài toán xác suất tơng ứng cho bài toán tất định, ta cần giải gần đúng bài tập xác suất tơng ứng trong mô hình thông qua việc tiến hành các phép thử ngẫu nhiên. Đây là quá trình thể hiện xác suất t- ơng ứng từ kết quả các phép thử ta có thể thiết lập một đại lợng ngẫu nhiên X m với lời giải x m của mô hình xác suất. Nếu lời giải y n của bài toán tất định đ- 5 ợc xác định từ x bởi quan hệ hàm y=f(x) với f là hàm liên tục thì ta có thể xấp xỉ nó bởi véctơ ngẫu nhiên Y=f(x) n , nghĩa là X x m ; Y=f(X) f(x) = y n . Trong đó Y X đợc gọi là ớc lợng hay ớc lợng Monte-Carlo (ULMC) đối với lời giải y x của lần lợt các bài toán tất định xác suất tơng ứng. Khi thể hiện một mô hình xác suất tơng ứng với mỗi bài toán tất định, cần giải bằng phơng pháp Monte Carlo ta phải chuyển nó về quá trình thể hiện một trong số những mô hình xác suất cơ bản nói trên. Đây là nội dung thứ 2 của phơng pháp Monte Carlo. + Nội dung thứ ba: ứng dụng của phơng pháp Monte Carlo vào việc giải bằng số các bài toán xác suất với các hiện tợng ngẫu nhiên không quan sát đợc thuộc loại của bài toán này là các bài toán quan trọng của lý thuyết thông tin, phục vụ đám đông, vật lý hạt nhân Các bài toán nói trên có chung một đặc điểm là các hiện tợng ngẫu nhiên xuất hiện trong đó là không có khả năng quan sát đợc, nghĩa là ta không thể tiến hành các thí nghiệm để quan sát chúng trong thực tế. Chẳng hạn, các bài toán mà quá trình diễn ra quá chậm có tính chất cơ học chậm chạp trong việc tung kim, tung hòn sỏi, diễn biến của quá trình động đất trong một tơng lai khá xa của một vùng lãnh thổ, diễn biến các quá trình sinh học trong sự cân bằng sinh thái Các bài toán có quá trình diễn ra quá nhánh: Các quá trình khuyếch tán, quá trình phân nhánh các phản ứng dây chuyền của vật lý hạt nhân, quá trình bức xạ, khuyếch tán dịch chuyển trong quang học khí quyển trong đó tốc độ diễn biến có khi là tốc độ ánh sáng rất phức tạp mà chúng ta có khi không đủ phơng tiện để quan sát. Các bài toán cần thực hiện thí nghiệm quá đắt: Nh việc bổ sung khá lớn những mũi khoan thăm dò trữ lợng dầu khí tại một khu mỏ nào đó, dự báo lu lợng nớc về các hồ điều khiển các nhà máy thủy điện, dự báo kết quả của các trận đấu, quân sự, thể thao. Công việc dự báo tiên nghiệm ta không thể chờ đợi các hiện t- ợng ngẫu nhiên xảy ra, nghĩa là không thể tổ chức thể hiện các thí nghiệm ngẫu nhiên, để dựa vào đó phát biểu lời giải của bài toán dự báo. Tơng tự với các trờng hợp nh vậy bằng cách gắn vào bài toán các yêu tố ngẫu nhiên, ta cần xây dựng mô 6 hình ảo (mô phỏng) gần giống nh thật để nghiên cứu trên máy tính. Đây có thể xem nội dung thứ ba của phơng pháp Monte Carlo. Một cách chung nhất, phơng pháp Monte Carlo là phơng pháp số giải các bài toán bằng cách mô hình hóa các đại lợng ngẫu nhiên. Về mặt nội dung, phơng pháp này liên quan tới t tởng xây dựng một quá trình ngẫu nhiên giả tạo có tất cả những đặc tính cần thiết của hệ thống cần nghiên cứu. Phơng pháp Monte Carlo có thể áp dụng đợc ở mọi nơi, miễn là ở đó bài toán cho phép mô tả bằng toàn thể hay một phần của lý thuyết xác suất, dù rằng bài toán đó có thể đã có nội dung tiền định chặt chẽ. Nh vậy, sử dụng phơng pháp Monte Carlo để giải bài toán nào đó, ta cần thực hiện tuần tự nh sau: Xây dựng các mô hình xác suất của các quá trình thực tiễn cần nghiên cứu. Mô hình hóa các đại lợng ngẫu nhiên với luật phân phối cho trớc. Giải bài toán theo lý thuyết ớc lợng thống kê. Giá trị thực tiễn của phơng pháp Monte Carlo là nó sử dụng những phép thử thay cho các kết quả tính toán dựa trên các đại lợng ngẫu nhiên. Bởi vậy, có thể xác định đợc các đặc trng của quá trình cần nghiên cứu mà không cần dùng các phơng trình mô tả sự thay đổi của quá trình đã cho. Một tên gọi khác của phơng pháp Monte Carlo là phơng pháp thử thống kê. Bài toán cơ bản của phơng pháp Monte Carlo là xác định xác suất của sự kiện bất kỳ các giá trị trung bình của đại lợng ngẫu nhiên qua kết quả của các phép thử lặp đi lặp lại nhiều lần. Cơ sở của lợc đồ chung về phơng pháp Monte Carlo là định lý giới hạn trung tâm. Theo định lý đó thì có thể coi mọi đại lợng m cha biết nh là kỳ vọng toán học của một đại lợng ngẫu nhiên nào đó, tức là E =m với phơng sai D = 2 . Từ định lý giới hạn trung tâm ta có hệ thức 1 1 3 0,997 N j j P m N N = p . 7 . pháp Monte Carlo và cách thức giải bài toán quy hoạch, chúng tôi lựa chọn đề tài Phơng pháp Monte Carlo và thuật toán giải bài toán quy hoạch. Việc sử dụng. Phơng pháp monte carlo và thuật toán 1.1. Phơng pháp Monte Carlo 1.1.1. Giới thiệu chung phơng pháp Monte Carlo Ví dụ 1.( Bài toán Buffon- nhà toán học Pháp,

Ngày đăng: 19/12/2013, 14:04

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan