Professional Documents
Culture Documents
Adoc - Pub - Pembangkit Bilangan Acak Random Number Generator
Adoc - Pub - Pembangkit Bilangan Acak Random Number Generator
1
Random Number Generator (1)
Cara memperoleh :
ZAMAN DAHULU,
U U, dg
dgn ca
cara
a:
Melempar dadu
Mengocok kartu
ZAMAN MODERN (>1940), dgn cara :
membentuk bilangan acak secara numerik/
aritmatik(menggunakan komputer) , disebut “Pseudo
Random Number
Number” (bilangan pseudo acak).
acak)
Random Number Generator (RNG) merupakan suatu
algoritma
lg it yangg digunakan
dig k untuk
t k menghasilkan
gh ilk urut-urutan
t t
(sequence) dari angka sebagai hasil perhitungan dengan
komputer yang diketahui distribusinya sehingga angka-
angka
angka tersebut muncul secara random dan digunakan
terus menerus
terus-menerus.
2
Random Number Generator (2)
Sequence yang dimaksud di sini adalah bahwa random
number tersebut harus dapat dihasilkan secara urut dalam
jumlah yang mengikuti algoritma tertentu dan sesuai
dengan distribusi yang dikehendaki.
dikehendaki
Distribusi
Di ib i yang dimaksud
di k d adalah
d l h distribusi
di ib i probabilitas
b bili yang
digunakan untuk meninjau/terlibat langsung dalam
penarikan
ik random
d number
b tersebut.
t b t
3
Random Number
Bilangan acak adalah bilangan yang tidak dapat diprediksi
kemunculannya
Tidak ada komputasi yang benar-benar menghasilkan deret
bilangan acak secara sempurna
Bilangan acak yang dibangkitkan oleh komputer adalah
bil
bilangan acak
k semu (Pseudo
(P d Random
R d N b ) karena
Number), k
menggunakan rumus-rumus matematika
Banyak algoritma atau metode yang dapat digunakan untuk
membangkitkan bilangan acak
Bilangan acak dapat dibangkitkan dengan pola tertentu yang
dinamakan dengan distribusi mengikuti fungsi distribusi yang
ditentukan
4
Sifat-Sifat Pembangkit PRN (1)
Independent : tiap variablenya harus bebas dari ketentuan
tersendiri, seperti :
Zi-1 : merupakan hasil akhir
Z0 : merupakan angka pertama yang bebas tertentu
a : merupakan angka konstan yang dapat bebas dengan
k t t
ketentuan t
tersendiri
di i
c : merupakan angka bebas tetapi tidak ada hubungan
tertentu dengan m (modulo)
6
Penentuan Random Number
a. Tabel Random Number; tabel ini sudah banyak ditemukan
mulai
l i dari
d i enam digit
di it sampaii dengan
d b l digit.
belas di it
7
Linear Congruential Generator (LCG)
Metode ini digunakan untuk membangkitkan bilangan acak
dengan distribusi uniform
Pseudo RNG, berbentuk :
Zi = (a . Zi – 1 + c) mod m
Dimana :
Zi = bilangan acak ke-i dari deretnya (RN yang baru)
Zi – 1 = bilangan acak sebelumnya (RN yang lama/semula)
a = faktor pengali
c = increment (angka konstan yang ang bersyarat)
bers arat)
m = modulus (modulo)
K
Kunci i pembangkit
b ki adalah
d l h Z0 yang disebut
di b seed.d
8
Beberapa Persyaratan Bagi LCG :
Konstan a biasanya lebih besar dari m dan dinyatakan
m
dengan syarat m
a m m atau 100
ma m
100
Zo yang pertama
pertama, merupakan angka integer
integer, ganjil dan
cukup besar.
9
Contoh 1 LCG :
Membangkitkan bilangan acak sebanyak 8 kali dengan a = 2,
c = 7, m = 10, dan Z0= 2
Z1 = (2 * 2 +7) mod 10 = 1 U1 = 1/10 = 0,1
Z2 = ((2 * 1 +7)) mod 10 = 9 U2 = 9/10
/ = 0,9 ,
Z3 = (2 * 9 +7) mod 10 = 5 U3 = 5/10 = 0,5
Z4 = (2 * 5 +7) mod 10 = ... U4 = .../10
/10 = ...
Z5 = (2 * ...+7) mod 10 = ... U5 = .../10 = ...
Z6 = (2 * ...+7) mod 10 = ... U6 = .../10 = ...
Z7 = (2 * ...+7) mod 10 = ... U7 = .../10 = ...
Z8 = (2 * ...+7) mod 10 = ... U8 = .../10 = ...
Bilangan acak yang dibangkitkan adalah :
0,1 0,9 0,5 ... ... ...
→ Terjadi
T j di pengulangan
g l g bilangan
bil g secara periodik
i dik
10
Contoh 2 LCG :
Membangkitkan bilangan acak sebanyak 8 kali dengan a = 4,
c = 7, m = 15, dan Z0= 3
Z1 = (4 * 3 +7) mod 15 = 4 U1 = 4/15 = 0,2667
Z2 = (4 * 4 +7) mod 15 = 8 U2 = 8/15 = 0,5333 0 5333
Z3 = (4 * 8 +7) mod 15 = 5 U3 = 5/15 = 0,3333
Z4 = (4 * 5 +7)7) modd 15 = ... U4 = .../15
/15 = ...
Z5 = (4 * ...+7) mod 15 = ... U5 = .../15 = ...
Z6 = (4 * ...+7) mod 15 = ... U6 = .../15 = ...
Z7 = ((4 * ...+7)) mod 15 = ... U7 = .../15
/ = ...
Z8 = (4 * ...+7) mod 15 = ... U8 = .../15 = ...
Bilangan acak yang dibangkitkan adalah :
0,2667 0,5333 0,3333 ... ... ...
→ Tidak terjadi pengulangan bilangan secara periodik
11
Contoh 3 LCG :
a = 21, c = 3, m = 16 digunakan untuk menghasilkan PRN
Zi = (21 * Zi-1 +3) mod 16
Z0 = 13
Z1 = (21 * Z0 +3) mod 16
= (21 * 13+3) mod 16
= 276 modd (16)
=4
Ui = Zi//16
= 4/16
= 0,2500
0 2500
12
13
Membuat Fungsi
g Pembangkit
g Bilangan
g Acak
dengan LCG
Function x = LCM(xs)
% Membangkitkan
M b kitk bilangan
bil acak
k dengan
d LCM
a=23; c=15; m=257;
x=mod(a*xs+c,m);
14
Memanggil Bilangan Acak dengan Fungsi LCG
>>LCM(10)
ans=
245
>>LCM(245)
ans
ans=
Membangkitkan 4
bilangan acak dengan 253
x(0) = 10 adalah >>LCM(253)
sebagai berikut : ans=
180
(
>>LCM(180))
ans=
43
15
>>xs=150;
>>for i=1:20
x(i)=LCM(xs);
xs=x(i);
end
>>x
Membangkitkan 20 x=
bilangan acak dengan Colums 1 through 6
x(0) = 150 adalah 124 40 164 189 250 111
sebagai berikut : Colums 7 through 12
255 226 73 152 170 70
Colums 13 through 18
83 125 63 179 20 218
Colums 19 through 20
146 32
16
Multiplicative Random Number Generator
18
Sedangkan untuk memilih microcomputer dengan 8 BITS,
digunakan :
m = 28-1 = 128
Dengan nilai m ini merupakan pembagi dari nilai (a x Z1)
yang mengikuti operasi modulo
b. Pemilihan konstanta multiplier : a harus tepat.
Pemilihan nilai a sebaiknya bilangan prima terhadap m. a
juga bilangan ganjil.
c Pemilihan untuk Z0 (seed),
c. (seed) biasanya relative bilangan prima
terhadap m atau dapat diambil sembarang asalkan
bilangan ganjil dan biasanya cukup besar.
besar
d. Bilangan c yang dipilih biasanya bukan merupakan
kelipatan dari m dan juga harus bilangan ganjil.
ganjil
19
Contoh :
Misal komputer berkapasitas 12 bit word
W = 12
m = 2 w-1 = 2 11 = 2048
a = 67 a 2 6 & a 3 (mod 8)
misal : Zo = 129
Z1 = 67x129
67 129 mod 2048 = 451 U1 = 451/2048 = 0
0,2202
2202
Z2 = 67x451 mod 2048 = 1545 U2 = 1545/2048 = 0,7544
Z3 = 67x1545mod 2048 = 1115 U3 = 1115/2048 = 0,5444
Z4 = 67x1115mod 2048 = 977 U4 = 977/2048 = 0,4771
20
Mixed Congruential
g Random Number Generator
Pseudo Random Number ini dapat dirumuskan dengan :
22
Penerapannya
p y
Simulasi kejadian “acak” (random event) dalam sebuah
restoran drive-through
Waktu tiba mobil di jendela restoran drive-through
Waktu yang diperlukan pengemudi untuk memesan
Jumlah hamburger,g , minuman,, dan kentangg yyangg diorder
Waktu yang diperlukan oleh restoran untuk menyiapkan
pesa a
pesanan
Panjang rentetan bilangan acak dapat dibagi-bagi alam
segmen yang lebih kecil
kecil, yang disebut aliran/stream.
aliran/stream
Contoh :
Stream 1 : pola kedatangan mobil ke jendela restoran
drive-through
Stream
St 2 : waktu
kt yangg didiperlukan
l k oleh
l h pengemudi
g di untuk
t k
23
memesan
Bagaimana Penerapannya
Memutuskan berapa banyak bilangan acak yang
ditempatkan dalam masing-masing stream.
Bagilah urutan pembangkit dari bilangan acak dalam
beberapa stream.
Bangkitkan
g keseluruhan urutan bilangan
g acak ((cycle
y lenght)
g )
Catat nilai Zi yang menandai permulaan masing-masing
stream.
Masing-masing stream memiliki nilai awal sendiri atau yang
disebut sebagai seed value.
value
24
Distribusi Bilangan
g Acak & Grafiknya
y
Bilangan acak dapat dibangkitkan dengan pola tertentu yang
mengikuti fungsi distibusi yang ditentukan
Untuk mengetahui distribusi suatu bilangan acak digunakan
histogram atau PDF
27
Histogram
g & PDF Bilangan
g Acak Berdistribusi Uniform
Bangkitkan
g 1000 bilangan
g acak bulat 0 s/d
/ 9 dengan
g
fungsi :
x floor(10 rand(1,1000))
x=floor(10*rand(1,1000))
29
Bagaimana cara membangkitkan random variate ?
30