bab6_pengantar monte carlo
TRANSCRIPT
-
7/24/2019 Bab6_Pengantar Monte Carlo
1/12
FisikaKomputasi i-FST Undana 202
PENGANTAR MONTE CARLO
GJTjlb LPNqvubtj. Ini bukan salah cetak, juga bukan reformasi ejaan baru,melainkan satu contoh kriptografi. Penulisan sandi dengan cara menggeser huruf
semacam itu sudah digunakan pada zaman Julius Caesar. Pada contoh di atas,
setiap huruf digantikan dengan huruf berikutnya dalam deretan alfabet: A diganti
B, B diganti C, dst. Tidak perlu James Bond untuk menguraikannya.Kalimat di atas
berbunyi: FISika KOMputasi. id Quantiqueprodusen di Geneva, Swiss
berhasil membuat sistem yang mengirim sebuah kunci dengan bantuan prinsip-
prinsip fisika
kuantum &
memeriksa apakah
kunci sudahditerima atau belum.
Prinsip kriptografi
kuantum bertumpu
pada kenyataan
bahwa cahaya tidak
hanya memiliki sifat
gelombang, tetapi
juga sifat partikel.
Misalnya, polarisasi
sebuah partikel
cahaya (foton) bisa memiliki orientasi horizontal, vertikal, miring ke kiri, atau ke
kanan. Sifat ini dimanfaatkan oleh para peneliti kuantum untuk mengirimkan
kunci melalui serat kaca. Menurut Ribordy, kriptografi kuantum kebal terhadap
semua serangan yang dimungkinkan oleh hukum-hukum fisika. Alasannya,
alam tidak memungkinkan dibuatnya salinan yang sempurna dari kondisi-
kondisi materi. Bila seorang penyerang ingin menggandakan suatu partikel
cahaya dan membelokkan hasil salinan-nya, secara otomatis ia akan merusak
foton aslinya.
Pada bab ini dibahas pengantar ke pemahaman tentang metode Monte
Carlo, yang sangat berperan dalam bidang fisika lanjut, terutamadiimplementasikan pada sistem-sistem dengan sejumlah besar derajat kebebasan,
Saya suka belajar sehingga, saya dapat mengajar (Seneca 4 BC 65 AD)
-
7/24/2019 Bab6_Pengantar Monte Carlo
2/12
FisikaKomputasi i-FST Undana 203
6.1 Histori Monte Carlo
Wikipedia, mencatat bahwa Metode Monte Carlo digunakan dengan istilah
sampling statistik. Penggunaan nama Monte Carlo, yang dipopulerkan oleh para
pioner bidang tersebut (termasuk Stanislaw Marcin Ulam, Enrico Fermi, John von
Neumann dan Nicholas Metropolis), merupakan nama kasino terkemuka diMonako. Penggunaan keacakan dan sifat pengulangan proses mirip dengan
aktivitas yang dilakukan pada sebuah kasino. Dalam autobiografinya Adventures ofa Mathematician, Stanislaw Marcin Ulam menyatakan bahwa metode tersebut
dinamakan untuk menghormati pamannya yang seorang penjudi, atas saran
Metropolis.Penggunaannya yang cukup dikenal adalah oleh Enrico Fermi pada tahun
1930, ketika ia menggunakan metode acak untuk menghitung sifat-sifat neutron
yang waktu itu baru saja ditemukan. Metode Monte Carlo merupakan simulasi inti
yang digunakan dalam Manhattan Project, meski waktu itu masih menggunakan
oleh peralatan komputasi yang sangat sederhana. Sejak digunakannya komputerelektronik pada tahun 1945, Monte Carlo mulai dipelajari secara mendalam. Pada
tahun 1950-an, metode ini digunakan di Laboratorium Nasional Los Alamos untukpenelitian awal pengembangan bom hidrogen, dan kemudian sangat populer dalam
bidang fisika dan riset operasi. Rand Corporation]]an Angkatan Udara AS
merupakan dua institusi utama yang bertanggung jawab dalam pendanaan danpenyebaran informasi mengenai Monte Carlo waktu itu, dan mereka mulai
menemukan aplikasinya dalam berbagai bidang.
Penggunaan metode Monte Carlo memerlukan sejumlah besar bilangan
acak, dan hal tersebut semakin mudah dengan perkembangan pembangkit bilangan
pseudoacak, yang jauh lebih cepat dan praktis dibandingkan dengan metodesebelumnya yang menggunakan tabel bilangan acak untuk sampling statistik.
Aplikasi metode Monte Carlo, diantaranya:
Grafis, terutama untuk ray tracing Permodelan transportasi ringan dalam jaringan multi lapis / multi-layered
tissues (MCML)
Metode Monte Carlo dalam bidang finansial
Simulasi prediksi struktur protein Dalam riset peralatan semikonduktor, untuk memodelkan transportasi
pembawa arus
Pemetaan genetik yang melibatkan ratusan penanda genetik dan analisisQTL
6.2 Sistem Deterministik dan Sistem Monte CarloSetiadipura & Purwaningsih (2006) menuliskan bahwa perkembangan
performa komputer yang mampu melakukan komputasi dengan waktu yang sangat
-
7/24/2019 Bab6_Pengantar Monte Carlo
3/12
FisikaKomputasi i-FST Undana 204
cepat telah memberikan revolusi yang besar terhadap dunia ilmu pengetahuan.
Dengan adanya computer cepat ini maka eksperimen tidak hanya dilakukan fisis,
yaitu melakukan percobaan langsung, namun dapat dilakukan eksperimen dengan
mensimulasikan fenomena fisi yang terjadi dan menyelesaikannya dengan
komputer, yang disebut dengan eksperimen numerik atau eksperimen komputasi.Dibandingkan dengan metoda eksperimen yang pertama,selain jauh lebih
murah, aman, dan fleksibel, metoda komputasi dapat memberikan informasi yanglebih banyak terhadap fenomena fisi yang diamati, dapat memahami fenomena
tersebut lebih mendalam, dan mampu melakukan eksperimen dengan cakupan yang
lebih luas, misalnya dari segi energi, ukuran material.Secara umum metoda simulasi komputasi ini dapat dibagi kedalam dua
pendekatan yaitu metoda deterministik dan metoda Monte Carlo. Metoda
deterministik terkait dengan solusi dari persamaan integral atau diferensial yang
menggambarkan ketergantungan sistem fisis yang diamati terhadap variabel ruang
dan atau variabel waktu. Keakuratan metoda deterministic sangat tergantung padasebagaimana dekat persamaan yang dipecahkan tadi menggambarkan realitas fisis
yang diamati. Sedangkan metoda Monte Carlo terkait dengan kelakuan rata-rataatau yang munkin terjadi dari sebuah sistem fisis. Dengan mengetahui probabilitas
terjadinya berbagai kejadian yang mungkin terjadi dari fenomena fisis tersebut
maka dengan menggunakan bilangan acak dilakukan simulasi terjadinya peristiwa-peristiwa tersebut. Sehingga dengan jumlah percobaan yang semakin banyak, hasil
atau peristiwa yang banyak muncul dapat menggambarkan kelakuan dari sistem
fisis yang diamati.
6.3 Bilangan Acak (Random)Bilangan acak merupakan suatu besaran dasar dalam modeling dan teknik-
teknik simulasi. Untuk mendapatkan bilangan acak, dapat dilakukan secara manual/ konvensional, yaitu dilakukan dengan beberapa alat, antara lain: koin, dadu, bola
dalam kantong, disk, electronic noise dari tabung neon, noise dari diode Zener atau
digit dari nomor telepon yang masuk pada suatu hari. Cara berikutnya adalah
pembangkitan bilangan acak dengan komputasi. Secara komputasi sebenarnya sulitdilakukan karena komputer merupakan mesin yang deterministik, sedangkan
bilangan acak muncul sebagai kejadian yang probabilistik. Pemecahannya adalah
dengan menggunakan pseudo random generator (pembangkit bilangan semu)
dengan mendapatkan bilangan acak secara deterministik (aritmatik). Ada beberapametode, seperti LCM (Linear Congruent Method), Suffle Method, dan Rejection
Method. Pada perkenalan ini hanya dibahas metode LCM.Boleh dibilang, hasil pembangkitan bilangan acak semu sebenarnya
tidaklah acak. Oleh karena itu, metode yang lebih baik selalu digagas untuk
mendapatkan bilangan yang lebih acak.
-
7/24/2019 Bab6_Pengantar Monte Carlo
4/12
FisikaKomputasi i-FST Undana 205
Linear Congruen Method (LCM) sangat banyak dipakai untuk
membangkitkan bilangan acak r1, r2, ..., rn yang bernilai [0,m] dengan
memanfaatkan nilai sebelumnya. Untuk membangkitkan bilangan acak ke n+1 atau
r n+1, didefiniskan:
mcarr nn mod)(1
dengan a,c dan m sebagai nilai pembangkit dan r0 sebagai nilai awal. Biasanyanilai itu digunakan dalam proses randomize (mengacak di awal atau state awal).
Algoritma LCM
Masukkan a,c, dan r1Masukkan banyak bil. acak yang akan dibangkitkan (n)Untuk i=1 samapai dengan n:
Hitung r(i+1)=(a.r(i)+c) mod m
Contoh 6aBangkitkan bilangan acak dari 0 sampai 8 ( m=9) jika diset a=4, c=1 dan r1=3.
Solusi:
89mod)1)4)(4((3
49mod)1)3)(4((2
31
r
r
r
dan seterusnya...
Implementasi LCM dalam Matlab sebagai berikut:
%acak.m%mendefinisikan nilai pembangkita=327; c=1; m=512;%nilai state awalr(1)=11;%proses pembangkitan 25 bilangan acakfor k=1:25
r(k+1)=mod(a*r(k)+c,m);end%menampilkan bilangan acakdisp(r)
Hasil running,
-
7/24/2019 Bab6_Pengantar Monte Carlo
5/12
FisikaKomputasi i-FST Undana 206
Matlab menyediakan fungsi untuk membangkitkan bilangan acak, yaitu
rand dan srand.. fungsi randmenghasilkan bilangan acak 0 sampai 1 dan sranddigunakan umtuk mengubah nilai state awal r(1). Beberapa bahasa pemrograman
menggunakan metode itu untuk membangkitkan bilangan acak dengan memakai
LCM, seperti bahasa C dengan fungsi rand() dan randomize(), bahasa Basicdengan fungsi rnddan randomize(), bahasa Pascal dengan randomdan randomize,
atau bahasa Fortran dengan random(). Program aplikasi Excell-pun menyediakan
fungsi pembangkitan bilangan acaknya dengan fungsi rand().Agar bilangan acak yang dibangkitkan tidak berulang, state awalnya harus
selalu berbeda. Mekanisme yang diambil salah satunya adalah memanfaatkan jamsistem komputer, yaitu kombinasi jam, menit dan detik, seperti:
)(
det*60*3600
arandomize
ikmenitjama
atau dalam Matlab, dapat diganti dengan fungsi clock dalam milidetik. Fungsi
clock menghasilkan array yang mempunyai 6 nilai dan nilai array yang keenam
digunakan sebagai state awal.
Contoh 6b
Bangkitkan bilangan acak dengan keadaan seperti contoh 6a, dimana state awalnyamenggunakan clock!
Solusi:%acak1.m%mendefinisikan niali pembangkita=327; c=1; m=512;%nilai state awal
-
7/24/2019 Bab6_Pengantar Monte Carlo
6/12
FisikaKomputasi i-FST Undana 207
t=fix(clock);r(1)=floor(mod(t(6),m));%proses pembangkitan 20 bilangan acakfor k=1:20
r(k+1)=mod(a*r(k)+c,m);end%menampilkan bilangan acakdisp(r)
Hasil running. acak1
Columns 1 through 12
46 195 278 283 382 499 358 331 206 291 438 379
Columns 13 through 2430 83 6 427 366 387 86 475 190 179 166 11
Columns 25 through 2614 483
Contoh 6cBangkitkan 20 bilangan acak dari 0 sampai 1 dengan menggunakan fungsi standarMatlab !
Solusi:Script Matlab sebagai berikut:%acak2.m
%proses pembangkitan 20 bilangan acakx=rand(1,10)%menampilkan bilangan acakdisp(x)
Hasil running,
acak2
x =Columns 1 through 7
0.1934 0.6822 0.3028 0.5417 0.1509 0.6979 0.3784
Columns 8 through 100.8600 0.8537 0.5936
Matlab sebenarnya sudah menyediakan fungsi-fungsi untuk membangkitkan
bilangan acak berdistribusi tertentu selain fungsi rand yang menghasilkan bilanganacak berdistribusi uniform.
-
7/24/2019 Bab6_Pengantar Monte Carlo
7/12
FisikaKomputasi i-FST Undana 208
Fungsi-fungsi tersebut antara lain: betarnd (distribusi beta),
binornd(binomial), chi2rnd(chi-square), exprnd(eksponensial), gamrnd(gamma),
geornd(geometrik),hygernd(hipergeometrik) logrnd(log-normal), mvnrnd(mul-
tivariate-normal), dan lain sebagainya.
6.4. Sistem N Derajat Kebebasan
Sistem dengan sejumlah besar derajat kebebasan seringkali menarikperhatian di fisika. Gambaran sistem seperti ini seringkali melibatkan ( atau bisa
direduksi menjadi ) evaluasi terhadap integral dimensi tinggi. Sebagai contoh,
fungsi partisi klasik untuk sejumlah A atom-atom gas, pada temperatur 1/yangberinteraksi melalui potensial v adalah sebanding dengan integral 3A dimensi:
ji
rijv
AerdrdZ)(3
1
3...
(6.1)
Dalam bidang fisika, integral lipat dua dan lipat tiga atau bahkan integral
untuk dimensi yang lebih tinggi lagi sering dijumpai. Proses perhitungan integralsemacam ini akan memakan waktu yang sangat lama jika dikerjakan untuk h yang
kecil sedangkan batas integrasi yang harus dihitung cukup besar. Sebagai contoh,
untuk memahami bentuk penyelesaian integral pada persamaan (6.1), berarti harusditinjau bahwa integral meliputi tiap koordinat untuk mengambil 10 nilai berbeda,
sehingga integrand harus mengevaluasi sebanyak 103A titik. Misal sederhananya
nilai A=20 dan sebuah komputer yang super cepat mampu melakukan 107evaluasi
per-detik, maka proses ini akan memakan waktu 1053
detik, lebih dari 1034
kali
umur alam semesta! Untuk mengatasi hal ini metode Monte Carlo dapat dipakai
untuk mempercepat hitungan.
6.5 Strategi Dasar Metode Monte CarloIde dasarnya adalah tidak mengevaluasi integrand pada tiap titik pada
sejumlah besar titik-titik integrasi, tetapi hanya mengambil beberapa titik acakpada sumbu absis, sebagai pengganti dari titik integrasi yang sudah dibahas pada
bab sebelumnya.
Perbedaan metode pencarian acak (random walk) dengan Monte Carloadalah random walk mengganti semua kombinasi dengan kombinasi yang baru
hingga diperoleh kombinasi terbaik. Hal ini menyebabkan pencarian menjadi
sangat lama atau bahkan hasil yang diperoleh bukan hasil yang optimal.
Sedangkan monte carlo seperti halnya pencarian acak, hanya saja penggantiandilakukan pada sebagian elemen dari kombinasi solusi. Penggantian bisa pencakan
ulang atau pergeseran.
Meskipun kekuatan metode Monte Carlo adalah mengevaluasi integralmulti dimensi, tetapi metode ini bisa memberikan ilustrasi ide dasar pada situasi 1
dimensi dengan sangat mudah. Lihatlah tinjauan berikut ini!
-
7/24/2019 Bab6_Pengantar Monte Carlo
8/12
FisikaKomputasi i-FST Undana 209
Tinjau suatu bentuk integral sebagai berikut:
b
a
dxxfI )( (6.2)
untuk fungsi sebarang f. Salah satu alternatif penyelesaiannya adalah rata-rata fpada interval [a,b], dengan formula
N
xifN
abI1
)(1
)( (6.3)
dimana xiterdistribusi merata antara x=a dan x=b, dan dalam hal ini ada N buah xiyang diambil secara acak sebagai sampel dalam perhitungan integrasi tersebut.
Jika diambil interval [0,1] formula (6.3) memberikan hasil
N
xifN
I1
)(1
(6.4)
Untuk memperkirakan ketidakpastian berkaitan dengan formula integrasi
ini, bisa ditinjau )( ii xff sebagai variabel acak dan memenuhi teorema batas
pusat untuk N yang besar. Dari hukum statistik, kita dapatkan bahwa
N
i
N
i
iifi fN
fNNN 1
2
1
222 1111 (6.5)
dimana2
i adalah variansi dalam f.
Persamaan (6.5) memberikan dua aspek penting pada integrasi MonteCarlo, yaitu:
1. Ketidakpastian pada estimasi integral, i , berkurang sebagai N-1/2.
Semakin banyak titik yang digunakan, akurasi akan semakin baik,
meskipun kesalahan akan berkurang sangat lambat.
2. Presisi akan semakin baik, jika f semakin kecil. Artinya f sehalus
mungkin. Kelemahannya adalah ketika f adalah konstant yang dalam halini hanya bisa dievaluasi pada 1 titik saja.
Contoh 6d
Evaluasi dengan program, untuk menghitung integral fungsi
1
0
278540,0
41
x
dx
dengan input nilai N, dan estimasikan presisinya.
-
7/24/2019 Bab6_Pengantar Monte Carlo
9/12
FisikaKomputasi i-FST Undana 210
Solusi
Program dalam BASIC
10 DEF FNF(x)=1/(1+X^2)
20 INPUT masukkan nilai N; N%30 JumF=0; JumF2=040 For I%=1 TO N%50 x=RND: Fx=FNF(x)60 JumF=JumF+Fx: JumF2=JumF2+Fx^270 Next I%80 Frerata=JumF/N%90 Sigma=SQR((JumF2/N%-Frerata^2)/N%)100 Print Using integral=#.#### +- #.####; Frerata,Sigma
Running program untuk variasi nilai N diberikan pada tabel berikut ini:
N Ii
10
2050
100
200500
100020005000
0,81491
0,735350,79606
0,79513
0,786770,78242
0,788090,787900,78963
0,04638
0,033920,02259
0,01632
0,011080,00719
0,005080,003630,00227
Hasil komputasi sama dengan nilai eksak dengan kecilnya standar deviasi
(biasanya kurang dari satu) dan integrasi menjadi lebih presisi denganbertambahnya N.
Contoh 6e
Evaluasi integral tentu
1
0
2. dxex x dengan Matlab !
Solusi:Script dalam Matlab%mcarlo.m%masukkan jumlah titik yang diacak
-
7/24/2019 Bab6_Pengantar Monte Carlo
10/12
FisikaKomputasi i-FST Undana 211
n=input('jumlah titik acak=');%mengacak n buah titikx=rand(1,n);y=rand(1,n);%menghitung jumlah titik yang masuk integrasip=(y
-
7/24/2019 Bab6_Pengantar Monte Carlo
11/12
FisikaKomputasi i-FST Undana 212
SolusiDalam bentuk program berdasarkan persamaan (6.7), proses ini dapat digambarkansebagai berikut:
DEF FNF(x,y)= -2*x*yN=100Integral=0a=5;b=7;c=2;d=10;FOR i=1 TO N
x=a+ RND*(b-a);
y=c+RND*(d-c);Integral=Integral+FNF(x,y);NEXT i
Hasil_Integral=Integral*(b-a)*(d-c)/NPRINT Hasil_Integral;END
Silahkan di coba di Basic, dan kemudian di running!
----------------------------------------------------------------------------------------------------
Everything should be as simple as possible but not simpler(Albert Einstein)
Discovery consists in seeing what everyone else has seen
and thinking what no one else has thought(Albert Sent - Gyorgi)
Since you cannot read all the books which you may possess,
it is enough to possess only as many books as you can read(Seneca, Epistulae ad Lucilium)
-
7/24/2019 Bab6_Pengantar Monte Carlo
12/12
FisikaKomputasi i-FST Undana 213
6.6 SOAL-SOAL
(1) Hitunglah integral fungsi
3
1
2
3
dxx
dengan N=5,20,40 dan 100 serta cek dengan nilai analitiknya.
(2)
Buatlah program sederhana untuk mengevaluasi fungsi integral lipat dua
berikut:
4
2
5
1
2 )(x y
dydxyx
dengan jumlah titik sampel N=100.
(3)
Hitunglah integral lipat tiga berikut dengan Monte Carlo
2
0
2
1
4
1
)6(x y z
dydxdzxyz
dengan N=10, 20 dan 40. cek dengan nilai analitiknya.
DAFTAR PUSTAKA
Basuki,Akhmad, Modeling dan Simulasi, IPTAQ Mulia Media, 2004
Koonin, S.E., Computational Physics, Addison-Wesley Inc, 1986Potter, David., Computational Physics, John Willey & Sons, 1988
Payne, James A., Introduction to Simulation, Programming Technique andMethods of Analysis, McGraw-Hill International Editions, 1988.
Setiadipura & Purwaningsih,Metode Monte Carlo, unknown, 2006