Có phải tất cả các phương pháp mô phỏng đều là một dạng của Monte Carlo?


35

Có một phương pháp mô phỏng không phải là Monte Carlo? Tất cả các phương pháp mô phỏng liên quan đến việc thay thế các số ngẫu nhiên vào hàm để tìm một phạm vi các giá trị cho hàm. Vì vậy, tất cả các phương pháp mô phỏng trong bản chất phương pháp Monte Carlo?


2
Tôi nghĩ "Stan" chỉ là tên đầu tiên của Ulam, không phải họ của bất kỳ ai khác.
Nick Cox

Stan là tên viết tắt của Stanislas , thực sự. Đó là lý do Andrew Gelman chọn STAN cho ngôn ngữ mô phỏng mới của mình.
Tây An

Đưa ra một vấn đề nhỏ, có lẽ tầm thường, tầm thường, một tìm kiếm toàn diện vẫn sẽ là "Monte Carlo"?
Nick T

3
Điều tôi nhớ từ bài giảng thuật toán ngẫu nhiên của mình là các phương pháp Monte Carlo có kết quả ngẫu nhiên với thời gian chạy đã biết, trái ngược với các phương pháp Las Vegas có thời gian chạy ngẫu nhiên nhưng kết quả chính xác. Không có tài liệu tham khảo cho điều này ngoại trừ một kịch bản viết tay năm tuổi trong ngăn kéo của tôi. Chỉnh sửa: Các trang wikipedia về monte carlolas vegas dường như đồng ý với điều này.
bayerj

Một tìm kiếm toàn diện có lẽ sẽ là một tính toán vũ phu. Phương pháp Monte Carlo kéo từ một không gian mẫu. Mẫu này thường là một tập hợp nhỏ của vũ trụ kết quả, làm cho phân tích thống kê có thể điều chỉnh được.
Alex Reynold

Câu trả lời:


41

Có những mô phỏng không phải là Monte Carlo. Về cơ bản, tất cả các phương pháp Monte Carlo sử dụng định luật (yếu) với số lượng lớn: Giá trị trung bình hội tụ theo kỳ vọng của nó.

Sau đó là phương pháp Quasi Monte Carlo. Chúng được mô phỏng với sự thỏa hiệp của các số ngẫu nhiên và các lưới cách đều nhau để mang lại tốc độ hội tụ nhanh hơn.

Mô phỏng không phải là Monte Carlo, ví dụ được sử dụng trong động lực học chất lỏng tính toán. Thật dễ dàng để mô hình động lực học chất lỏng trên một "quy mô vi mô" của các phần duy nhất của chất lỏng. Các phần này có tốc độ, áp suất và kích thước ban đầu và bị ảnh hưởng bởi các lực từ các phần lân cận hoặc bởi các vật thể rắn. Mô phỏng tính toán toàn bộ hành vi của chất lỏng bằng cách tính toán tất cả các phần và tương tác của chúng. Làm điều này có hiệu quả làm cho điều này một khoa học. Không có số ngẫu nhiên là cần thiết ở đó.

Trong nghiên cứu khí tượng hoặc khí hậu, mọi thứ được thực hiện tương tự. Nhưng bây giờ, các giá trị ban đầu chưa được biết chính xác: Bạn chỉ có dữ liệu khí tượng tại một số điểm mà chúng đã được đo. Rất nhiều dữ liệu phải được đoán.

Vì những vấn đề phức tạp này thường không liên tục trong dữ liệu đầu vào của chúng, bạn chạy các mô phỏng với các dự đoán khác nhau. Kết quả cuối cùng sẽ được chọn trong số các kết quả thường xuyên nhất. Đây thực sự là cách một số dự báo thời tiết được mô phỏng theo nguyên tắc.


5
Một điều chỉnh nhỏ: mô phỏng monte-carlo có thể sử dụng các phép tính không ngẫu nhiên. Sẽ hợp lệ khi gọi một mô phỏng là "monte-carlo" nếu nó thay đổi các điều kiện ban đầu, và sau đó áp dụng các phép tính không ngẫu nhiên từ đó. Rất nhiều tình huống CFD yêu cầu monte-carlo vì các điều kiện biên được xác định theo thống kê.
Cort Ammon

14

Phương pháp Monte Carlo là phương pháp đầu tiên sử dụng mô phỏng máy tính cho các vấn đề thống kê. Nó được phát triển bởi nhóm John von Neumann, Stanisław Ulam và Nicholas Metropolis từ các phòng thí nghiệm ở Los Alamos đang làm việc cho dự án Manhattan trong Thế chiến II. Nó được mô tả lần đầu tiên vào năm 1949 bởi Metropolis & Ulam , và đây là lần đầu tiên cái tên này xuất hiện trên báo in. Có thể bởi vì các nhà khoa học phát hiện ra nó cũng có thể sử dụng một trong những máy tính đầu tiên mà họ đang làm việc. Trong công việc của họ, họ đã sử dụng các phương pháp Monte Carlo để mô phỏng các vấn đề vật lý và ý tưởng là bạn có thể mô phỏng một vấn đề phức tạp bằng cách lấy mẫu một số ví dụ về quy trình này. Có nhiều bài viết thú vị về lịch sử của Monte Carlo, vdBản thân Metropolis hoặc một số gần đây hơn, ví dụ như Robert & Casella .

Vì vậy, "Monte Carlo" là tên của phương pháp đầu tiên được mô tả cho mục đích mô phỏng máy tính để giải quyết các vấn đề thống kê. Sau đó, tên đã trở thành một tên chung cho cả một gia đình phương pháp mô phỏng và thường được sử dụng trong thời trang này.

Có những phương pháp mô phỏng được coi là không phải Monte Carlo , tuy nhiên trong khi Monte Carlo là lần đầu tiên sử dụng mô phỏng máy tính thì thông thường là "mô phỏng máy tính" và "Monte Carlo" được sử dụng thay thế cho nhau.

Có nhiều định nghĩa khác nhau về "mô phỏng" là gì, tức là

Từ điển Merriam-Webster :

3 a: biểu diễn mô phỏng chức năng của một hệ thống hoặc quá trình bằng chức năng của một hệ thống khác b: kiểm tra một vấn đề thường không phải thử nghiệm trực tiếp bằng thiết bị mô phỏng

Từ điển Cambridge :

để làm hoặc làm một cái gì đó hành xử hoặc trông giống như một cái gì đó thật nhưng không có thật

Wikipedia :

bắt chước hoạt động của một quá trình hoặc hệ thống trong thế giới thực theo thời gian

Những gì mô phỏng cần để làm việc là một khả năng bắt chước một số hệ thống hoặc quy trình. Điều này không cần bất kỳ sự ngẫu nhiên nào liên quan (như với Monte Carlo), tuy nhiên nếu tất cả các khả năng đều được thử, thì quy trình này là một tìm kiếm toàn diện hoặc nói chung và vấn đề tối ưu hóa . Nếu yếu tố ngẫu nhiên có liên quan và một máy tính được sử dụng để chạy mô phỏng một số mô hình, thì mô phỏng này giống với tinh thần của phương pháp Monte Carlo ban đầu (ví dụ: Metropolis & Ulam, 1949). Yếu tố ngẫu nhiên là một phần quan trọng của mô phỏng được đề cập, ví dụ, bởi Ross (2006, Simulation. Yêu tinh). Tuy nhiên, câu trả lời cho câu hỏi phụ thuộc rất nhiều vào định nghĩa mô phỏng mà bạn giả định. Ví dụ, nếu bạn cho rằng các thuật toán xác định sử dụng tối ưu hóa hoặc tìm kiếm toàn diện, trên thực tế là mô phỏng, thì chúng ta cần xem xét rất nhiều thuật toán để mô phỏng và điều này làm cho định nghĩa mô phỏng mỗi lần rất mờ.

Theo nghĩa đen, mọi thủ tục thống kê đều sử dụng một số mô hình hoặc xấp xỉ thực tế, đó là "thử" và đánh giá. Điều này phù hợp với định nghĩa từ điển của mô phỏng. Tuy nhiên, chúng tôi không coi tất cả các số liệu thống kê là dựa trên mô phỏng. Câu hỏi và cuộc thảo luận dường như xuất hiện từ việc thiếu định nghĩa chính xác về "mô phỏng". Monte Carlo dường như là ví dụ điển hình (và đầu tiên) của mô phỏng, tuy nhiên nếu chúng ta xem xét định nghĩa mô phỏng rất chung chung thì nhiều phương pháp phi Monte Carlo rơi vào định nghĩa. Vì vậy, có những mô phỏng không phải là Monte Carlo, nhưng tất cả các phương pháp dựa trên mô phỏng rõ ràng giống với tinh thần của Monte Carlo, liên quan đến nó theo một cách nào đó, hoặc được truyền cảm hứng từ nó. Đó là lý do tại sao "Monte Carlo" thường được sử dụng như một từ đồng nghĩa với "mô phỏng".


3
Tôi nghĩ "Stan" chỉ là tên đầu tiên của Ulam, không phải họ của bất kỳ ai khác.
Nick Cox

1
Stan là tên viết tắt của Stanislas , thực sự. Đó là lý do Andrew Gelman chọn STAN cho ngôn ngữ mô phỏng mới của mình.
Tây An

Đưa ra một vấn đề nhỏ, có lẽ tầm thường, tầm thường, một tìm kiếm toàn diện vẫn sẽ là "Monte Carlo"?
Nick T

6
Tôi không hiểu: làm thế nào để trả lời câu hỏi này?
o0 '.

1
@ Xi'an đó là Stanisław viết bằng "" (đọc là "woo" bằng tiếng Anh).
Tim

13

Tất cả các phương pháp mô phỏng liên quan đến việc thay thế các số ngẫu nhiên vào hàm để tìm một phạm vi các giá trị cho hàm.

Tôi chưa bao giờ nghe về định nghĩa mô phỏng. Ví dụ, các bài viết của Wikipedia về mô phỏngmô phỏng máy tính chỉ đề cập đến các thuật ngữ như ngẫu nhiênngẫu nhiên .

Một ví dụ đơn giản về mô phỏng không liên quan đến bất kỳ sự ngẫu nhiên nào và do đó rõ ràng không phải là mô phỏng Monte Carlo sẽ như sau:

Tôi muốn mô phỏng hành vi của một con lắc đơn giản và đưa ra một số giả định đơn giản hóa (dây không khối, khối lượng đúng giờ, không ma sát, không có lực bên ngoài như lực Coriolis). Sau đó, tôi có được một con lắc toán học và có thể viết ra các phương trình vi phân mô tả chuyển động của nó. Sau đó tôi có thể sử dụng một số bộ giải cho các phương trình vi phân như phương pháp Runge không Kutta để mô phỏng quỹ đạo của nó cho các điều kiện ban đầu. (Về mặt lý thuyết tôi cũng có thể lập luận rằng tôi không cần quan tâm đến các điều kiện ban đầu nữa.)

Bằng cách này, tôi có được một mô phỏng khá tốt về một con lắc thực sự mà không bao giờ sử dụng một số ngẫu nhiên. Do đó, đây không phải là một mô phỏng Monte Gian Carlo.

Trong một ví dụ khác, hãy xem xét bản đồ logistic , đây là một mô hình dân số đơn giản mà không có sự ngẫu nhiên.


7

Không. Việc mô phỏng hạt dưới một lực có thể được thực hiện bằng Runge-Kutta hoặc thuật toán xác định khác, không phải là Monte Carlo.

Monte Carlo được sử dụng để tính các tích phân (bạn có thể gọi nó là một mô phỏng, nhưng cuối cùng, nó chỉ tính một xấp xỉ bằng số của một công cụ ước tính). Một lần nữa, bạn có thể sử dụng một phương pháp xác định để làm điều đó (ví dụ quy tắc hình thang).

Nói rộng hơn, bạn có thể tách các thuật toán để tính các tích phân theo xác định và không xác định. Monte Carlo là một phương pháp không xác định. Quasi-Monte Carlo là một. Quy tắc hình thang là một thuật toán xác định.


4

Hãy để tôi đâm sau một lời giải thích đơn giản. Mô hình "what-if" là mô phỏng (xác định). Giả sử bạn có một hệ thống phức tạp, giống như một nhà máy xử lý widget. Bạn muốn có thể ước tính một số tham số hiệu suất, nói chi phí. Bạn xây dựng một mô hình toán học của nhà máy và sau đó chọn các giả định khác nhau cho các yếu tố cụ thể trong mô hình, như cách các vật dụng di chuyển nhanh qua các hoạt động khác nhau, hoặc tỷ lệ phần trăm chảy theo các hướng khác nhau, hoặc bạn sẽ xử lý bao nhiêu vật dụng. Mô hình này là một mô phỏng của nhà máy và mỗi bộ giả định cung cấp cho bạn ước tính về tham số hiệu suất đó.

Bây giờ giới thiệu không chắc chắn. Bạn không biết nhu cầu vật dụng sẽ ra sao vào tháng tới nhưng bạn cần ước tính chi phí. Vì vậy, thay vì nói nhu cầu sẽ là 1.000 vật dụng, bạn ước tính phân phối xác suất cho nhu cầu. Sau đó, bạn lấy mẫu ngẫu nhiên các giá trị nhu cầu từ phân phối đó và sử dụng các giá trị cho giả định của bạn. Trong khi bạn đang ở đó, bạn cũng có thể sử dụng phân phối xác suất cho các giả định khác. Bạn sử dụng mô hình nhiều lần, cắm vào các giả định được lấy mẫu từ các phân phối xác suất khác nhau. Kết quả sẽ là một phân phối dự toán chi phí. Đó là khía cạnh Monte Carlo.

Monte Carlo là một "tính năng" hoặc "động cơ" được xếp chồng lên trên mô hình mô phỏng. Thay vì mô phỏng với một nhóm giả định cho một ước tính duy nhất, nó thực hiện một tập hợp các mô phỏng sử dụng các giả định được chọn ngẫu nhiên.


2

Trong lý thuyết trò chơi, đặc biệt, các phương pháp sử dụng tính ngẫu nhiên trong các mô phỏng được gọi là kỹ thuật monte carlo. Nó thường được sử dụng như một phần của Monte Carlo Tree Search (MCTS) trong các chương trình hiện đại.

(Câu hỏi ban đầu không phân biệt giữa " thuật toán monte carlo " và " phương pháp monte carlo ", có thể giải thích sự bất đồng về một số câu trả lời ở đây.)

Ví dụ, trong trò chơi cờ vây (và tất cả các trò chơi khác mà tôi biết rằng sử dụng MCTS), các mô phỏng được gọi là phát. Chơi ngẫu nhiên sử dụng bộ quy tắc nhất. Các phát sáng là một từ đồng nghĩa với các phát ngẫu nhiên hoặc lọc ra một vài động tác xấu dễ dàng phát hiện. Chơi nặng sử dụng nhiều heuristic để lọc ra nhiều di chuyển hơn. (Nhân tiện, trò chơi luôn đi đến cuối trò chơi, vì vậy mỗi lần chơi sẽ mất khoảng thời gian như nhau.) Nhưng tất cả đều được gọi là mô phỏng "monte carlo".

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.