BAB I - UIGM | Login Student

advertisement
BAB IV
GENERATOR BILANGAN RANDOM
4.1. Generator Bilangan Random dan Fungsi Distribusi
Pada simulasi seringkali dibutuhkan bilangan-bilangan yang mewakili keadaan
sistem yang disimulasikan. Biasanya, kegiatan dimulai dengan mengumpulkan data
pengamatan. Namun demikian, data hasil pengamatan tidak dapat dipakai langsung
untuk simulasi sebab jika demikian maka simulasi dilakukan terhadap performansi
sistem pada saat yang telah dilampaui padahal tujuan studi simulai adalah untuk
mengkaji keadaan sistem pada saat yang akan datang. Maka, biasanya setelah banyak
data pengamatan diperoleh, data dianalisis untuk diketahui distribusi statistiknya.
Setelah mendapat distribusi yang paling “cocok” sesuai dengan data sampel, hargaharga yang mewakili sistem dibangkitkan dengan generator.
Random Number Generator adalah suatu algoritma yang digunakan untuk
menghasilkan urutan-urutan atau sequence dari angka-angka sebagai hasil dari
perhitungan dengan komputer yang diketahui distribusinya sehingga angka-angka
tersebut muncul secara random dan digunakan terus menerus.
Salah satu generator terpenting yang akan dipakai untuk semua generator
bilangan random lain adalah generator bilangan random terdistribusi uniform (yang
mempunyai probabilitas sama untuk suatu daerah harga tertentu).
4.2. Generator Bilangan Random Terdistribusi Uniform
Cara pembangkitan bilangan random mula-mula dipakai adalah secara manual,
dengan :
 Melempar kartu, dadu, bola yang diberi nomor.
 Memutar piringan bernomor
 Mengambil nomor sembarang dari buku telepon, data sensus, dll.
Karena sampel yang dibutuhkan seringkali banyak, maka mulai dipikirkan mesinmesin yang dapat menghasilkan bilangan random, yang terkenal adalah ERNIE (Electric
Random Number Indicator Equiment) dan alat eletronik yang dikeluarkan oleh RAND
Corp.
Pemodelan &Simulasi : Generator Bil Random
18
Munculnya komputer memungkinkan untuk mendapatkan sampel, dengan cara :
1. Mula-mula dengan menyimpan hasil pembangkitan mesin dalam tabel, cara ini
memakan banyak memori karena simulasi seringkali membutuhkan data yang
bahkan sampai jutaan banyaknya.
2. Pembangkitan bilangan random melalui rumus-rumus aritmatika, yang akan dibahas
selanjutnya. Biasanya setiap kompilator menyertakan generator bilangan random
Kriteria generator bilangan random dengan rumus aritmatika yang baik adalah sbb :
 Hasil pembangkitannya adalah bilangan-bilangan yang terdistribusi uniform antara
0 – 1 dan tak ada korelasi satu sama lain (dense/density Probabilitas Distribusi).
 Performansinya cepat dan tidak memerlukan banyak memori komputer (efficient).
 Harus mampu mereproduksi sederetan bilangan yang persis sama (uniform),
karena dalam simulasi dibutuhkan untuk mengeksekusi model yang berbeda-beda
dengan data yang sama untuk membandingkan model-model yang mewakili
persoalan nyata yang sama. Sampel data yang identik juga dibutuhkan dalam
tahapan verifikasi dan debugging dari program komputer yang mewakili model
tersebut.
 Mampu menghasilkan beberapa “stream” (deret) yang independent, setiap deret
biasanya dipakai untuk mewakili hal yang berbeda, misalnya deret yang satu
mewakili waktu antar kedatangan sedangkan yang lain untuk mewakili waktu
pelayanan.
Generator Bilangan Random Terdistribusi Uniform :
1. Metoda MID-SQUARE
Bilangan random dengan metoda ini dibangkitkan dengan cara :
- ambil Z0 sebuah bilangan yang terdiri dari 4 digit
- kuadratkan Z0, sehingga diperoleh bilangan 8 digit
- ambil 4 digit ditengah dari hasil kuadrat tsb.
- pakai 4 digit tengah tersebut untuk membangkitkan bilangan berikutnya. Jika
tidak diperoleh bilangan 8 digit (karena 4 digit tengah mengandung nol diawal),
maka buat menjadi 8 digit dengan menambahkan nol di depan.
Pemodelan &Simulasi : Generator Bil Random
19
Contoh :
I
Z
Z2
0
7182
51581124
1
5811
33767721
0,5811
2
7677
58936329
0,7677
U
3
2. Metoda LCG (Linear Conguential Generator)/Additive RNG
Yang ditulis dengan rumus :
Zi = (a Zi-1 + c) modulo m
Dimana :
a : faktor pengali, nilainya harus lebih besar dari √m
Biasanya dinyatakan dengan syarat :
m
 a  m m
100
m
ma
100
m
c : faktor penjumlah, c harus berangka ganjil apabila m bernilai pangkat dua.
Tidak boleh nilai berkelipatan dari m.
m : modulo, harus bilangan prima atau bilangan tidak terbagikan.
Z0 : nilai awal, harus angka integer, ganjil dan cukup besar.
Untuk memulai harus dipunyai Z0 yang disebut “benih”, dan terlihat seperti pada
contoh bahwa bilangan terbangkit adalah bilangan random yang sebenarnya
“berulang”, sesuai dengan pemilihan faktor pengali dan faktor penjumlah.
Contoh : m = 16, a = 5, c = 3, Z0 = 7 maka diperoleh
7,6,1,8,11,10,5,12,15,14,9,0,3,2,13,4,7,6,1,8,...
pada contoh di atas terlihat bahwa setelah 16 bilangan, maka deret berulang.
Pengulangan ini tidak dapat dihindarkan, namun diharapkan agar deret yang didapat
mempunyai periode yang panjang karena untuk simulasi dibutuhkan banyak sekali
bilangan. Bilangan-bilangan random yang dibangkitkan dikatakan mempunyai
periode “penuh“, jika periodenya sama dengan m (p <= m). Jika c = 0 maka
generator disebut multiplikatif.
Pemodelan &Simulasi : Generator Bil Random
20
3. Metoda Multiplikatif
rumus :
Zi = a * Zi-1 modulo m
Dimana :
m : merupakan satu angka integer yang cukup besar dan merupakan satu kata
(word) dari yang dipakai pada komputer. Contoh :
 Dalam komputer IBM 360/370 sistem sebuah kata adalah 32 bits
panjangnya, berarti angka integer yang terbesar dalam satu kata
komputer adalah : 232-1 – 1 = 231 -1 = 2147488647,
maka nilai m harus lebih satu integer, atau :
m = 232-1 + 1 = 2.147.488.648
 Untuk mesin komputer sistem 1130/1800 IBM dikenal dengan 16 bits
words maka untuk memilih m adalah :
m = 216-1 = 32.768
 Untuk microkomputer dengan 8 bits, maka
m = 28-1 = 128
a : konstanta multiplier, harus tepat
Pemilihan nilai a harus bilangan prima terhadap m, a juga harus bilangan
ganjil. Pemilihan yang terbaik adalah dengan rumus : a = 2b/2 ± 3 yang lebih
mendekat pada ketepatan.
 Untuk sistem IBM 1130/1800 dengan 16 bits akan diperoleh
a = 216/2 ± 3 = 259
 Untuk microkomputer dengan 8 bits akan diperoleh
a = 28/2 ± 3 = 19
Z0 : Seed, prima terhadap m, dapat diambil sembarang bilangan ganjil dan
cukup besar.
Pemodelan &Simulasi : Generator Bil Random
21
4. Metoda General Congruent
rumus :
Zi = g( Zi-1, Zi-2,
...) modulo m
Dimana :
g adalah kuadratik :
Zi = (a1 * Zi-12 + a2 * Zi-22
+ c) mod m
g adalah fungsi linier :
Zi = (a1 * Zi-1 + a2 * Zi-2 + ... + an * Zi-n) mod m
g adalah fungsi Fibonacci :
Zi = Zi-1 + * Zi-2
4.3. Bilangan Random Terdistribusi Kontinu dan Tidak Uniform
Umumnya simulasi membutuhkan sederetan bilangan random yang diturunkan
dari distribusi yang kontinu dan tidak uniform. Beberapa metoda yang dipakai
kebanyakan berdasarkan penggunaan dari sekumpulan bilangan random yang
terdistribusi uniform. Metoda yang sering digunakan adalah :
1. Metoda transformasi invers (inverse transformation method)
2. Metoda penolakan (rejection method)
A. Metoda Transformasi Invers
Jika diketahui :
a. μ (i = 1, 2, ...) adalah bilangan random terdistribusi uniform antara 0 – 1
b. F-1 (x) adalah inverse dari fungsi distribusi kumulatif untuk suatu variabel random
x, maka
X1 = F-1 (μ1) adalah sampel random dari variabel x yang mempunyai fungsi
distribusi kumulatif F(x)
Contoh :
Diberikan fungsi kepadatan
F(x) = a (1 – x),
= 0,
Pemodelan &Simulasi : Generator Bil Random
0<x<1
untuk x yang lain
22
maka :
F(x) =

x
0
a (1  x )
x2
 a( x  )
2
Harga a = 2
supaya



f ( x )dx  1
(dari definisi fungsi distribusi kumulatif).
Untuk μ = F(x), maka cari x dari fungsi invers :
x2
)
2
  a( x 
1
x  1  (1   ) 2
karena x adalah random antara 0 – 1 maka demikian juga halnya dengan 1 – μ
sehingga rumus di atas dapat disederhanakan
x  1 
1
2
dengan mengambil 5 bilangan random dari generator sebagai input maka outputnya
adalah :
μ
x
0,1009
0,6823
0,3754
0,3873
0,0842
0,7098
0,0901
0,6998
0,1280
0,6422
Maka output x di atas adalah bilangan random dengan fungsi kepadatan f(x)
dimaksud
Pemodelan &Simulasi : Generator Bil Random
23
Download