METODE MONTE CARLO DAN...
-
Upload
hoangkhanh -
Category
Documents
-
view
235 -
download
0
Transcript of METODE MONTE CARLO DAN...
METODE MONTE CARLO DAN
PENERAPANNYA
Monte Carlo Method and Its Applications
Noor Cholis Basjaruddin
Politeknik Negeri Bandung
2016
POLBAN
Metode Monte Carlo dan Penerapannya – Noor Cholis Basjaruddin
2
Daftar Isi
1 Abstrak................................................................................................................................ 3
2 Abstract ............................................................................................................................... 3
3 Pendahuluan........................................................................................................................ 3
4 Metoda Monte Carlo ........................................................................................................... 4
5 Contoh Penerapan ............................................................................................................... 5
5.1 Menghitung Luas Bangun ........................................................................................... 5
5.2 Membuktikan nilai π ................................................................................................. 10
5.3 Menghitung nilai probabilitas ................................................................................... 13
5.4 Penalaan PID dengan Metoda Monte Carlo .............................................................. 17
5.5 Robustness Analysis dengan Metoda Monte Carlo................................................... 17
5.6 Penggunaan Monte Carlo pada Scheduling .............................................................. 17
6 Kesimpulan ....................................................................................................................... 17
7 Daftar Pustaka................................................................................................................... 18
POLBAN
Metode Monte Carlo dan Penerapannya – Noor Cholis Basjaruddin
3
1 Abstrak
Metode Monte Carlo menggunakan prinsip pembangkitan bilangan acak untuk menguji sebuah
fungsi. Hasil pengujian yang berhasil akan dihitung dan dibandingkan dengan jumlah
pengujian. Oleh karena itu semakin banyak pengujian maka akan diperoleh hasil yang lebih
teliti. Persoalan yang mendasar dalam penggunakaan metode Monte Carlo adalah bagaimana
merumuskan masalah menjadi fungsi yang dapat diuji dengan bilangan acak. Penentuan inside
dan outside menjadi kunci dalam penerapan metode Monte Carlo.
2 Abstract
Monte Carlo method using the principle of the generation of random numbers to test a function.
The test results are successful will be calculated and compared with the amount of testing.
Therefore, more and more testing will be obtained more accurate results. The fundamental
issue in a use of the Monte Carlo method is how to formulate the problem into a function that
can be tested with random numbers. Determination of the inside and outside to be key in the
implementation of the Monte Carlo method.
3 Pendahuluan
Pemakaian metode Monte Carlo demikian luasnya. Pada makalah ini dibahas beberapa contoh
penerapan metode Monte Carlo. Makalah ini diharapkan dapat menambah pengetahuan kepada
pembaca khusunya dalam memahami metode Monte Carlo dan penerapannya.
Program komputer yang digunakan dalam penerapan metode Monte Carlo untuk memecahkan
beberapa masalah dibuat dengan bahasa PHP dan Matlab. Para pembaca dapat menjalankan
program tersebut jika ingin mengetahui secara lebih mendalam bagaimana metode Monte Carlo
diterapkan.
Kritik dan saran atas makalah ini sangat diharapkan dan dapat disampaikan ke penulis melalui
email [email protected].
POLBAN
Metode Monte Carlo dan Penerapannya – Noor Cholis Basjaruddin
4
4 Metode Monte Carlo
Salah satu metode komputasi yang banyak digunakan untuk memecahkan berbagai persoalan
adalah metode Monte Carlo. Metode ini digunakan untuk mensimulasikan berbagai perilaku
sistem fisika dan matematika.
Algoritma Monte Carlo adalah metode Monte Carlo numerik yang digunakan untuk
menemukan solusi problem matematis yang dapat terdiri dari banyak variabel serta susah
dipecahkan, misalnya dengan kalkulus integral atau metode numerik lainnya. Algoritma ini
memerlukan pengulangan dan perhitungan yang kompleks sehingga metode Monte Carlo pada
umumnya dilakukan menggunakan komputer dan memakai berbagai teknik simulasi komputer.
Penggunaan nama Monte Carlo bertujuan untuk menghormati paman dari Stanislaw Marcin
Ulam yang seorang penjudi. Bersama-sama Enrico Fermi, John von Neumann dan Nicholas
Metropolis, Stanislaw Marcin Ulam mengembangkan metode Monte Carlo. Penggunaan
keacakan dan sifat pengulangan proses mirip dengan aktivitas yang dilakukan pada sebuah
kasino.
Enrico Fermi pada tahun 1930 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 peralatan komputasi
yang sangat sederhana. Monte Carlo mulai dipelajari secara mendalam sejak digunakannya
komputer elektronik pada tahun 1945. Metode ini digunakan di Laboratorium Nasional Los
Alamos pada tahun 1950-an untuk penelitian awal pengembangan bom hidrogen dan kemudian
sangat populer dalam bidang fisika dan riset operasi. Rand Corporation dan Angkatan Udara
AS merupakan dua institusi utama yang bertanggung jawab dalam pendanaan dan penyebaran
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. Pembangkit
bilangan pseudoacak jauh lebih cepat dan praktis dibandingkan dengan metode sebelumnya
yang menggunakan tabel bilangan acak untuk sampling statistik.
POLBAN
Metode Monte Carlo dan Penerapannya – Noor Cholis Basjaruddin
5
5 Contoh Penerapan
5.1 Menghitung Luas Bangun
Perhitungan luas dengan metode Monte Carlo pada dasarnya dengan cara membandingkan luas
dari dua bidang. Satu bidang menjadi acuan dan bidang lain (diarsir) yang akan dihitung
luasnya. Perbandingan luas kedua bidang bisa didekati dengan menggunakan sejumlah N titik
uji, dimana titik uji dipilih secara acak. Perbandingan banyak titik uji yang ada di dalam bidang
diarsir terhadap banyak titik uji keseluruhan (N) mendekati perbanding luas bidang diarsir
terhadap luas acuan. Diagram alir penentuan luas menggunakan metode Monte Carlo dapat
dilihat pada Gambar 5.1.
Gambar 5.1 Diagram alir perhitungan luas bidang dengan MC
POLBAN
Metode Monte Carlo dan Penerapannya – Noor Cholis Basjaruddin
6
Menggunakan diagram alir tersebut akan dihitung luas bidang segitiga seperti diperlihatkan
pada Gambar 5.2.
Gambar 5.2 Bidang segitiga
Misal akan dihitung luas dari bidang yang diarsir pada Gambar 5.2.
Luas keseluruhan bidang adalah 2 x 4 = 8 satuan.
Luas bidang yang diarsir merupakan luas dibawah fungsi f(x) = 2x, karena fungsi
tersebut membagi bidang menjadi dua bidang sama luas maka luas dibawah fungsi
tersebut adalah 4 satuan.
Perbandingan luas bidang yang diarsir dengan bidang keseluruhan (bidang acuan) adalah:
8
dicari bidang Luas
nkeseluruha bidang Luas
diarsir bidang Luas
Untuk menentukan luas bidang diarsir (dicari) bisa digunakan metode Monte Carlo.
Umpamakan dilakukan pelemparan koin sebanyak N kali ke bidang acuan. Jika M dari N koin
jatuh di bawah garis f(x) = 2x, maka perbandingan luas diarsir dan luas acuan adalah M/N
dengan demikian:
N
M
8
Dicari Bidang Luas
Diagram alir perhitungan bidang segitiga dapat dilihat pada
Gambar 5.3.
POLBAN
Metode Monte Carlo dan Penerapannya – Noor Cholis Basjaruddin
7
Gambar 5.3 Diagram alir perhitungan luas bidang
POLBAN
Metode Monte Carlo dan Penerapannya – Noor Cholis Basjaruddin
8
Program Simulasi dengan PHP
<?
// program perhitungan luas dengan monte carlo
// f(x) = 2x
// x = 0 - 2, y = 0 - 4
// Noor Cholis Basjaruddin
$n=0;
$M=0;
$N=1000;
for($n;$n<$N;$n++)
{
//generate random number x and y
$xr=mt_rand(0,2000);
$x =0.001*$xr;
$yr=mt_rand(0,4000);
$y =0.001*$yr;
//calculate f(x)
$F=2*$x;
if($y<$F)
{
$M=$M+1;
}
echo "$x,$y<br>";
}
$Luas = 8*($M/$N);
$err=abs(4-$Luas);
echo"M=$M,LUAS=$Luas, error=$err";
?>
Akurasi dan Presisi
Akurasi
Kedekatan hasil pengukuran dengan nilai benar.
(the degree of closeness of measurements of a quantity to that quantity's actual (true) value)
Presisi
Kedekatan hasil pengukuran dengan nilai rerata hasil pengukuran berulang-ulang.
(the degree to which repeated measurements under unchanged conditions show the same
results)
POLBAN
Metode Monte Carlo dan Penerapannya – Noor Cholis Basjaruddin
9
Akurasi perhitungan bisa diamati dengan cara mengubah nilai N dan kehalusan titik sample x
dan y. Tabel 5.1 adalah hasil simulasi dengan nilai N berbeda sedangan Tabel 5.2 adalah hasil
simulasi dengan kehalusan (ketelitian) x dan y berbeda.
Tabel 5.1 Hasil perbandingan perhitungan luas dengan N berbeda
N Hasil Perhitungan Error
10 2.400 1.600
100 3.200 0.800
1000 3.784 0.216
10000 3.928 0.072
Tabel 5.2 Hasil perbandingan luas dengan N tetap, ketelitian x dan y berbeda
x dan y Hasil Perhitungan Error
# 3.088 0.912
#.# 4.064 0.064
#.## 4.048 0.048
#.### 4.040 0.040
Dari Tabel 5.1 dan Tabel 5.2 dapat dilihat bahwa akurasi perhitungan semakin baik jika N
diperbesar atau kehalusan (ketelitian) x dan y ditingkatkan. Perbesaran data N akan
menghasilkan perbandingan M/N semakin mendekati perbandingan luas acuan dan luas diarsir,
dengan demikian hasil perhitungan luas akan lebih akurat. Penghalusan titik sample x dan y
akan mengakibatkan perbandingan y dan f(x) semakin baik sehingga menghasilkan
pengukuran yang lebih akurat.
Untuk mengamati kepresisian akan dihitung standar deviasi untuk perhitungan luas 100 kali.
Tabel 3 Hasil perbandingan perhitungan rata-rata luas dan deviasi standar dengan N
berbeda
N Rata-rata Luas Standar Deviasi
10 4.008 1.336
100 4.018 0.404
1000 4.005 0.118
10000 3.996 0.037
Tabel 4 Hasil perbandingan perhitungan rata-rata luas dan deviasi standar dengan N
tetap, ketelitian x dan y berbeda
x dan y Rata-rata Luas Standar Deviasi
# 3.176 0.132
#.# 3.889 0.130
#.## 4.001 0.125
#.### 3.990 0.123
POLBAN
Metode Monte Carlo dan Penerapannya – Noor Cholis Basjaruddin
10
Semakin kecil standar deviasi pengukuran berulang maka semakin presisi pengukuran tersebut.
Tabel 3 dan 4 menunjukkan bahwa perhitungan luas bidang yang diarsir semakin presisi
dengan penambahan N dan penghalusan titik sample. Penambahan titik sample dalam proses
perhitungan (pembesaran nilai N) akan diikuti kenaikan kepresisian yang sangat besar,
sedangkan penghalusan titik sample meski diikuti dengan kenaikan kepresisian namun tidak
terlalu signifikan.
5.2 Membuktikan nilai π
Metode Monte Carlo dapat digunakan untuk membuktikan nilai π = 3,14..... Perhatikan Gambar
5.4.
Gambar 5.4 Lingkaran dengan jari-jari R
Sebuah lingkaran dengan jari-jari R di dalam bangun persegi dengan sisi 2R.
Luas lingkaran = R2
Luas persegi = (2R) x (2R) = 4R2
Perbandingan luas lingkaran dan luas persegi = 44R
R2
2
Jika metode Monte Carlo dipakai dengan titik uji sejumlah N dan jumlah titik yang masuk
(inside points) adalah M, maka hubungan perbandingan luas dua bangun di atas dan
perbandingan inside points (M) dan test points (N) adalah
N4
M
atau
N
Mx4
Diagram alir pembuktian nilai π dengan metode Monte Carlo dapat dilihat pada Gambar 5.5.
POLBAN
Metode Monte Carlo dan Penerapannya – Noor Cholis Basjaruddin
11
Gambar 5.5 Diagram alir pembuktian nilai π
POLBAN
Metode Monte Carlo dan Penerapannya – Noor Cholis Basjaruddin
12
Program dengan bahasa PHP
<?
// program pembuktian pi = 3,14...
// Noor Cholis Basjaruddin
$l=0;
for($l;$l<100;$l++)
{
$n=0;
$M=0;
$N=1000;
for($n;$n<$N;$n++)
{
//generate random number x and y
$xr=mt_rand(0,1000);
$x =0.001*$xr;
$yr=mt_rand(0,1000);
$y =0.001*$yr;
//calculate f(x)
$x2=pow($x,2);
$y2=pow($y,2);
$F=$x2+$y2;
if($F<1)
{
$M=$M+1;
}
//echo "$x,$y<br>";
}
$pi = 4*($M/$N);
$pi_array[] = $pi;
}
$pi_mean=array_sum($pi_array)/100;
?>
Hasil perhitungan nilai π dapat dilihat pada Tabel 5.3.
Tabel 5.3 Hasil perbandingan perhitungan luas dengan N berbeda
N Hasil Perhitungan
10 3,184
100 3,1432
1000 3.14044
10000 3.141684
Dari simulasi dengan N 100,1000, dan 10.000 terbukti bahwa nilai π = 3,14.....
POLBAN
Metode Monte Carlo dan Penerapannya – Noor Cholis Basjaruddin
13
5.3 Menghitung nilai probabilitas
Diketahui probabilitas P(hujan) = 0.50, P(angin) = 0.20, P(gempa) = 0.001. Ketiga kejadian
sangat mungkin terjadi bersamaan. Kemungkinan terjadinya hujan, angin, dan gempa secara
bersamaan adalah:
P(h+a+g) = 1 – (1-0,5) (1-0,2) (1-0,001) = 0,6004
Nilai probabilitas tersebut dapat dihitung dengan metode Monte Carlo dan diagram alir
pemecahan masalah tersebut dapat dilihat pada Gambar 5.6.
Gambar 5.6 Diagram alir pembuktikan probabilitas kejadian
POLBAN
Metode Monte Carlo dan Penerapannya – Noor Cholis Basjaruddin
14
Program dengan php
<?
// program perhitungan probabilitas
// Noor Cholis Basjaruddin
$n=0;
$MHAG=0;
$MH=0;
$MA=0;
$MG=0;
$N=100000;
for($n;$n<$N;$n++)
{
$h=mt_rand(1,1000);
$a=mt_rand(1,1000);
$g=mt_rand(1,1000);
//hitung prob hujan atau angin atau gempa
if((0<$h and $h<501) or (0<$a and $a<201) or $g==1)
{
$MHAG=$MHAG+1;
$in1="Hujan Angin Gempa";
}
//hitung prob hujan
if(0<$h and $h<501)
{
$MH=$MH+1;
$in2="Hujan";
}
//hitung prob angin
if(0<$a and $a<201)
{
$MA=$MA+1;
$in3="Angin";
}
//hitung prob gempa
if($g==1)
{
$MG=$MG+1;
$in4="Gempa";
}
}
echo"Hujan Angin Gempa =", ($MHAG/$N),"<br>";
echo"Hujan =", ($MH/$N),"<br>";
echo"Angin =", ($MA/$N),"<br>";
echo"Gempa =", ($MG/$N),"<br>";
?>
POLBAN
Metode Monte Carlo dan Penerapannya – Noor Cholis Basjaruddin
15
Hasil
Hujan Angin Gempa =0.60056
Hujan =0.501
Angin =0.20023
Gempa =0.00093
Hasil perhitungan probabilitas hujan dan angin dan gempa dengan Monte Carlo adalah 0,60056
atau mendekati 0,6004. Untuk pengecekan, pada saat bersamaan juga dihitung probabilitas
hujan, angin, dan gempa. Nilai P(h) = 0,501, P(a) = 0,20023, dan P(g) = 0,00093. Hasil
perhitungan P(h+a+g) dengan rumus adalah 0.601285919. Perhitungan juga dapat dilakukan
dengan menggunakan Matlab untuk mendapatkan ketelitian yang lebih tinggi.
Simulasi dengan MATLAB
% program perhitungan probabilitas hujan, angin, dan gempa
% Noor Cholis Basjaruddin
N = 1e7; % jumlah iterasi
n=0;
clear r
h = randi(1000,1,N);
a = randi(1000,1,N);
g = randi(1000,1,N);
MH =0;
MA =0;
MG =0;
MHAG =0;
for n=1:N-1;
% inside hujan
if 1 <= h(1,n) & h(1,n)<= 500
MH=MH+1;
end;
% inside angin
if 501 <= a(1,n) & a(1,n)<= 700
MA=MA+1;
end;
% inside gempa
if g(1,n) == 701
MG=MG+1;
end;
% inside hujan atau angin atau gempa
if h(1,n)<=500 | (501 <=a(1,n) & a(1,n)<=700) | g(1,n)==701
POLBAN
Metode Monte Carlo dan Penerapannya – Noor Cholis Basjaruddin
16
MHAG=MHAG+1;
end;
end;
PH=MH/N;
PA=MA/N;
PG=MG/N;
PHAG=MHAG/N;
disp('Probabilitas Hujan :');
disp(PH);
disp('Probabilitas Angin :');
disp(PA);
disp('Probabilitas Gempa :');
disp(PG);
disp('Probabilitas Hujan atau Angin atau Gempa :');
disp(PHAG);
Hasil Simulasi
Running-1
Probabilitas Hujan :
0.4998
Probabilitas Angin :
0.2001
Probabilitas Gempa :
0.0010
Probabilitas Hujan atau Angin atau Gempa :
0.6004
Running-2
Probabilitas Hujan :
0.5000
Probabilitas Angin :
0.2002
Probabilitas Gempa :
0.0010
Probabilitas Hujan atau Angin atau Gempa :
0.6005
Running-3
Probabilitas Hujan :
0.5001
Probabilitas Angin :
0.1999
Probabilitas Gempa :
0.0010
Probabilitas Hujan atau Angin atau Gempa :
0.6004
POLBAN
Metode Monte Carlo dan Penerapannya – Noor Cholis Basjaruddin
17
5.4 Penalaan PID dengan Metoda Monte Carlo
Metode Monte Carlo dapat digunakan untuk menentukan parameter kendali PID yaitu Kp, Ki,
dan Kd. Bilangan random dibangkitkan untuk ketiga parameter tersebut dan keluaran sistem
kendali diamati. Inside dalam MC ditentukan berdasarkan perbandingan kriteria sistem yang
diinginkan dan keluaran yang diamati. Nilai Kp, Ki, dan Kd selanjutnya dapat diperoleh dengan
cara mendapatkan nilai rata-rata dari beberapa kali perhitungan Kp, Ki, dan Kd. Tiap
perhitungan parameter tersebut dilaksanakan dengan N kali iterasi.
5.5 Robustness Analysis dengan Metoda Monte Carlo
Metode Monte Carlo dapat digunakan untuk menganalisis robustness sistem. Bilangan random
digunakan untuk mensimulasikan parameter gangguan, baik disturbance maupun perturbance.
Kinerja sistem diamati dan diberikan kriteria untuk menentukan inside/outside.
5.6 Penggunaan Monte Carlo pada Scheduling
Metode Monte Carlo dapat digunakan untuk optimasi dalam proses scheduling. Kombinasi
event dalam frame waktu atau tempat dinyatakan dalam bilangan random. Kriteria diberikan
untuk menentukan optimal atau tidak pada setiap kombinasi event. Kombinasi event yang
menghasilkan nilai optimal digunakan dalam scheduling.
6 Kesimpulan
Prinsip metode Monte Carlo adalah membangkitkan bilangan acak untuk menguji sebuah
fungsi. Ketika diuji dengan bilangan acak, fungsi matematika tersebut akan menghasilkan nilai
yang benar atau salah. Hasil pengujian yang benar (inside) akan dihitung dan dibandingkan
dengan jumlah pengujian. Oleh karena itu semakin banyak pengujian maka akan diperoleh
hasil yang lebih teliti. Persoalan yang mendasar dalam penggunaan metode Monte Carlo adalah
bagaimana merumuskan masalah menjadi fungsi yang dapat diuji dengan bilangkan acak.
Penentuan inside dan outside menjadi kunci dalam penerapan metode Monte Carlo.
POLBAN
Metode Monte Carlo dan Penerapannya – Noor Cholis Basjaruddin
18
7 Daftar Pustaka
Kaveh Madani, Jay R. Lund, A Monte-Carlo game theoretic approach for Multi-Criteria
Decision Making under uncertainty, Advances in Water Resources, Volume 34, Issue 5, May
2011, Pages 607-616
Mateos, A. Jiménez, S. Ríos-Insua, Monte Carlo simulation techniques for group decision
making with incomplete information, Journal of Operational Research, Volume 174, Issue 3, 1
November 2006, Pages 1842-1864
Michael Jay Schillaci, Ph.D., A Monte-Carlo Calculation of Pi, Department of Computer
Science, Mathematics and Physics Roberts Wesleyan College, Rochester, NY
Sybert H. Stroeve, Henk A.P. Blom, G.J. (Bert) Bakker, Systemic accident risk assessment in
air traffic by Monte Carlo simulation, Elsevier Ltd., 2008
POLBAN