bab6_pengantar monte carlo

Upload: sandy-radja

Post on 20-Feb-2018

231 views

Category:

Documents


6 download

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