1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

36 1,1K 2
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Phương Pháp Monte Carlo Và Thuật Toán Giải Bài Toán Quy Hoạch
Tác giả Nguyễn Thị Ngọc Anh
Người hướng dẫn ThS. Nguyễn Thị Thanh Hiền
Trường học Đại học Vinh
Chuyên ngành Toán Tin Ứng Dụng
Thể loại Khóa Luận Cử Nhân
Năm xuất bản 2011
Thành phố Vinh
Định dạng
Số trang 36
Dung lượng 733 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

đỡ, 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μ hoμn thμnh tại trường Đại học Vinh, dưới μ hoμn thμnh tại trường Đại học Vinh, dưới μ hoμn thμnh tại trường

Trang 1

Trêng §¹i häc Vinh

********************

nguyÔn thÞ ngäc anh

ph¬ng ph¸p monte carlo vµ thuËt to¸n

gi¶i bµi to¸n quy ho¹ch

KhãA LUËN cö nh©n khoa häc

Vinh, 2011

Trang 2

Bé GI¸O DôC Vµ §µO T¹O Trêng §¹i häc Vinh

********************

nguyÔn thÞ ngäc anh

ph¬ng ph¸p monte carlo vµ 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

Trang 3

Mục lục Tran

g

Mở đầu: 1

Chơng 1 Phơng pháp Monte Carlo và 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 và 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 và 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 và giao diện chơng trình 21

Kết luận 36

Tài liệu tham khảo 37

Trang 4

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ử đầutiên ở Mỹ từ những năm 1943-1944 Tuy nhiên, tên gọi “phơng pháp MonteCarlo” hay còn gọi là “phơng pháp thử thống kê” xuất hiện trong từ điển Toánhọ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 và J.A.Srejder (ngờiNga) ra đời và đợc nhiều nhà toán học quan tâm ở nớc ta, phơng pháp MonteCarlo đợc giảng dạy và áp dụng vào thực tế từ những năm 1963, mà công đầutiê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ớinhữ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ấtbắ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ácmá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 và 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 và 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 đã và đang đợc nhiều nhà Toán học ứng dụngquan tâm đến để giải các bài toán quy hoạch tối u Để hiểu rõ hơn về phơng 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ần mềm Visual Basic để giải bài toán quy hoạch bằng phơng pháp MonteCarlo 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 và 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

Khóa luận đ ợc thực hiện v ho n th nh tại tr ờng Đại học Vinh, d ớiược thực hiện vμ hoμn thμnh tại trường Đại học Vinh, dưới μ hoμn thμnh tại trường Đại học Vinh, dưới μ hoμn thμnh tại trường Đại học Vinh, dưới μ hoμn thμnh tại trường Đại học Vinh, dưới ược thực hiện vμ hoμn thμnh tại trường Đại học Vinh, dưới ượ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ỏược thực hiện vμ hoμn thμnh tại trường Đại học Vinh, dưới μ hoμn thμnh tại trường Đại học Vinh, dướilò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ược thực hiện vμ hoμn thμnh tại trường Đại học Vinh, dưới μ hoμn thμnh tại trường Đại học Vinh, dướitâm nhiệt tình h ớng dẫn giúp đỡ tác giả ho n th nh khóa luận.ược thực hiện vμ hoμn thμnh tại trường Đại học Vinh, dưới μ hoμn thμnh tại trường Đại học Vinh, dưới μ hoμn thμnh tại trường Đại học Vinh, dưới

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μ hoμn thμnh tại trường Đại học Vinh, dưới μ hoμn thμnh tại trường Đại học Vinh, dướiPGS.TS Trần Xuân Sinh, Th.S Lơng Xuân Phú, và các thầy cô giáo trong tổ Xácsuất Thống kê v Toán ứng dụng, khoa Toán đã nhiệt tình và tạo điều kiện giúpμ hoμn thμnh tại trường Đại học Vinh, dưới

Trang 5

đỡ, 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μ hoμn thμnh tại trường Đại học Vinh, dưới μ hoμn thμnh tại trường Đại học Vinh, dưới μ hoμn thμnh tại trường Đại học Vinh, dướiluậ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μ hoμn thμnh tại trường Đại học Vinh, dưới

đì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μ hoμn thμnh tại trường Đại học Vinh, dưới μ hoμn thμnh tại trường Đại học Vinh, dướiquá trình học tập v nghiên cứu.μ hoμn thμnh tại trường Đại học Vinh, dưới

Vinh, tháng 5 năm 2011 Tác giả

CHƯƠNG 1

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, 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’

Trang 6

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

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

Trang 7

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

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 X0M Gọi X0 là phơng án kỷ lục

Bớc k.(k=0,1, ) Đã biết phơng án kỷ lục X k Chọn ngẫu nhiên X k1M + Nếu CX k1 CX k, loại bỏ X k1

+ Nếu CX k1CX k, gán X k:=X k1, 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ằngcá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ìnhxá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ínhxá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().

Trang 8

+ 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ôngqua 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 đợ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 và X đợc gọi là ớc lợng hay ớc lợng Monte-Carlo (ULMC) đối

với lời giải y và x của lần lợt các bài toán tất định và 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ápMonte 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 đợcthuộ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 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 quansát đợc”, nghĩa là ta không thể tiến hành các thí nghiệm để quan sát chúng trongthự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ọcchậm chạp trong việc tung kim, tung hòn sỏi, diễn biến của quá trình động đấttrong 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 sinhhọc trong sự cân bằng sinh thái… Các bài toán nói trên có chung một đặc

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ứcxạ, khuyếch tán và dịch chuyển trong quang học khí quyển trong đó tốc độ diễnbiến có khi là “tốc độ ánh sáng” rất phức tạp mà chúng ta có khi không đủ phơngtiệ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ớnnhữ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áchiệ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ệmngẫ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

Trang 9

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âydựng mô 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ácbà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 MonteCarlo có thể áp dụng đợc ở mọi nơi, miễn là ở đó bài toán cho phép mô tả bằngtoà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ầnthự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êncứ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ácphơ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ỳ và 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

trong đó j ,(j=1,2, …, N , N) là các giá trị của đại lợng ngẫu nhiên  nhận đợc ở

mỗi cột trong N phép thử Hệ thức đó xác định số cha biết m và đồng thời đánh

giá đợc sai số Từ hệ thức đó suy ra rằng khi tăng số phép thử thì độ chính xáccủa nghiệm tăng lên

Trang 10

Nh vậy, thực chất của phơng pháp Monte Carlo là chơng trình để tiến hànhphép thử ngẫu nhiên và thực hiện một cách ngẫu nhiên Tuy nhiên trong thực tếthờng dùng một cơ chế tiêu chuẩn để sản sinh ra các đại lợng ngẫu nhiên cóphân phối miền trên một miền nào đó (chẳng hạn trên đoạn [0,1]) Có thể nhận

đợc số ngẫu nhiên ở phơng pháp Monte Carlo theo một trong những phơng pháp

đã biết

Nhợc điểm quan trọng của phơng pháp Monte Carlo là để nhận đợc các đặctrng của quá trình nghiên cứu với độ chính xác cho trớc thì cần quá nhiều phépthử Chẳng hạn, với độ chính xác >0 cho trớc, để nhận đợc giá trị trung bình x

của đại lợng ngẫu nhiên , thì cần phải tiến hành số phép thử là N 4D2

 , trong

đó D là phơng sai Nh vậy với D = 0,01 và  = 0,001 thì N = 400.000 phép

thử Mỗi phép thử, độ phức tạp tính toán của thuật toán phụ thuộc độ dài dữ liệu,tức là phụ thuộc số biến n của bài toán Vì vậy, trong nhiều bài toán phơng phápMonte Carlo phải hạn chế về số biến (Chẳng hạn: phơng pháp Monte Carlo giảibài toán quy hoạch thờng chỉ áp dụng với các bài toán có số ẩn không lớn lắm( số ẩn n30))

Ngày nay, với các thế hệ máy tính có tốc độ ngày càng cao thì vấn đề khốilợng tính toán có thể khắc phục đợc Do vậy, sự kết hợp của những thành tựumáy tính điện tử với phơng pháp Monte Carlo nhằm giải quyết các bài toánthuộc các lĩnh vực kinh tế - xã hội khác nhau có thể xem nh đó là “cuộc cáchmạng trong toán học tính toán”

Cơ sở toán học của phơng pháp Monte Carlo là luật số lớn thuộc lý thuyếtxác suất thống kê toán

1.2 Sơ lợc về Thuật toán

Thuật toán đã đợc biết đến từ rất lâu Bản thân thuật ngữ thuật toán(Algorithm) là viết tắt tên của nhà toán học thế kỷ IX : AbuJa’fa Mohammed ibnMusa al-Khowarizmi Khái niệm thuật toán có một lịch sử phát triển lâu dài, một

 Hibert vào những năm 1900 đã đề xuất một vấn đề rất hóc búa cho cộng

đồng các nhà toán học : “ Hãy xây dựng một thủ tục mà theo đó 1 số hữu hạn

Trang 11

phép toán có thể xác định 1 đa thức có nghiệm hay không?” Vấn đề này đợcbiết dới tên gọi “ Bài toán thứ 10 của Hibert”.

 Chúng ta có ví dụ về thuật toán nhng cha có định nghĩa hình thức thểnào là thuật toán Để chứng minh là không tồn tại thuật toán giải bài toán tínhtoán, ta cần đĩnh nghĩa hình thức của thuật toán

 Năm 1936, hai nhà toán học Turing và Church mỗi ngời đã đề xuất mộtmô hình tính toán riêng mà sau đó đợc chứng minh là tơng đơng

 Bài toán về tính dừng (Halting problem) và bài toán nghiệm nguyên của

đa thức ( integer Root problem) đã đợc chứng minh là các bài toán không cóthuật toán giải

Vậy khái niệm thuật toán : Thuật toán là 1 hệ thống chặt chẽ và rõ ràng cácquy tắc nhằm xác định một dãy các thao tác trên những đối tợng, sao cho saumột số hữu hạn bớc thực hiện các thao tác ta đạt trớc mục tiêu định trớc

1.2.1 Bài toán quy hoạch

n j b x a D x

j j

trong đó x = (x1, x2, … Các bài toán nói trên có chung một đặc x, n)  D, D  ℝn và hàm mục tiêu f(x)

Ký hiệu G = x = (x j)  ℝn : a j x j b j , M là tập phơng án.

1.2.2 Thuật toán Monte Carlo tổng quát

Bớc 0 Xuất phát từ phơng án x(0)  M, ký hiệu 0 = f(x(0)), lúc này gọi x(0) làphơng án kỷ lục

Bớc k (k = 1, 2, )

k 1 Giả sử ta đang biết phơng án kỷ lục là x (k) và k = f(x (k) ) Với tập G, độ

đo mesG đợc xác định, chọn ngẫu nhiên điểm  (k) có phân phối đều trên G.

k.2 Kiểm tra (k)  M hay không?

+ Nếu (k)  M thì loại bỏ  (k) , trở lại bớc k.

+ Nếu (k)  M thì số phơng án tăng lên 1 Gán x (k+1) := (k)

k 3 Tính giá trị hàm mục tiêu f(x (k+1)) và kiểm tra

+ Nếu f(x (k+1)) > k , thì x (k+1) “không tốt hơn” x (k) , trở lại bớc k.1.

+ Nếu f(x (k+1)) < k , thì x (k+1) “tốt hơn” x (k) Gán k := k + 1, trở lại bớc k.1.

Để chứng minh sự hội tụ của phơng pháp Monte-Carlo giải bài toán quy

hoạch nh đã nêu, ta ký hiệu x (k) là dãy các phơng án tìm đợc trong quá trình

thực hiện thuật toán Nh vậy, ở bớc thứ k ta có

x (k+1) :=  (k) , nếu f( (k) )  f(x (k)) (*)

(2)

Trang 12

x (k) , nếu f( (k) ) > f(x (k)),trong đó (k) là vectơ ngẫu nhiên ở bớc lặp thứ k nhận đợc từ thuật toán Monte

Carlo

Ta cũng ký hiệu mesM là “diện tích” của M (theo nghĩa độ đo trong ℝ n)

Khi đó với tập khả tích A  M, ta có công thức tính xác suất để mỗi   M thuộc

1.2.2.1 Định nghĩa Ta nói bài toán quy hoạch đã cho có giá trị cực tiểu

không cô lập nếu nó có ít nhất một nghiệm x*, sao cho

mesx  M : f(x) < f(x*) +   > 0, với mọi  > 0 đủ bé.

1.2.2.2 Định lý Bài toán quy hoạch đã nêu với giá trị cực tiểu không cô

lập và dãy x (k)  đợc thiết lập từ thuật toán Monte-Carlo, khi đó ta có

P klimf(x (k) ) = f(x*) = 1.

Chứng minh Với mọi  > 0 đủ bé, ta gọi A k() là biến cố ngẫu nhiên xẩy ra

đối với x (k) thoả mãn f(x (k) ) < f(x*) + , ký hiệu

A k()  

N k

Trang 13

(1 - p)k (***)

Đặt

A() := x  M : f(x) < f(x*) + .

Từ giả thiết về tính không cô lập của giá trị cực tiểu f(x*), ta có

mesA() > 0, với mọi  > 0.

Đó là điều phải chứng minh

Để có thể viết chơng trình cho thuật toán Monte-Carlo, ta thay việc lựa

chọn ngẫu nhiên điểm   M là cách chọn ngẫu nhiên theo tọa độ bằng thuật

toán nh sau

1.2.3 Thuật toán Monte-Carlo theo toạ độ

Trang 14

Để giải bài toán (1)-(3), ta sử dụng thuật toán Monte-Carlo nh sau:

Bớc 0 Xuất phát từ phơng án x, ký hiệu  = f(x).

Bớc 1 Với mỗi j, ta tạo một số ngẫu nhiên phân bố đều trên đoạn [a j , b j]theo công thức

x' j = a j + (b j - a j) (a)

trong đó  là một số ngẫu nhiên phân bố đều trên đoạn [0, 1].

Chú ý rằng sau mỗi bớc lặp số điểm ngẫu nhiên đợc tăng lên 1 Bằng cáchchọn số ngẫu nhiên sử dụng hàm Random, với câu lệnh randomize khởi tạo bộtạo số ngẫu nhiên khác nhau (không lặp lại) nhờ đồng hồ của máy tính

Nh vậy sau n lần chọn số ngẫu nhiên ta đợc bộ giá trị

x' = (x'1, … Các bài toán nói trên có chung một đặc x', n)

Bớc 2 Kiểm tra xem x' có thuộc M hay không

+ Nếu x'  M thì trở lại bớc 1.

+ Ngợc lại, x'  M thì số phơng án tìm đợc tăng lên 1 và sang bớc 3.

Bớc 3 Tính giá trị hàm mục tiêu f(x').

+ Nếu f(x') >  thì x' “tồi” hơn x Trở lại bớc 1.

+ Nếu f(x') <  thì x' “tốt” hơn x, gán x := x',  := f(x'), rồi trở lại bớc 1.

Nh đã chứng minh ở 1.2.2.2, ta có thuật toán vừa nêu là hội tụ theo xácsuất, nghĩa là với số bớc lặp đủ lớn ta tìm đợc lời giải với xác suất bằng 1

Trang 15

(event-mua v cà m ải tiến nhiều Phiên bản cũ của Visual Basic bắt nguồn phần lớn từBASIC v à m để lập trình viên phát triển các giao diện người dựng đồ họa (GUI)theo mô hình phát triển ứng dụng nhanh (Rapid Application Development,RAD) truy cập các cơ sở dữ liệu dựng DAO (Data Access Objects), RDO(Remote Data Objects), hay ADO (ActiveX Data Objects) lập các điều khiển và m

đối tợng ActiveX

Dựng Visual Basic l cách nhanh v tà m à m ốt nhất để lập trình cho MicrosoftWindows vì Visual Basic sẽ cung cấp cho bạn một bộ công cụ ho n chà m ỉnh đểđơn giản hóa việc triển khai lập trình ứng dụng cho MS Windows

Visual Basic còn có hai dạng khác l Visual Basic for Application (VBA)à m

v VBScript VBA l ngôn ngà m à m ữ nằm phía sau các chương trình Word, Excel,MSAccess, MSProject, v.v còn gọi l Macros Dùng VBA trong MS Office, taà m

có thể l m tà m ăng chức năng bằng cách tự động hóa các chương trình CònVBScript được dùng cho Internet v trong chính hà m ệ điều h nh Windows.à m

Visual Basic l gì?à m

Phần "Visual" đề cập đến phương pháp được sử dụng để tạo giao diện đồhọa người dùng (Graphical User Interface - GUI) Visual Basic có sẵn những bộphận hình ảnh, gọi l controls bà m ạn có thể sắp đặt vị trí v quyà m ết định các đặctính của chúng trên một khung m n hình, gà m ọi l form Nà m ếu bạn đó từng sử dụngchương trình vẽ chẳng hạn như Paint, bạn đó có sẵn các kỹ năng cần thiết để tạomột GUI cho Visual Basic

Phần "Basic" đề cập đến ngôn ngữ BASIC (Beginners All-PurposeSymbolic Instruction Code) một ngôn ngữ lập trình đơn giản, dễ học, được chế

ra cho các khoa học gia Visual Basic chứa đến h ng trà m ăm câu lệnh (commands),

h m (functions) v tà m à m ừ khóa (keywords) Rất nhiều commands, functions liên hệtrực tiếp đến MS Windows GUI Những người mới bắt đầu có thể viết chươngtrình bằng cách học chỉ một v i commands, functions v keywords Khà m à m ả năngcủa ngôn ngữ n y cho phép nhà m ững người chuyên nghiệp ho n th nh bà m à m ất kỳ điềugì nhờ sử dụng ngôn ngữ lập trình MS Windows nào khác

2.1.2 Cài đặt Visual Basic (VB6)

Trang 16

Để c i à m đặt VB6, máy tính của bạn cần phải có một ổ đĩa CD-ROM (CDdrive) Bạn cần ít nhất 32 MB RAM, 2 GB hard disk v CPU Pentium II Khi bà m ỏVB6 CD v o CD drive, nó sà m ẽ tự khởi động để display menu cho bạn chọn nhữngthứ gì cần Setup, hăy click Install Visual Basic 6.0 để c i VB6 Ngoà m ại trừ cácfile hệ điều h nh (Operating System) trong thà m ư mục (folder) \Os, các file trongđĩa compact đều không bị nén Vì thế, bạn có thể sử dụng chúng trực tiếp từ đĩa.

Ví dụ, có nhiều công cụ v th nh phà m à m ần trong folder \Tools vốn có thể được c ià mđặt trực tiếp từ CD-ROM

Ngo i ra, bà m ạn có thể chạy Setup khi n o cà m ần thiết Ví dụ, bạn có thể chạySetup để c i à m đặt lại Visual Basic trong folder khác, hoặc để c i à m đặt thêm bớt cácphần của VB6

Nếu vì lý do hệ thống không install đợc đĩa, bạn có thể vào địa chỉ củatrang Web này:

http://img27.picoodle.com/img/img27/4/1/30/f_ViualBasic6m_c25179b.jpg

2.1.3 Khởi động Visual Basic

Sau khi đã c i à m đặt Visual Basic trên máy, ta có thể khởi động chơng trìnhVisual Basic theo cách sau:

Start\Programs\MiscoSoft Visual Studio 6.0\MicroSoft Visual Basic 6.0

Trang 17

2.1.4 Thoát khỏi Visual Basic

Để thoát khỏi Visual Basic ta l m theo cách sau:à m

V o menu File\Exit Khi thoát khà m ỏi Visual Basic nếu ta chưa ghi lạichương trình v các th nh phà m à m ần liên quan đến chương trình Visual Basic sẽnhắc nhở chúng ta ghi lại

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)

Quy trình cài đặt, vào gói Package(2) thực hiện các bớc sau:

Bớc 1 Vào biểu tợng Setup, xuất hiện màn hình MonCar Setup / ấn OK.

Trang 18

Bíc 2 XuÊt hiÖn giao diÖn, Ên vµo biÓu tîng gãc bªn tr¸i cña giao diÖn.

Bíc 3 TiÕp theo, xuÊt hiÖn b¶ng MonCar – Choose Program Group, chän

MonCar / Ên Continue

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

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Thi Văn Chung (2003), Phơng pháp Monte Carlo và tiến trình giải bài toán tối u, Luận văn Thạc sỹ Toán học, Đại học Vinh Sách, tạp chí
Tiêu đề: Phơng pháp Monte Carlo và tiến trình giải bài toán tối u
Tác giả: Thi Văn Chung
Năm: 2003
[2]. Võ Hiếu Nghĩa (2000), Các chơng trình mẫu Visual Basic 6.0, NXB Thống kê, Thành phố Hồ Chí Minh Sách, tạp chí
Tiêu đề: Các chơng trình mẫu Visual Basic 6.0
Tác giả: Võ Hiếu Nghĩa
Nhà XB: NXB Thống kê
Năm: 2000
[3]. Trần Xuân Sinh (2007), Phơng Pháp Monte Carlo, Vinh, Đại học vinh Sách, tạp chí
Tiêu đề: Phơng Pháp Monte Carlo
Tác giả: Trần Xuân Sinh
Năm: 2007
[4]. Nguyễn Tiến, Giáo trình tự học Visual Basic 6.0, NXB Thống kê Sách, tạp chí
Tiêu đề: Giáo trình tự học Visual Basic 6.0
Nhà XB: NXB Thống kê
[5]. Nguyễn Tiến - Đặng Xuân Hờng - Nguyễn Văn Hoài – Trơng Ngọc Vân (1999), Bí quyết lập trình Visual Basic 6.0, NXB Giáo dục, Hà Nội Sách, tạp chí
Tiêu đề: Bí quyết lập trình Visual Basic 6.0
Tác giả: Nguyễn Tiến - Đặng Xuân Hờng - Nguyễn Văn Hoài – Trơng Ngọc Vân
Nhà XB: NXB Giáo dục
Năm: 1999

HÌNH ẢNH LIÊN QUAN

Hình 1. Giao diện chính của chơng trình. - 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
Hình 1. Giao diện chính của chơng trình (Trang 26)
Hình 3. Giao diện giới thiệu về tác giả. - 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
Hình 3. Giao diện giới thiệu về tác giả (Trang 27)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w