Teknik Industri Fakultas Teknologi industri Institut Sains & Teknologi AKPRIND Yogyakarta
Kompetensi
Mampu membangkitkan bilangan random dengan berbagai metode Pokok Bahasan Tabel random number
Congruential pseudo random number Linier Congruental Generator (LCG) Multiplicate RNG Mixed Congruential RNG
Metode midsquare
Pengantar Bilangan acak adalah suatu algoritma yang digunakan untuk menghasilkan urutan-urutan atau sequence dari angka-angka sebagai hasil dari perhitungan , yang diketahui distribusinya sehingga angka-angka tersebut muncul acak dan digunakan terus menerus.
Pengertian Bilangan Acak
Sebuah algoritma yang menghasilkan serangkaian bilangan yang mengikuti distribusi tertentu dan memiliki sifat random. Berarti berhubungan dengan statistic ; simulasi --- statistic Biasanya bilangan random yang dihasilkan komputer masih berbentuk bilangan bulat, untuk mendapatkan bilangan random yang mengikuti distribusi probabilitas tertentu yang dikehendaki
Bilangan Acak Digunakan oleh hampir semua model simulasi
Bilangan random fisik
Pseudo-random bilangan random uniform
Simulasi statik atau Monte Carlo Contoh Simulasi system/proses pada hakekatnya terdiri dari komponen-komponen random seperti waktu antar kedatangan, waktu pelayanan, laju permintaan yang berarti membutuhkan metoda untuk memperoleh bilangan-bilangan yang random. Pada umumnya distribusi probabilitas untuk random number adalah Uniform Variate (distribusi uniform / seragam) Teknik Membangkitkan Bilangan Random Tabel random number Manual (koin, dadu, kartu, rolet) Electric Random Number Congruential Pseudo RNG--- yang paling sering digunakan pada computer. Linear Congruental Generators (LCG) /Additive (arithmetic) RNG Multiplicate RNG Mixed Congruential RNG
2. Manual Lemparan Koin Outcome (H : muka ; B belakang) S={M,B}, P(M)=P(B)=0,5 Algoritma (prosedur): 1. Bangkitkan bilangan random Uniform u 2. Bila 0 O u < 0,5 keluarkan output M Bila 0,5 O u O 1 kelurkan output B Atau (untuk u diskrit) Bila u = 0,1,2,3,4 kelurakan output M Bila u = 5,6,7,8,9 keluarkan output B
Manual Lemparan Koin (lanjut) Contoh Urutan dari u 1 9 2 4 5 0 4 6 8 Outcome M B M M M M M B B Manual Lemparan Dadu Langkah : a) Seolah-oleh mempunyai kotak yang memuat 100 dadu diberi nomor 0 hingga 99 b) Kocok kotak , ambil sebuah dadu (tiap dadu/nomor mempunyai peluang 0,01, misalmya muncul nomor 10 c) Ulangi lagi langkah ke 2, misalnya keluar angka 25
Manual Lemparan Dadu (lanjut) Demikan seterusnya , sampai diperoleh bilangan random yang diinginkan
Misalnya dilakukan sebanyak 20 kali 10, 25, 38, 24, 92, 80, 15, 32, 67, 23, 97, 32, 63, 35, 80, 54, 32, 5, 63, 97
****** 3. Metode Midsquare Mulai dengan integer positip 4 digit (Zo) yang disebut seed
Kuadratkan Zo diperoleh angka 8 digit Jika perlu tambahkan nol pada sisi kiri, sehingga diperoleh angka 8 digit)
Ambil 4 digit ditengah sebagai Z 1
Metode Midsquare (lanjut) Tempatkan titik desimal disisi kiri dari Z 1
diperoleh bilangan random U (0,1) yang pertama (U 1 )
Kemudian Z 2 adalah digit tengah Z 1 2
Demikian seterusnya, sampai diperoleh bilangan random yang diinginkan Metode Midsquare (lanjut) Tempatkan titik decimal disisi kiri dari Z 1
diperoleh bilangan random U (0,1) yang pertama (U 1 )
Kemudian Z 2 adalah digit tengah dari Z 1 2
Demikian seterusnya, samapai diperoleh bilangan random yang diinginkan Contoh Midsguare
Seed : 7.182 i Z i U i Z i 2
0 1 2 3 4 5 7.182 5.811 7.677 9.363 6.657 3.156 - 0,5811 0,7677 0,9363 0,6657 0,3156 51.581.124 33.767.721 58.936.329 87.665.769 44.315.649 09.960.336 4. Linear Congruental Generators (LCG) Rumusnya Zi = (a . Zi-1 + c ) mod.m
Ri = Zi / M Keterangan : Zi : angka random yang baru Zi-1 : angka random number yang lama / yang semula c : increment / angka konstan yang bersyarat m : modulus / angka modulo a : multiplier / konstanta
Syarat 0 < m ; a < m c < m dan Z0 < m konstanta a harus lebih besar dari m Biasanya dinyatakan dengan syarat m/100 < a < m - m m/100 + m > a > m Konstan c harus berangka ganjil apabila m berpangkat dua, tidak boleh nilai berkelipatan m Untuk modulo m harus bilangan prime atau bilangan tidak terbagikan Untuk pertama Zo harus merupakan angka integer dan juga ganjil dan cukup besar
Contoh :
Bila digunakan computer dengan 8 bits Jadi : Zo : 12357 a : 19 m : 128 c : 237 Random number Z1 = ( 19 x 12357 + 237 ) mod 128 = 235020 235008 = 12 R1 = 12/ 128 = 0.09375
Lanjutan Z2 = ( 19 x 12 + 237 ) mod 128 = 465 384 = 81 R2 = 81/ 128 = 0.6328 Z3 = ( 19 x 18 + 237 ) mod 128 = 1776 1664 = 112 R3 = 112/ 128 = 0.875 dan seterusnya
Contoh : Ilustrasi LCG dimana m kecil m = 16 , a = 5 , c = 3 , Z0 = 7
Cara : Z 1 = (5 x 7 +3) mod 16 = 38 mod 16 = 2 sisa 6 R 1 = 6/16 = 0,375 Lanjut Catatan : Jika dilanjutkan maka diperoleh : Z 17 = Z 1 = 6 dan Z 18 = Z 2 = 1 dst
Sehingga dari i = 17 sampai i = 32 akan diperoleh nilai yang sama untuk Z i dan R i seperti halnya i = 1 sampai i = 16 i Z i R i
Keterangan : Zi : angka random number semula Z i+1 : angka random yang baru a > 1 : c = 0 ; m > 1 Syarat lain sama dengan additive RNG
6. Mixed Generator 1). Pemilihan nilai : m (modulo) m = 2 b
b = jumlah bits (binary digit) sesuai ketersediaan di computer untuk penyimpanan data
Pemilihan nilai : m (modulo) merupakan angka integer yang cukup besar dan merupakan satu kata (word) dari yang dipakai pada computer. Contoh :
Komputer IBM 360/370 ---- sebuah kata 32 bits kata ---- berarti angka integer yang terbesar dimana bit terakhir untuk anda, sehingga b = 31 adalah
m = 2 32-1 1 = 2147488647
Maka nilai m harus lebih satu integer atau m = 2 32-1 +1 = 2147483648 Komputer IBM 1130/1800 dikenal
16 bits ---- berarti angka integer yang terbesar dalam satu kata computer adalah
M = 2 16-1 1 = 32.768 2). Pemilihan konstanta multiplier : a harus tepat
Pemilihan nilai a harus bilangan prima terhadap m, a juga harus bilangan ganjil (odd number) Pemilihan terbaik adalah dengan rumus :
a = 2 b/2 3 b = jumlah bits
Untuk IBM 1130/1800 ---- 16 bits
a = 2 16/2 + 3 = 259 3). Pemilihan untuk Z 0
Pemilihan untuk Z 0 mengharuskan relative bilangan prima terhadap m Hal ini dapat diperhatikan dengan mudah apabila dicari untuk m adalah angka berpangkat 2 --- angka expoler dari angka 2. Dengan demikian untuk Z 0 adalah setiap angka-angka yang ganjil seperti Z 0 = 12357, dapat diambil sembarang asalkan bilangan ganjil, dan bilangan cukub besar. 4). Bilangan c Bilangan c yang dipilih harus bukan merupakan kelipatan dari m dan harus bilangan ganjil Rangkuman
Jika simulasi dilakukan secara manual, pemilihan bilangan acak dapat dilakukan dengan memilih angka-angka dari tabel bilangan acak. Dimana setiap digit atau angka dalam tabel memiliki kesempatan yang sama untuk muncul. Rangkuman (lanjut) Bilangan acak di bangkitkan untuk masalah- masalah simulasi dengan berbagai cara. Jika masalah sangat kompleks dan proses yang diamati melibatkan ribuan percobaan simulasi, maka suatu program komputer dapat digunakan untuk membangkitkan bilangan acak yang dibutuhkan.
Soal soal 1. Bangkitkan bilangan random 10 kali, 3 digit dengan menggunakan metode LCG jika diketahui : X 0 = 27, a = 8, c = 47 dan m =100
1. Bangkitkan bilangan random dengan metode midsquare seed (Z 0 ) = 5625
3. Bangkitkan bilangan random dengan metode midsquare seed (Z 0 ) = 5500