Anda di halaman 1dari 49

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 Melibatkan unsur
sebelumnya. kemungkinan.
Setelah sistem dimulai, kita Kita tahu peluang suatu
tahu pasti apa yang akan kejadian akan terjadi, tapi kita
terjadi tidak tahu kapan kejadian
tersebut terjadi.
Contoh: Contoh:
Memperkirakan jumlah uang Melempar dadu sampai
dalam rekening bank. muncul angka “5”.
Asal Mula Simulasi Monte Carlo

• Game theory
• Quantum mechanics
• Economics
• Cellular automata
• Nuclear weapons
• Computer science (“von
Neumann bottleneck”)
John von Neumann
(1903-1957)
Stanislaw Ulam
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 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:
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.
f (x)

x
f (x)

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.
Contoh
f (x)

x, y

(0.2, 0.5)

x
Contoh
f (x)

x, y

f (0.2)  cos 2 (0.2)  1  1.4002  0.5

x
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 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 menghasilkan


bilangan pseudorandom yang terdistribusi secara
uniform.

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 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
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, ….

e2
e3
e1
e4
.60 .68 .78 1.0
e1 e 2 e3 e4
60% 8% 10% 22%
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.
Distribusi Normal (Gaussian)
Gauss
Gerling
Plücker
Klein
Story
Lefschetz
Tucker
Minsky
Winston
Waltz
Pollack
Levy

Carl Friedrich Gauss


(1777-1855)
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.

extreme values are rare


Distribusi Normal (Gaussian)
Distribusi normal memiliki PDF

Pembangkit random number biasanya


menggunakan m = 0, s = 1, sehingga PDFnya
menjadi
Distribusi Normal (Gaussian)
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.

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
• b cos(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 rert, t>0, r<0
• Start with uniform random rand in [0,1)
• Compute ln(rand)/r

Probability density function Histogram dari 1000 random number


f(t) = 2e–2t untuk t > 0 ln(rand)/(–2)
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 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.
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.)

Anda mungkin juga menyukai