Apakah semua metode simulasi semacam Monte Carlo?

35

Apakah ada metode simulasi yang bukan Monte Carlo? Semua metode simulasi melibatkan penggantian angka acak ke dalam fungsi untuk menemukan rentang nilai untuk fungsi tersebut. Jadi, apakah semua metode simulasi pada dasarnya adalah metode Monte Carlo?

Pemenang
sumber
2
Saya pikir "Stan" hanyalah nama depan Ulam, bukan nama keluarga orang lain.
Nick Cox
Stan adalah singkatan dari Stanislas . Itulah sebabnya Andrew Gelman memilih STAN untuk bahasa simulasi barunya.
Xi'an
Mengingat masalah kecil, mungkin batas-sepele, kombinatorial, akankah pencarian yang lengkap masih berupa "Monte Carlo"?
Nick T
3
Apa yang saya ingat dari kuliah algoritma acak saya adalah bahwa metode Monte Carlo memiliki hasil stokastik dengan jangka waktu yang dikenal, berbeda dengan metode Las Vegas yang memiliki runtime stokastik tetapi hasil yang benar. Tidak ada referensi untuk ini kecuali naskah tulisan tangan berusia lima tahun di laci saya. Sunting: Halaman wikipedia di monte carlo dan las vegas sepertinya setuju dengan ini.
bayerj
Pencarian lengkap mungkin akan menjadi perhitungan brute force. Metode Monte Carlo menarik dari ruang sampel. Sampel ini biasanya merupakan subset kecil dari semesta hasil, yang membuat analisis statistik dapat dilakukan.
Alex Reynolds

Jawaban:

41

Ada simulasi yang bukan Monte Carlo. Pada dasarnya, semua metode Monte Carlo menggunakan hukum (lemah) dalam jumlah besar: Rata-rata bertemu dengan harapannya.

Lalu ada metode Quasi Monte Carlo. Ini disimulasikan dengan kompromi angka acak dan grid dengan spasi yang sama untuk menghasilkan konvergensi yang lebih cepat.

Simulasi yang bukan Monte Carlo misalnya digunakan dalam dinamika fluida komputasi. Sangat mudah untuk memodelkan dinamika fluida pada "skala mikro" dari satu bagian fluida. Bagian-bagian ini memiliki kecepatan, tekanan, dan ukuran awal dan dipengaruhi oleh kekuatan dari bagian tetangga atau oleh benda padat. Simulasi menghitung seluruh perilaku fluida dengan menghitung semua bagian dan interaksinya. Melakukan ini secara efisien menjadikan ini sebagai ilmu. Tidak ada angka acak yang diperlukan di sana.

Dalam penelitian meteorologi atau iklim, banyak hal dilakukan dengan cara yang sama. Tetapi sekarang, nilai awal tidak diketahui secara pasti: Anda hanya memiliki data meteorologi di beberapa titik di mana mereka telah diukur. Banyak data yang harus ditebak.

Karena masalah yang rumit ini seringkali tidak berkesinambungan dalam data inputnya, Anda menjalankan simulasi dengan tebakan yang berbeda. Hasil akhir akan dipilih di antara hasil yang paling sering. Ini sebenarnya bagaimana beberapa prakiraan cuaca disimulasikan pada prinsipnya.

Horst Grünbusch
sumber
5
Sebuah koreksi kecil: simulasi monte-carlo dapat menggunakan perhitungan non-acak. Adalah valid untuk memanggil simulasi "monte-carlo" jika bervariasi kondisi awal, dan kemudian menerapkan perhitungan non-acak dari sana. Banyak situasi CFD memerlukan monte-carlo karena syarat batas ditentukan secara statistik.
Cort Ammon
14

Metode Monte Carlo adalah pendekatan pertama yang menggunakan simulasi komputer untuk masalah statistik. Ini dikembangkan oleh tim John von Neumann, Stanisław Ulam, & Nicholas Metropolis dari laboratorium Los Alamos yang sedang mengerjakan proyek Manhattan selama Perang Dunia II. Ini pertama kali dijelaskan pada tahun 1949 oleh Metropolis & Ulam , dan itu adalah pertama kalinya nama itu muncul di media cetak. Itu mungkin karena para ilmuwan yang menemukannya juga dapat menggunakan salah satu komputer pertama , yang sedang mereka kerjakan. Dalam karya mereka, mereka menggunakan metode Monte Carlo untuk simulasi masalah fisik, dan idenya adalah Anda dapat mensimulasikan masalah rumit dengan mengambil sampel sejumlah contoh proses ini. Ada beberapa artikel menarik tentang sejarah Monte Carlo misalnya olehMetropolis sendiri atau yang lebih baru, misalnya oleh Robert & Casella .

Jadi "Monte Carlo" adalah nama dari metode pertama yang dijelaskan untuk tujuan simulasi komputer untuk menyelesaikan masalah statistik. Kemudian nama tersebut menjadi nama umum untuk seluruh keluarga metode simulasi dan umumnya digunakan dalam mode ini.

Ada metode simulasi yang dianggap non-Monte Carlo , namun sementara Monte Carlo adalah penggunaan pertama dari simulasi komputer itu umum bahwa "simulasi komputer" dan "Monte Carlo" digunakan secara bergantian.

Ada definisi yang berbeda tentang apa "simulasi" itu, yaitu

Kamus Merriam-Webster :

3 a: representasi imitatif dari berfungsinya suatu sistem atau proses dengan cara berfungsinya yang lain b: pemeriksaan suatu masalah seringkali tidak tunduk pada eksperimen langsung melalui suatu alat simulasi

Kamus Cambridge :

untuk melakukan atau membuat sesuatu yang berperilaku atau terlihat seperti sesuatu yang nyata tetapi yang tidak nyata

Wikipedia :

tiruan dari operasi proses atau sistem dunia nyata dari waktu ke waktu

Apa yang dibutuhkan oleh simulasi untuk bekerja adalah kemampuan untuk meniru beberapa sistem atau proses. Ini tidak memerlukan keacakan (seperti halnya dengan Monte Carlo), namun jika semua kemungkinan dicoba, maka prosedurnya adalah pencarian yang lengkap atau umumnya dan masalah optimisasi . Jika elemen acak terlibat dan komputer digunakan untuk menjalankan simulasi beberapa model, maka simulasi ini menyerupai semangat metode Monte Carlo awal (misalnya Metropolis & Ulam, 1949). Elemen acak sebagai bagian penting dari simulasi disebutkan, misalnya oleh Ross (2006, Simulation. Elsevier). Namun, jawaban atas pertanyaan sangat bergantung pada definisi simulasi yang Anda asumsikan. Sebagai contoh, jika Anda berasumsi bahwa algoritma deterministik yang menggunakan optimasi atau pencarian lengkap, sebenarnya adalah simulasi, maka kita perlu mempertimbangkan berbagai macam algoritma sebagai simulasi dan ini membuat definisi simulasi per se sangat kabur.

Secara harfiah setiap prosedur statistik menggunakan beberapa model atau perkiraan realitas, yang "dicoba" dan dinilai. Ini konsisten dengan definisi kamus simulasi. Namun kami tidak menganggap semua statistik sebagai simulasi. Pertanyaan dan diskusi tampaknya muncul dari kurangnya definisi yang tepat dari "simulasi". Monte Carlo tampaknya merupakan contoh simulasi tipikal (dan pertama), namun jika kita mempertimbangkan definisi simulasi yang sangat umum maka banyak metode non-Monte Carlo termasuk dalam definisi tersebut. Jadi ada simulasi non-Monte Carlo, tetapi semua metode berbasis simulasi yang jelas menyerupai semangat Monte Carlo, berhubungan dengannya dalam beberapa cara, atau terinspirasi olehnya. Itulah alasan mengapa "Monte Carlo" sering digunakan sebagai sinonim untuk "simulasi".

Tim
sumber
3
Saya pikir "Stan" hanyalah nama depan Ulam, bukan nama keluarga orang lain.
Nick Cox
1
Stan adalah singkatan dari Stanislas . Itulah sebabnya Andrew Gelman memilih STAN untuk bahasa simulasi barunya.
Xi'an
Mengingat masalah kecil, mungkin batas-sepele, kombinatorial, akankah pencarian yang lengkap masih berupa "Monte Carlo"?
Nick T
6
Saya tidak mengerti: bagaimana ini menjawab pertanyaan?
o0 '.
1
@ Xi'an, Stanisław ditulis dengan "Ł" (dibaca sebagai "woo" dalam bahasa Inggris).
Tim
13

Semua metode simulasi melibatkan penggantian angka acak ke dalam fungsi untuk menemukan rentang nilai untuk fungsi tersebut.

Saya belum pernah mendengar definisi simulasi itu. Sebagai contoh, artikel Wikipedia tentang simulasi dan simulasi komputer menyebutkan istilah seperti acak dan stokastik hanya sebentar.

Contoh sederhana dari simulasi yang tidak melibatkan keacakan dan dengan demikian jelas bukan simulasi Monte Carlo adalah sebagai berikut:

Saya ingin mensimulasikan perilaku pendulum sederhana dan membuat beberapa asumsi penyederhanaan (kabel tanpa massa, massa tepat waktu, tanpa gesekan, tidak ada gaya eksternal seperti gaya Coriolis). Kemudian saya mendapatkan pendulum matematika dan dapat menuliskan persamaan diferensial yang menggambarkan gerakannya. Saya kemudian dapat menggunakan beberapa solver untuk persamaan diferensial seperti metode Runge-Kutta untuk mensimulasikan lintasannya untuk kondisi awal yang diberikan. (Secara teoritis saya juga bisa berpendapat bahwa saya tidak perlu mempertimbangkan kondisi awal lebih lanjut.)

Dengan cara ini saya mendapatkan simulasi pendulum sungguhan yang bagus tanpa pernah menggunakan angka acak. Karena itu, ini bukan simulasi Monte-Carlo.

Dalam contoh lain, pertimbangkan peta logistik , yang merupakan model populasi sederhana tanpa keacakan.

Wrzlprmft
sumber
7

Tidak. Simulasi suatu partikel di bawah suatu gaya dapat dilakukan dengan menggunakan Runge-Kutta atau algoritma deterministik lainnya, yang bukan Monte Carlo.

Monte Carlo digunakan untuk menghitung integral (Anda dapat menyebutnya simulasi, tetapi pada akhirnya hanya menghitung perkiraan numerik dari penduga). Sekali lagi, Anda dapat menggunakan metode deterministik untuk melakukan itu (misalnya aturan trapesium).

Secara umum, Anda dapat memisahkan algoritma untuk menghitung integral dalam deterministik dan non-deterministik. Monte Carlo adalah metode non-deterministik. Quasi-Monte Carlo adalah yang lain. Aturan trapesium adalah algoritma deterministik.

Jorge Leitao
sumber
4

Biarkan saya mencoba penjelasan yang disederhanakan. Model "bagaimana-jika" adalah simulasi (deterministik). Katakanlah Anda memiliki sistem yang kompleks, seperti pabrik pemrosesan widget. Anda ingin dapat memperkirakan beberapa parameter kinerja, misalnya biaya. Anda membangun model matematika dari pabrik dan kemudian memilih berbagai asumsi untuk faktor-faktor spesifik dalam model, seperti seberapa cepat widget bergerak melalui operasi yang berbeda, atau berapa persentase aliran ke berbagai arah, atau berapa banyak widget yang akan Anda proses. Model adalah simulasi instalasi dan setiap set asumsi memberi Anda perkiraan parameter kinerja.

Sekarang perkenalkan ketidakpastian. Anda tidak tahu berapa permintaan widget bulan depan tetapi Anda harus memperkirakan biayanya. Jadi alih-alih mengatakan permintaan akan menjadi 1.000 widget, Anda memperkirakan distribusi probabilitas untuk permintaan. Kemudian Anda secara acak mencicipi nilai permintaan dari distribusi itu dan menggunakannya untuk asumsi Anda. Sementara Anda melakukannya, Anda dapat menggunakan distribusi probabilitas untuk asumsi lain juga. Anda menggunakan model berulang kali, memasukkan asumsi sampel dari berbagai distribusi probabilitas. Hasilnya adalah distribusi perkiraan biaya. Itulah aspek Monte Carlo.

Monte Carlo adalah "fitur" atau "mesin" yang berlapis-lapis di atas model simulasi. Alih-alih melakukan simulasi dengan satu set asumsi untuk estimasi tunggal, ia melakukan kumpulan simulasi menggunakan asumsi yang dipilih secara acak.

fixer1234
sumber
2

Dalam teori permainan, khususnya, pendekatan yang menggunakan keacakan dalam simulasi disebut teknik monte carlo. Ini biasanya digunakan sebagai bagian dari Pencarian Pohon Carlo Carlo (MCTS) dalam program modern.

(Pertanyaan awal tidak membuat perbedaan antara " algoritma monte carlo " dan " metode monte carlo ", yang dapat menjelaskan ketidaksepakatan atas beberapa jawaban di sini.)

Misalnya dalam game go (dan semua game lain yang saya tahu menggunakan MCTS), simulasi disebut playouts. Bermain acak menggunakan set aturan paling sederhana. Playout ringan adalah sinonim untuk playout acak atau menyaring beberapa gerakan buruk yang mudah dideteksi. Bermain berat menggunakan lebih banyak heuristik untuk menyaring lebih banyak gerakan. (Ngomong-ngomong permainan selalu menuju akhir permainan, sehingga setiap permainan membutuhkan waktu yang kira-kira sama.) Tetapi semua disebut sebagai simulasi "monte carlo".

Darren Cook
sumber