Minggu 12
Simulasi
Model adalah himpunan formula yang
mendeskripsikan hasil pengamatan dari suatu
percobaan atau fenomena dunia nyata yang dapat digunakan untuk melakukan perkiraan/ramalan. Apabila pengamatan tidak dapat dilakukan (sulit, memakan waktu lama, mahal, berbahaya), dapat digunakan simulasi komputer, atau menggunakan program komputer untuk meniru kenyataan.
Simulasi Digunakan Jika…
• Percobaan sebenarnya tidak mungkin
dilakukan (studi Efek Rumah Kaca)
• Percobaan berbiaya tinggi, memakan waktu
lama, atau berbahaya (studi reaksi nuklir)
• Sistem belum ada (pembangunan pesawat
udara)
• Ingin dicoba berbagai alternatif kejadian
(prediksi angin topan)
Kekurangan Simulasi Komputer
• Pembuatan simulasi dapat memakan waktu yang lama atau biaya yang mahal.
• Karena tidak mungkin menguji semua alternatif, kita bisa memperoleh solusi yang baik, namun bukan yang terbaik.
• Solusi sulit diverifikasi Karena data real tidak tersedia.
• Ketika simulasi bersifat probabilistik, kita harus berhati-hati dengan kesimpulan kita.
Simulasi Monte Carlo
Simulasi Monte Carlo
adalah suatu model
Deterministik vs Probabilistik
Deterministik Probabilistik
Semua data diketahui sebelumnya.
Setelah sistem dimulai, kita tahu pasti apa yang akan terjadi
Melibatkan unsur kemungkinan.
Kita tahu peluang suatu
kejadian akan terjadi, tapi kita tidak tahu kapan kejadian
tersebut terjadi. Contoh:
Memperkirakan jumlah uang dalam rekening bank.
Contoh:
Melempar dadu sampai muncul angka “5”.
Asal Mula Simulasi Monte Carlo
John von Neumann (1903-1957) Stanislaw Ulam • Game theory • Quantum mechanics • Economics • Cellular automata • Nuclear weapons
• Computer science (“von Neumann bottleneck”)
Random Number
Random number
adalah bilangan yang dipilih
dengan mempergunakan peluang yang
muncul dari suatu distribusi.
Himpunan random number dengan
kardinalitas besar akan merepresentasikan
distribusi yang digunakan tersebut.
(Pseudo) Random Number
“True randomness is rare” (terjadi di alam seperti dalam perubahan cuaca atau terjadinya petir)
random.org
Kita dapat meniru perilaku random melalui proses yang deterministik.
Linear congruential method menggunakan operasi modulo untuk membangkitkan barisan r
r0 = 10
Linear Congruential Method
Secara umum:r0 = seed
rn = (multiplier * rn -1 + increment) mod modulus, for n > 0
Penelitian banyak dilakukan untuk membuat barisan ini sulit diprediksi (misalnya, untuk codebreaking).
Perioda (panjang sebelum pengulangan) harus sebesar mungkin.
Selang dan Tipe Random Numbers
Kita dapat membatasi selang dan memperoleh bilangan real atau bilangan bulat
Modulus memberikan nilai maksimum sehingga dapat dilakukan pembagian untuk memperoleh bilangan real dalam selang [0,1].
Dapat juga dilakukan penskalaan ulang untuk memperoleh maksimum dan minimum yang baru:
s = (max – min) * rand + min
Selain itu, dapat ditentukan random number yang merupakan bilangan bulat:
9.3 Menghitung Luas Daerah
dengan Simulasi Monte Carlo
Pendahuluan
Dalam Metoda Numerik, dipelajari metoda
deterministik untuk menghampiri luas daerah
yang dibatasi oleh suatu kurva (Riemann,
trapesium, atau Simpson).
Kita dapat juga melakukan hampiran dengan
menggunakan random number (probabilistik).
Anggap kita melempar banyak dart secara
random pada suatu daerah, kemudian
menghitung bagian yang berada di bawah
kurva.
x
f
(x
x
f
(x
Hampiran Luas Daerah
Luas daerah dapat diestimasi dengan:
(area of enclosing rectangle) * (# below) / (# darts)
Area of enclosing rectangle = 2*1.5 = 3.0
Menentukan Apakah Suatu Titik Terletak
di Atas atau di Bawah f(x)
Setiap “dart” memiliki kordinat (x, y) Substitusikan x ke dalam fungsi
Jika f(x) > y maka dart berada di bawah fungsi; dan sebaliknya, berada di atas fungsi.
x f (x ) x, y
Contoh
(0.2, 0.5)x f (x ) x, y
Contoh
5 . 0 4002 . 1 1 ) 2 . 0 ( cos ) 2 . 0 ( 2 fHampiran yang Lebih Baik
Hampiran yang lebih baik dapat dilakukan
dengan melemparkan lebih banyak dart.
Ini dapat dilakukan dengan:
• Mendefinisikan banyaknya dart sebagai
bilangan yang besar, atau
• Melakukan simulasi beberapa kali dan
kemudian menghitung rata-ratanya.
9.4 Random Number dengan
Berbagai Distribusi
Distribusi
Distribusi
bilangan adalah deskripsi yang
menyatakan rata-rata peluang kemunculan setiap
kemungkinan keluaran atau selang keluaran.
Histogram
merupakan penggambaran dari suatu
distribusi.
Dalam suatu
distribusi uniform
semua keluaran
memiliki peluang kemunculan yang sama.
Distribusi Uniform: Simulasi Random Number
Metoda linear congruential akan menghasilkanbilangan pseudorandom yang terdistribusi secara uniform.
Distribusi Diskrit vs Kontinu
Dalam distribusi diskrit, nilai dalam sumbu x dan y bersifat diskrit (terhitung dan berhingga).
Dalam distribusi kontinu nilai dalam sumbu x dan y bersifat kontinu (tak terhitung).
Dalam praktek, kita dapat memodelkan distribusi
kontinu secara diskrit dengan menggunakan metoda
Probability Density Function
Dalam distribusi diskrit, probability density function
(atau density function atau probability function) memberikan peluang kemunculan dari suatu
keluaran.
Dalam distribusi kontinu, PDF menunjukkan peluang suatu keluaran akan muncul dalam suatu selang.
Membangun Random Number
Berdistribusi Non-Uniform
Bayangkan suatu roda roulette untuk memilih keluaran e1, e2, …. e1 e2 e3 e4 e1 60% e3 e4 e2 8% 10% 22% .60 .68 .78 1.0
Algoritma Pembangkit Random Number
Berdistribusi Non-Uniform
Diberikan peluang p1, p2, …. untuk kejadian e1, e2, …. Generate rand, a uniform random floating-point
number in [0,1); that is, from zero up to but excluding 1. if rand < p1 then use e1
else if rand < p1+p2 then use e2
…
else if rand < p1+p2+…+pn-1+then use en-1
Contoh
Suppose in a simulation involving animal behavior, a lab rat presses a food lever (FOOD = 1) 15% of the time, presses a water lever (WATER = 2) 20% of the time, and does neither (NEITHER = 3) the remainder of the time.
Carl Friedrich Gauss (1777-1855) Levy Pollack Waltz Winston Minsky Tucker Lefschetz Story Klein Plücker Gerling Gauss
Distribusi Normal (Gaussian)
Standard deviation s dari himpunan nilai adalah rata-rata beda terhadap mean m.
Dalam distribusi normal (disebut demikian karena distribusi ini seringkali muncul) 68.3% dari data
terletak dalam ±s (standar deviasi 1) dari m; 95.5% terletak dalam ±2s; dan 99.7% dalam ±3s.
Distribusi Normal (Gaussian)
Distribusi normal memiliki PDF
Pembangkit random number biasanya
menggunakan m = 0, s = 1, sehingga PDFnya menjadi
adalah konstan, sehingga grafik fungsi
ditentukan oleh ; yaitu fungsi akan mencapai maksimum di x = 0 dan mendekati 0 pada saat x membesar atau mengecil tanpa batas.
Distribusi Normal (Gaussian)
Bagaimana distribusi yang demikian dapat dibangun dari random number yang terdistribusi secara
Algoritma Box-Muller-Gauss untuk
Membangkitkan Random Number
Berdistribusi Normal dengan Mean
m
dan Standard Deviation s
• Start with two uniform random numbers: • a in [0,2p)
• rand in [0,1) • Then compute
• Obtain two normally distributed numbers • b sin(a) + m
Distribusi Eksponensial
Distribusi eksponensial yang sering digunakan adalah distribusi yang PDFnya mengecil secara eksponensial. Distribusi ini juga disebut 1/f noise (pink noise)
• noise = random • f = frekuensi; yaitu
kejadian besar yang jarang terjadi
• pink karena distribusi
uniform sering disebut “white noise”.
Algoritma Pembangkit Random
Number Berdistribusi Eksponensial
dengan PDF re
rt, t>0, r<0
• Start with uniform random rand in [0,1) • Compute ln(rand)/r
Histogram dari 1000 random number ln(rand)/(–2)
Probability density function
Algoritma Metoda Rejection
Untuk memperoleh random number dalam interval [a,
b) yang berdistribusi f(x):
• Generate randInterval, a uniform random number in [a, b)
• Generate randUpperBound, a uniform random number in [0, upper bound for f )
• If f(randInterval) > randUpperBound then use
Random Walk
Random walk
merupakan pergerakan secara
random dari suatu objek.
Dalam simulasi dinamik, obyek bergerak dalam
sel suatu
matriks
. Pada setiap waktu, obyek dapat
bergerak, mungkin dengan memenuhi
persyaratan tertentu, secara random ke sel
tetangga.
Cellular Automata
Cellular automata adalah model komputasi dinamik yang diskrit di dalam ruang, keadaan, dan waktu. Ruang dimodelkan sebagai array satu, dua, atau tiga dimensi.
Setiap sel dalam array memiliki keadaan, dan banyaknya keadaan yang mungkin hingga.
Aturan transisi memberikan relasi dan bagaimana sel akan berubah dari keadaan yang satu ke keadaan yang lain, yang akan
menentukan perilaku sistem.
Salah satu keuntungan adalah kita dapat memvisualisasikan
perubahan setiap waktu melalui animasi yang informatif. Misalkan kita dapat melihat simuasi pergerakan semut ke sumber makanan, penyebaran api, atau pergerakan molekul gas dalam suatu wadah.
Aplikasi
Random walk dapat memodelkan Brownian motion, yang merupakan perilaku molekul dalam larutan.
Pada tahun 1827, Robert Brown mengamati bahwa pergerakan random serbuk sari dalam larutan tidak terjadi karena kehidupan di dalam serbuk sari
tersebut.
Maxwell, Clausius, dan Einstein kemudian menjelaskan bahwa partikel larutan (yang tidak terlihat) menabrak partikel serbuk sari (yang terlihat), sehingga mengakibatkan pergerakan-pergerakan kecil.
Karena difusi dalam banyak hal, seperti polutan di atmosfir, kalsium dalam jaringan tulang, menunjukkan Brownian motion, simulasi yang menggunakan random walk dapat digunakan untuk memodelkan fenomena tersebut.
Dalam genetika, random walks digunakan untuk mensimulasikan mutase gen. Peneliti menggunakan metoda polymerase chain reaction (PCR) untuk
membuat banyak salinan dari suatu DNA. Untaian DNA memuat barisan dari empat basis A, T, C, and G. Dengan menggunakan teknik simulasi random walk, dapat ditentukan proporsi yang baik dari basis tersebut untuk mempercepat penggandaan DNA.
Jarak Tempuh Rata-Rata
Buatlah algoritma randomWalkDistance berdasarkan algoritma
randomWalkPoints, yang merupakan fungsi dengan parameter n, yang
akan memberikan keluaran jarak antara titik pertama dan terakhir dari random walk dengan n langkah.
Bagaimana dengan meanRandomWalkDistance yang memberikan keluaran jarak rata-rata?
Contoh Soal
1. Perform a simulation of Brownian motion of a pollen grain suspended in a liquid by generating a 3D random walk. Using documentation for your computational tool, investigate how to plot 3D graphics points and lines and create a 3D graphic of the walk.
2. A hiker without a compass trying to find the way in the dark can step in any of eight directions (N, NE, E, SE, S, SW, W, NW) with each step. Studies show that people tend to veer to the right under such circumstances.
Initially, the hiker is facing north. Suppose at each step probabilities of going in the indicated directions are as follows: N, 19%; NE, 24%; E, 17%; SE, 10%; S, 2%; SW, 3%; W, 10%; NW, 15%. Develop a simulation to trace a path of a hiker, and run the simulation a number of times. Describe the results. (Note that other than at the initial step, this simulation simplifies the problem by ignoring the direction in which the hiker faces.)