2010-05-26 38 views
14

Khi nào phương pháp Monte-Carlo nên được sử dụng?Tại sao sử dụng phương pháp Monte-Carlo?

Ví dụ: tại sao Joel quyết định sử dụng phương pháp Monte-Carlo cho Evidence Based Scheduling thay vì xử lý một cách có phương pháp tất cả dữ liệu người dùng trong năm qua?

+0

bạn có ý nghĩa gì khi 'xử lý theo phương pháp' dữ liệu người dùng? mẫu ngẫu nhiên là một cách khá cơ bản để thêm đường cong chuông, làm thế nào bạn sẽ làm điều đó? – amwinter

+2

Bạn không thể xử lý tất cả dữ liệu có sẵn và đưa ra cùng thống kê cho biết "75% dữ liệu lớn hơn X, 50% dữ liệu lớn hơn Y và 25% dữ liệu lớn hơn Z"? – Gili

Trả lời

12

Giả sử bạn muốn ước tính một số lượng quan tâm. Trong ví dụ về 'ngày tàu' của Joel là những gì bạn muốn ước tính. Trong hầu hết các tình huống như vậy, có những yếu tố ngẫu nhiên tác động đến các ước tính của chúng tôi.

Khi bạn có số lượng ngẫu nhiên, bạn thường muốn biết giá trị trung bình của nó và độ lệch chuẩn để bạn có thể thực hiện các hành động thích hợp. Trong các tình huống đơn giản, bạn có thể mô hình hóa số lượng dưới dạng phân bố chuẩn (ví dụ: phân phối bình thường) mà công thức phân tích tồn tại cho giá trị trung bình và độ lệch chuẩn. Tuy nhiên, tồn tại nhiều tình huống mà công thức phân tích không tồn tại. Trong những tình huống như vậy, thay vì giải pháp phân tích cho giá trị trung bình và độ lệch chuẩn, chúng tôi sử dụng mô phỏng. Ý tưởng là:

Bước 1: Tạo các yếu tố có ảnh hưởng đến số lượng quan tâm sử dụng các bản phân phối thích hợp

Bước 2: Tính toán số lượng quan tâm

Lặp lại bước 1 và 2 nhiều lần và tính trung bình thực nghiệm và độ lệch chuẩn cho những gì bạn muốn biết.

Ở trên là cho đến nay ứng dụng điển hình của ứng dụng monte carlo. Xem liên kết wikipedia do Jarrod cung cấp cho một số ứng dụng như vậy và một số ví dụ về các ứng dụng thú vị mà không có ngẫu nhiên vốn có (ví dụ: ước tính của pi).

+0

Tôi thích câu trả lời của bạn, ngoại trừ các bước bạn cho là rất mơ hồ. Bạn có thể làm cho chúng chính xác hơn bằng cách nào đó không? – Gili

+1

Vâng, monte carlo là một khu vực rộng lớn với rất nhiều ứng dụng. Ví dụ: giả sử bạn muốn có một số dữ liệu về các đặc điểm dự án khác nhau (ví dụ: không có nhà phát triển, hệ điều hành mục tiêu vv) và thời gian giao hàng (ví dụ: 3 tháng, 6 tháng, v.v ...). Bạn có thể đã biết mối quan hệ giữa đặc điểm dự án và thời gian tàu. Ví dụ, Ship Times ~ N (mu, sigma^2) I (Ship Times> 0) trong đó N (.) Cho biết phân bố chuẩn, mu và sigma là hàm của các đặc tính của dự án và I (Ship Times> 0) biểu thị sự kiện thời gian tàu đó không được âm. – vad

+1

Bạn có thể muốn biết hậu quả của việc thay đổi một số thông số dự án (ví dụ: tăng số lượng nhà phát triển) vào thời gian tàu. Thật không may, không có biểu thức biểu mẫu đóng nào tồn tại cho giá trị trung bình bị cắt ngắn. Vì vậy, những gì bạn sẽ làm là: Bước 1: Tạo một cắt ngắn bình thường bằng cách sử dụng mẫu từ chối hoặc phương pháp chuyển đổi nghịch đảo Bước 2. Lưu trữ thời gian tàu (trong trường hợp này không bao gồm tính toán) Lặp lại bước 1 và 2 N thời gian và tính toán giá trị trung bình và độ lệch của thời gian tàu mà bạn đã lưu trữ ở bước 2. Giả định ở trên là bạn biết mối quan hệ giữa thông số dự án và mu và sigma. – vad

3

Wikipedia có bài viết hay về phương pháp mô phỏng Monte Carlo. Tôi đã sử dụng monte carlo vài lần - trong một phương pháp MC tóm lại có xu hướng đưa ra các câu trả lời chính xác khi cố gắng chiếu kết quả bằng cách sử dụng các bộ mẫu khá ngẫu nhiên và ai đó thường sử dụng trực giác để thử đoán theo một xu hướng. Thật không may khi cố gắng giải thích phương pháp MC là khá khó khăn vì vậy hãy kiểm tra bài viết.

+0

Nếu tôi có dữ liệu về xếp hạng của x trò chơi và không có lượt cài đặt nào. Sự cố: dự đoán không có lượt cài đặt cho trò chơi y Đây có phải là trường hợp phù hợp để sử dụng mô phỏng MC không? –

1

Bởi vì các ước tính thường được phân bố khá rộng rãi khi lên lịch các tác vụ lập trình, nên có ý nghĩa hơn khi xử lý chúng theo thống kê.

Nếu chúng tôi thực hiện dự án có 100 tác vụ, các lỗi trên ước tính sẽ bị xóa và bạn kết thúc với bản phân phối cho thấy khả năng hoàn thành dự án là một phạm vi.

Nó cũng phá vỡ một số vấn đề nghiêm trọng như đệm nhiệm vụ và hội chứng sinh viên làm lệch kết quả hơn nữa.

2

Đôi khi kiểm tra tất cả các tùy chọn chỉ đơn giản là cấm.

16

Phương pháp Monte Carlo thường được sử dụng when the dimensionality of the problem is too high for traditional schemes. A tuyệt vời giấy giới thiệu về chủ đề là Persi Diaconis 'The Markov Chain Monte Carlo Revolution.

+0

Giấy thú vị, nhưng tôi nhanh chóng bị lạc trong các chi tiết. – Gili

+0

Giấy tìm kiếm đẹp, nhưng tôi phải nói rằng với một nhà vật lý hạt sử dụng "Cách mạng" trong tựa đề của một giấy MC được viết sau năm 2009 có vẻ hơi lạ. Chúng tôi đã làm điều này đủ lâu để Metropolis * là một chương trình truyền thống. – dmckee

+0

@dmckee Đó là mục đích, tôi tin rằng, đối với một số lượng lớn các nhà toán học không chỉ áp dụng cho các nhà toán học hay thống kê mà còn cả những người tham gia vào các lĩnh vực khác như đại số, phân tích, vv. – jmbr

Các vấn đề liên quan