Pembangkit Bilangan Acak

advertisement
Pembangkit Bilangan Acak
Bilangan Acak Pseudo
• Bilangan Acak Pseudo
– Dibangkitkan dengan komputer
– Komputer itu deterministik
– bilangan acak dibangkitkan dengan
menggunakan suatu algorithma
– Efisien
– Algoritma yang baik lulus untuk semua uji
statistik
Bilangan Acak Sebenarnya
• Beberapa gejala alam muncul sebagai
fenomena acak
– Peluruhan Radio active, Dadu, Koin,
Sumber Gangguan suatu WebCam CCD
chip (LavaRnd.com)
– Masalah: Tingkat Output Lambat
Penggunaan Bilangan Acak
• Simulasi
–
–
–
–
Chaotic molecular behavior
Nuclear detonations
User behavior in network simulation
…
• Gambling
Bilangan Acak Palsu (Pseudo)
• Berasal dari pembangkitan peuabah
acak yang menyebar seragam (uniform)
dengan rentang (0,1)  X ~ U (0, 1)
• Peubah-peubah acak lainnya dapat
dibangkitkan dari peubah acak ini
– U dipakai untuk notasi peubah acak yang
menyebar uniform (0,1)
Sifat-sifat bilangan acak yang baik
• Mendekati kondisi statistik yang ideal
– Menyebar uniform (0, 1)
– Rataannya sekitar 1/2, Ragamnya sekitar 1/12
– … (Akan kita pelajari kemudian)
• Mudah dan cepat dalam membangkitkannya
• Mempunyai siklus yang cukup panjang
• Dapat diulangi hasilnya untuk tujuan
debugging
Teknik membangkitkan bilangan
Acak
• Metode Kongruensial Linear (Linear
Congruential Method, LCG)
– Sangat populer
– Efisien
Metode LCG
• Xi+1=(aXi+c) mod m
– X0 : Bibit (Seed)
– a: Konstanta pengganda
– c: Penambah (Increment)
• Mixed congruential method: c>0
• Multiplicative congruential method: c=0
– m: Modulus
– Ui = Xi/m  bilangan acak ke-i
Teladan
• X0 = 27
• a = 17
• c = 43
• m = 100
Berapa panjang siklusnya?
Metode LCG
• bilangan-bilangan yang dibangkitkan diskret
– I = { 0,1/m,2/m,…,m-1/m }
• bilangan acak ini baik, jika m cuku
besar (232)
Siklus terpanjang
• Bilamana m = 2b, siklus terpanjang
adalah m, jika c < m and a = 1+4k,
dimana k adalah bulat (integer)
• Teladan:
– m = 24 = 16
–c=3
–a=1
Siklus terpanjang (2)
• Bila m = 2b, siklus terpanjangnya adalah
m/4, jika c = 0 dan a = 3+8k atau a =
5+8k, dimana k adalah integer dan X0
merupakan bilangan ganjil
• Teladan:
– m = 64
– a = 13
– X0 = 3
Siklus terpanjang (3)
• Bila m dalah bilangan prima dan c=0,
siklus terpanjang yang dapat dicapai
adalah m-1, ak-1 habis dibagi oleh m
dand bilangan bulat terkecil k adalah
m-1
• Teladan:
– m = 231-1 = 2,147,485,647 (siklusnya
mencapai 2 milyar)
– a = 75
Siklus terpanjang (4)
• Dari penjelasan di atas dapat
disimpulkan bahwa:
– Sekuens bilangan acak yang dihasilkan
akan memiliki siklus, dengan maksimum
siklus adalah m
– Bilangan a dan c harus dipilih hati-hati
agar diperoleh pembangkit dengan
panjang siklus maksimum, dan
menghasilkan bilangan acak dengan sifatsifat statistik yang baik
Siklus terpanjang (5)
• Tabel berikut ini memberikan
kombinasi nilai-nilai m, a dan c
Metode Midsquare (Von Neumann dan Metropolis, 1945)
• Dimulai dengan bilangan 4-digit sebagai
bibit (X0)
• Kuadratkan bilangan itu untuk memperoleh
8-digit (bila perlu tambahkan 0 pada digit paling
kiri, agar diperoleh persis 8-digit)
• Ambil 4-digit ditengah-tengah untuk memperoleh bilangan 4 digit berikutnya X1,
kemudian kuadratkan X1 dan ambil kembali
4-digit ditengah-tengah dan seterusnya
dilakukan dengan cara yang sama
Metode Midsquare (2)
• Bilangan acak Ui diperoleh dengan menambahkan titik desimal disebelah kiri setiap nilai
Xi (atau membaginya dengan 10000)
Uji-uji untuk Bil. Acak
• Uji Frequensi
– Apakah bilangan acaknya uniform?
– Menggunakan uji Kolmorov-Smirnov atau uji chikuadrat
• Uji Runs
– Semakin menaik dan semakin menurun?
– Menggunakan uji chi-kuadrat
• Uji Autokorelasi
– Menguji korelasi diantara bilangan-bilangan itu
Uji-uji untuk Bil. Acak (2)
• Uji Gap
– Menghitung banyaknya digit antar digit yang
muncul berulang untuk suatu digit tertentu
(gap) dan kemudian menggunakan uji
Kolmogorv-Smirnov untuk membandingkan
dengan nilai harapan gaps tersebut
• Poker test
– Menguji terjadinya pengulangan dari
bilangan-bilangan yang dibangkitkan
– Rangkain bilangan berikut memiliki
banyaknya pengulangan yang tidak biasa
• 0.255 0.577 0.331 0.414 0.828 0.909
Uji Keseragaman: KolmogorovSmirnov test
• Secara teoritis F(x) = x, 0<x<1
• Suatu sampel n bilangan acak: U1,U2,…,Un,
fungsi sebaran komulatif empirisnya
(empirical cdf) adalah:
• Sn(x)=(banyaknya U1,U2,…,Un yang  x)/n
• Sn(x) semestinya mendekati x bila n besar
Uji-uji untuk Bil. Acak (3)
• Untuk menguji keseragaman, bentuk
hipotesisnya adalah
H0: Ui ~ U[0,1]
H1: Ui  U[0,1]
• Hipothesis nol, H0, dibaca sebagai
bilangan-bilangan tersebut menyebar
seragam pada interval [0,1].
Uji-uji untuk Bil. Acak (4)
• Pada uji kebebasan (independence), bentuk
hipothesisnya adalah;
H0: Ui ~ independently
H1: Ui  independently
• hipothesis, H0, dibaca bahwa bilanganbilangan tersebut menyebar secara bebas.
Kegagalan menolak hipothesis nol berarti
bahwa tidak ada cukup bukti menunjukkan
adanya ketakbebasan yang terdeteksi
berdasarkan uji ini.
Uji Bil. Acak (5)
Tingkat nyata (level of significance) a
a = P(tolak H0 | H0 benar)
biasanya, a sama dengan 0.01 atau 0.05
(Hipothesis nol)
Sebenarnya Benar
Terima
1-a
Tolak
a
(Type I error)
Sebenarnya Salah
b
(Type II error)
1-b
Uji Bil. Acak (6)
• Uji Gap menghitung banyaknya digit antar
pemunculun digit yang sama berturutan.
(Teladan) panjang gap yang bersesuaian dengan
digit 3.
4, 1, 3, 5, 1, 7, 2, 8, 2, 0, 7, 9, 1, 3, 5, 2, 7, 9, 4, 1, 6, 3
3, 9, 6, 3, 4, 8, 2, 3, 1, 9, 4, 4, 6, 8, 4, 1, 3, 8, 9, 5, 5, 7
3, 9, 5, 9, 8, 5, 3, 2, 2, 3, 7, 4, 7, 0, 3, 6, 3, 5, 9, 9, 5, 5
5, 0, 4, 6, 8, 0, 4, 7, 0, 3, 3, 0, 9, 5, 7, 9, 5, 1, 6, 6, 3, 8
8, 8, 9, 2, 9, 1, 8, 5, 4, 4, 5, 0, 2, 3, 9, 7, 1, 2, 0, 3, 6, 3
Note: ada delapan belas digit 3 pada barisan di atas
==> 17 gap, gap pertama panjangnya 10
Uji Bil. Acak (7)
Kita akan hitung frekuensi gap, -contoh frekuensi gap dengan
panjang 10 untuk digit 3P(gap 10) = P(tak 3) ××× P(tak 3) P(3) ,
note: ada 10 bentuk P(tak 3),
= (0.9)10 (0.1)
Sebaran frekuensi teoritis untuk suatu urutan yang bersifat
acak diberikan oleh
F(x) = 0.1 (0.9)n = 1 - 0.9x+1
Note: amati frekuensi untuk semua digit bandingkan dengan
frekuensi teoritis dan gunakan uji Kolmogorov-Smirnov.
Uji Bil. Acak (8)
(Teladan)
Berdasarkan frekuensi kemunculan gap-gap,
analisis 110 digits di atas untuk menguji apakah
barisannya bebas (independent). Gunakan a= 0.05.
Total # gaps diberikan oleh banyaknya digit minus 10,
jadi 110-10=100. Banyaknya gap bersesuaian dengan
berbagai digit (0-9) adalah:
Digit
0 1 2 3 4 5 6 7 8 9
# Gaps 7
8
8 17 10 13 7
8
9 13
total  100
Uji Bil. Acak (9)
Contoh Uji Gap
Relative Cum. Relative
Panjang Gap Frequency Frequency Frequency F(x) |F(x) - SN(x)|
0-3
4-7
8-11
12-15
16-19
20-23
24-27
28-31
32-35
36-39
40-43
44-47
35
22
17
9
5
6
3
0
0
2
0
1
0.35
0.22
0.17
0.09
0.05
0.06
0.03
0.00
0.00
0.02
0.00
0.01
0.35
0.57
0.74
0.83
0.88
0.94
0.97
0.97
0.97
0.99
0.99
1.00
0.3439
0.5695
0.7176
0.8147
0.8784
0.9202
0.9497
0.9657
0.9775
0.9852
0.9903
0.9936
0.0061
0.0005
0.0224
0.0153
0.0016
0.0198
0.0223
0.0043
0.0075
0.0043
0.0003
0.0064
Uji Bil. Acak (10)
Nilai kritis D adalah
D0.05 = 1.36 / 100 = 0.136
karena D = max |F(x) - SN(x)| = 0.0224
adalah kurang dari D0.05, hipotesis nol yang
menyatakan barisan digit tersebut bebas
tidak ditolak, berdasarkan pada uji ini.
Uji Kebebasan Bil Acak
• Uji Run (Menaik dan Menurun)
Perhatikan40 bilangan berikut; uji
Kolmogorov-Smirnov dan Chi-square akan
mengindikasikan bahwa bilangan-bilangan
tersebut adalah seragam (uniformly
distributed). Tetapi tidak demikian
sebenarnya.
0.08
0.11
0.02
0.12
0.09
0.16
0.09
0.13
0.23
0.18
0.30
0.29
0.29
0.31
0.32
0.36
0.42
0.41
0.45
0.38
0.55
0.53
0.47
0.54
0.58
0.71
0.69
0.68
0.72
0.73
0.74
0.86
0.89
0.74
0.91
0.88
0.91
0.84
0.95
0.91
Uji Kebebasan Bil Acak
•Sekarang bila urutannya adalah seperti di
bawah ini, adakah sedikit alasan untuk
mempertanyakan kebebasaanya
(independence).
0.41
0.09
0.88
0.31
0.68
0.72
0.91
0.42
0.89
0.86
0.95
0.73
0.84
0.08
0.69
0.12
0.74
0.54
0.09
0.74
0.91
0.02
0.38
0.45
0.55
0.11
0.23
0.13
0.71
0.29
0.32
0.47
0.36
0.16
0.91
0.58
0.30
0.18
0.53
0.29
Uji Kebebasan Bil Acak
• Perhatikanlah:
• Banyaknya runs
• Panjang runs
• 0.41 0.68 0.89 0.74 0.36 0.54
• Banyaknya runs adalah 3, masing-masing
panjangnya 2 runs menaik, 2 runs menurun
dan 1 runs menaik, dilambangkan dengan
++--+
• Jadi runs adalah sekuens menaik atau
menurun dari suatu barisan
Uji Kebebasan Bil Acak
• Note: Jika N adalah banyaknya
bilangan-bilangan dalam barisan,
maksimum banyaknya runs adalah N-1,
dan minimum banyaknya runs adalah
satu.
• Jika “a” adalah total banyaknya runs
pada suatu sekuens, rata-rata dan
ragam (variance) untuk “a” diberikan
oleh
Uji Kebebasan Bil Acak
ma = (2n - 1) / 3
s a2 = (16N - 29) / 90
Untuk N > 20, sebaran “a” akan mendekati
sebaran normal,
a ~ N(ma , s a2 ).
Pendekatan ini dapat digunakan untuk menguji
kebebasan bilangan-bilangan yang dibangkitkan
dari suatu pembangkit (generator).
Z0 = (a - ma) / sa
Uji Kebebasan Bil Acak
Substitusikan ma and sa ==>
Za = {a - [(2N-1)/3]} / {(16N-29)/90},
dimana Z ~ N(0,1)
Daerah penerimaan untuk hipothesis kebebasan
adalah -Za/2 Z0  Za/2
a / 2
a / 2
-Za / 2
Za / 2
Uji Kebebasan Bil Acak
(Teladan)
Berdasarkan runs menaik dan menurun,
tentukan apakah barisan 40 bilanganbilangan berikut ini menolak hipothesis
kebebasan, gunakan a = 0.05.
0.41
0.19
0.18
0.31
0.68
0.72
0.01
0.42
0.89
0.75
0.95
0.73
0.94
0.08
0.69
0.04
0.74
0.54
0.18
0.83
0.91
0.02
0.47
0.45
0.55
0.01
0.23
0.13
0.62
0.36
0.32
0.57
0.36
0.16
0.82
0.63
0.27
0.28
0.53
0.29
Uji Kebebasan Bil Acak
Barisan menaik dan menurunnya adalah sebagai berikut:
+++-+-+---++-+--+-+--+--+-++- -++-+--++-
Ada 26 runs dalam barisan ini. Dengan N=40 dan a=26,
ma
= {2(40) - 1} / 3 = 26.33 dan
2
s a = {16(40) - 29} / 90 = 6.79
Maka,
Z0 = (26 - 26.33) / -013
Nilai kritisnya adalah Z0.025 = 1.96, jadi kebebasan
bilangan-bilangan itu tidak dapat ditolak, berdasarkan
uji ini.
Uji Kebebasan Bil Acak
• Uji Poker – didasarkan pada seberapa
sering suatu digit berulang.
Contoh:
0.255 0.577 0.331 0.414 0.828 0.909
• Note: sepasang digit yang serupa
muncul pada setiap bilangan yang
dibangkitkan.
Uji Kebebasan Bil Acak
Pada bilangan 3-digit, hanya ada 3 kemungkinan.
P(3 digit berbeda) =
P(2nd berbeda dari 1st) * P(3rd berbeda dr 1st & 2nd)
= (0.9) (0.8) = 0.72
P(3 digit sama) =
P(2nd digit sama dg 1st) * P(3rd digit sama dg 1st)
= (0.1) (0.1) = 0.01
P(tepat sepasang) = 1 - 0.72 - 0.01 = 0.27
Uji Kebebasan Bil Acak
(Teladan)
Suatu barisan 1000 bilangan tiga-digit yang
telah dibangkitkan dan hasil analisis
menunjukkan 680 diantaranya mempunyai
tiga digit berbeda, 289 mempunyai tepat
sepasang digit sama, and 31 ketiga digitnya
sama. Berdasarkan uji poker, apakah
bilangan-bilangan ini bebas?
Gunakan a = 0.05.
Uji ini diringkaskan pada tabel berikut.
Uji Kebebasan Bil Acak
Combination,
i
Three different digits
Three like digits
Exactly one pair
Observed
Frequency,
Oi
680
31
289
-----1000
Expected
Frequency,
Ei
720
10
270
-----1000
(Oi - Ei)2
----------Ei
2.24
44.10
1.33
------47.65
Derajat bebas yang bersesuaian adalah
banyaknya kelas dikurang satu.
Karena c20.05, 2 = 5.99 < 47.65, berdasarkan uji
ini kebebasan bilangan-bilangan itu ditolak.
Uji Auto Korelasi
• Menguji Korelasi setiap m bilangan.
• Ri, Ri+m, Ri+2m, Ri+3m …
Download