Chapter 8: Data-Driven Models · PDF file• Sistem belum ada (pembangunan pesawat ......
Transcript of Chapter 8: Data-Driven Models · PDF file• Sistem belum ada (pembangunan pesawat ......
Bab 9MA2151 Simulasi dan Komputasi Matematika
9.2 Simulasi
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 probabilistik yang melibatkan unsur peluang.
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
rn = (7 rn -1 + 1) mod 11, for n > 0
Linear Congruential Method
Secara umum:r0 = seed
rn = (multiplier * rn -1 + increment) mod modulus, for n > 0
Penelitian banyak dilakukan untuk membuat barisanini sulit diprediksi (misalnya, untuk codebreaking).
Perioda (panjang sebelum pengulangan) harus sebesarmungkin.
Selang dan Tipe Random Numbers
Kita dapat membatasi selang dan memperoleh bilanganreal atau bilangan bulat
Modulus memberikan nilai maksimum sehingga dapatdilakukan pembagian untuk memperoleh bilangan real dalam selang [0,1].
Dapat juga dilakukan penskalaan ulang untuk memperolehmaksimum dan minimum yang baru:
s = (max – min) * rand + min
Selain itu, dapat ditentukan random number yang merupakan bilangan bulat:
s = int((max – min+1) * rand + min)
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
Bagaimana kita dapat mengetahui # below?
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.04002.11)2.0(cos)2.0( 2 f
Hampiran 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 setiapkemungkinan keluaran atau selang keluaran.
Histogram merupakan penggambaran dari suatudistribusi.
Dalam suatu distribusi uniform semua keluaranmemiliki peluang kemunculan yang sama.
Distribusi Uniform: Simulasi Random Number
Metoda linear congruential akan menghasilkanbilangan pseudorandom yang terdistribusi secarauniform.
Histogram dari 10,000 random floating-point numbers dalam selang [0.0,1.0]
Distribusi Diskrit vs Kontinu
Dalam distribusi diskrit, nilai dalam sumbu x dan ybersifat diskrit (terhitung dan berhingga).
Dalam distribusi kontinu nilai dalam sumbu x dan ybersifat kontinu (tak terhitung).
Dalam praktek, kita dapat memodelkan distribusi kontinu secara diskrit dengan menggunakan metoda binning.
Binning
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 e4e2
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
else use en
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.
Write an algorithm for the simulation.
Carl Friedrich Gauss(1777-1855)
Levy
Pollack
Waltz
Winston
Minsky
Tucker
Lefschetz
Story
Klein
Plücker
Gerling
Gauss
Distribusi Normal (Gaussian)
Distribusi Normal (Gaussian)
Standard deviation s dari himpunan nilai adalahrata-rata beda terhadap mean m.
Dalam distribusi normal (disebut demikian karenadistribusi 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.
extreme values are rare
Distribusi Normal (Gaussian)
Distribusi normal memiliki PDF
Pembangkit random number biasanyamenggunakan m = 0, s = 1, sehingga PDFnyamenjadi
adalah konstan, sehingga grafik fungsiditentukan oleh ; yaitu fungsi akan mencapaimaksimum di x = 0 dan mendekati 0 pada saat x
membesar atau mengecil tanpa batas.
Distribusi Normal (Gaussian)
Bagaimana distribusi yang demikian dapat dibangundari random number yang terdistribusi secarauniform?
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,2π)
• rand in [0,1)
• Then compute
• Obtain two normally distributed numbers
• b sin(a) + m
• b cos(a) + m
Distribusi Eksponensial
Distribusi eksponensial yang sering digunakan adalahdistribusi 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 rert, 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 f(t) = 2e–2t untuk t > 0
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 randInterval
9.5 Random Walks
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 perilakumolekul dalam larutan.
Pada tahun 1827, Robert Brown mengamati bahwa pergerakan random serbuksari 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), sehinggamengakibatkan pergerakan-pergerakan kecil.
Karena difusi dalam banyak hal, seperti polutan di atmosfir, kalsium dalamjaringan tulang, menunjukkan Brownian motion, simulasi yang menggunakanrandom walk dapat digunakan untuk memodelkan fenomena tersebut.
Dalam genetika, random walks digunakan untuk mensimulasikan mutase gen. Peneliti menggunakan metoda polymerase chain reaction (PCR) untukmembuat banyak salinan dari suatu DNA. Untaian DNA memuat barisan dariempat basis A, T, C, and G. Dengan menggunakan teknik simulasi random walk, dapat ditentukan proporsi yang baik dari basis tersebut untuk mempercepatpenggandaan DNA.
Algoritma untuk 2D Random Walk
Hasil Simulasi 2D Random Walk
Animasi
Contoh Simulasi Animasi
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?
Aplikasi 2D Cellular Automata
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.)