PROGRAM STUDI TEKNIK INDUSTRI FAKULTAS TEKNIK UNIVERSITAS MURIA KUDUS 2019/2020 RANDOM NUMBER GENERATOR CAPAIAN PEMBELAJARAN • Kemampuan Akhir yang Diharapkan Mahasiswa dapat membangkitkan random bilangan • Indikator - Mahasiswa dapat menggunakan berbagai teknik pembangkitan bilangan random 2 ANGKA ACAK Zaman dahulu untuk mendapatkan angka acak bagaimana caranya sih? 3 DADU & KARTU 4 ANGKA ACAK Kalau di Zaman modern, bagaimana untuk mendapatkan angka acak? 5 RANDOM NUMBER (ANGKA ACAK) • • • Pada zaman modern Bilangan acak dibangkitkan secara numerik/ aritmatik menggunakan komputer yang disebut bilangan acak semu (pseudo random number) Angka acak adalah hal dasar yang diperlukan dalam simulasi di hampir semua sistem diskrit. Angka acak digunakan untuk menghasilkan waktu suatu event dan variabel acak lainnya dalam bahasa simulasi. 6 RANDOM NUMBER GENERATOR (PEMBANGKIT ANGKA ACAK) • • • Random Number Generator (RNG) adalah sebuah algoritma/ program/ alat untuk menghasilkan urutan (sequence) angka atau simbol secara tidak teratur sesuai dengan distribusinya sebagai hasil perhitungan. Sequence : random number yang dihasilkan secara urut mengikuti algoritma tertentu dan distribusi yang dikehendaki. Distribusi yang dikehendaki merupakan distribusi yang terlibat langsung untuk menarik angka acak 7 RANDOM NUMBER GENERATOR (RNG) (PEMBANGKIT ANGKA ACAK) (1) • RNG merupakan jantung dari simulasi statistik. RNG yang baik memiliki properti sebagai berikut: a. Didistribusikan secara seragam/ uniform pada interval [0,1] dan tidak menunjukkan korelasi satu sama lain. b. Mampu memproduksi dengan tepat aliran tertentu (sub-segmen) dari angka acak untuk mensimulasikan system yang berbeda untuk mendapatkan perbandingan yang lebih tepat antara system c. Praktis, cepat, dan membutuhkan sedikit penyimpanan 8 RANDOM NUMBER GENERATOR (RNG) (PEMBANGKIT ANGKA ACAK) (2) • • • Random menunjukkan bahwa algoritma tersebut akan menghasilkan suatu angka yang berperan pada pemunculan angka dalam proses di komputer. Angka yang muncul adalah angka penentu untuk angka random berikutnya, dan seterusnya. Angka yang muncul dapat berlainan. RNG dapat diaplikasikan ke dalam banyak bidang, seperti sampel statistika, simulasi komputer, game, kriptografi, bahkan untuk desain/ seni. 9 SIFAT STATISTIK ANGKA RANDOM • Independen Tiap komponen atau variabel – variabel nya harus bebas dari ketentuan – ketentuan tersendiri. • Uniform Memiliki distribusi yang umum, yaitu distribusi uniform. Maksudnya adalah diusahakan probabilitasnya sama untuk setiap penarikan angka random. 10 SIFAT STATISTIK ANGKA RANDOM (1) • Densitas (Rapat) Kerapatan distribusi probabilitasnya mengikuti syarat probabilitas 0 – 1. Angka – angka dari RNG cukup banyak, sehingga 0 ≤ R.N. ≤ 1 • Efisien Metode sederhana, terlebih dahulu memilih angka – angka untuk variabel – variabel yang cocok. 11 JENIS BILANGAN ACAK MURNI • Langsung dipergunakan • Contoh peristiwa: simulasi Monte Carlo TIDAK MURNI • Dihasilkan dengan rumusan matematik, atau bilangan acak diperoleh berdasar hitungan distribusi statistik tertentu, • Misal Poisson, Eksponensial, dsb. 12 MENGHASILKAN ANGKA PSEUDO-RANDOM • • • • “Pseudo” artinya palsu, jadi maksudnya adalah kita membuat angka acak palsu. “Pseudo” digunakan untuk menghilangkan potensi keacakan yang sebenarnya. Jika metode pengacakan diketahui, seperangkat angka acak dapat diulangi. Sehingga terdapat argument bahwa angkat tidak benar – benar acak. Tujuannya adalah untuk menghasilkan urutan angka acak diantara 0 dan 1 yang disimulasikan atau diimitasikan, dimana mengikuti sifat ideal dari uniform dan independent. 13 MENGHASILKAN ANGKA PSEUDO-RANDOM • • Dalam menghasilkan angka pseudo-random, kesalahan tertentu dapat terjadi. Beberapa contoh asal kesalahan dari sifat ideal keacakan tersebut sebagai berikut: 1. 2. 3. 4. 5. Angka yang dihasilkan mungkin tidak terdistribusi secara uniform/seragam. Angka-angka yang dihasilkan mungkin bernilai diskrit bukan bernilai kontinu. Rata-rata dari angka yang dihasilkan mungkin terlalu tinggi atau terlalu rendah. Varian dari angka yang dihasilkan mungkin terlalu tinggi atau terlalu rendah. Mungkin ada ketergantungan yang diukur, misalnya dengan autokorelasi 14 PERTIMBANGAN MENGHASILKAN ANGKA PSEUDO-RANDOM • Biasanya, angka acak dihasilkan oleh komputer digital sebagai bagian dari simulasi. Ada beberapa pertimbangan penting sebelum memilih metode: 1. Metode harus cepat - memilih metode penghitungan angka acak yang efisien secara komputasi. 2.Metode ini harus portabel untuk komputer yang berbeda. 3.Metode ini harus memiliki siklus yang cukup panjang. 4.Angka acak harus dapat diulang. 5.Yang paling penting, angka acak yang dihasilkan harus mendekati sifat statistik ideal uniform dan independen. 15 PENENTUAN ANGKA ACAK Tabel Random Number Tabel tersebut biasanya terdiri dari enam hingga belasan digit. • Electronic Random Number Banyak dipergunakan dalam percobaan penelitian menggunakan komputer. • Metode Pembangkit Bilangan Random: 1. Midsquare Method 2. Conguential Pseudo Random Number Generator: • a. b. c. Linear Congruential Generator (LCG) Multiplicative Random Number Generator Mixed Congruential Random Number Generator 16 TABEL RANDOM NUMBER 17 ELECTRONIC RANDOM NUMBER 18 MIDSQUARE METHOD • PROSEDUR: 1. Tentukan Seed; angka random awal dari 4 digit angka random 2. Kuadratkan 3. Ambil empat digit yang ditengah 4. Kembali ke langkah 2 5. Ulang sebanyak bilangan acak yang diinginkan 6. Contoh: Seed= 7815, (7815)2 , 61074225 , (0742)2 19 CONTOH MIDSQUARE METHOD 𝒛𝒊 U (bil. acak terpilih) 𝟐 𝒁𝒊 7182 - 51581124 5811 0,5811 33767721 7677 0,7677 58936329 9363 0,9363 87665769 6657 0,6657 44315649 3156 0,3156 09960336 20 CONGUENTIAL PSEUDO RANDOM NUMBER GENERATOR: Linear Congruential Generator (LCG) • • • LCG adalah metode RNG yang paling umum dan dikembangkan oleh Lehmer (1951). Metode ini digunakan untuk membangkitkan bilangan acak dengan distribusi uniform Formula: 0 ≤ 𝑍𝑖 ≤ m – 1 , m ˃ 0 dan a, c, 𝑍0 ˂ m, 𝑈𝑖 = 𝑍𝑖 / m 𝑍0 = nilai awal 𝑍𝑖 = bilangan random baru ke-i 𝑍𝑖−1 = bilangan random sebelumnya/ yg lama a = konstanta (nilai harus besar dari 𝑚 ) c = increment (angka konstan bersyarat) m = modulus (angka modulo) 21 CONGUENTIAL PSEUDO RANDOM NUMBER GENERATOR: Persyaratan Linear Congruential Generator (LCG) • • Formula: m, a, c, dan 𝑍0 harus dipilih secara hati – hati untuk memenuhi berbagai tes acak, jika tidak terpenuhi maka nilainya tidak benar – benar acak. • Konstanta a biasanya lebih besar dari 𝑚 dinyatakan 𝑚 𝑚 dengan syarat < 𝑎 < 𝑚 − 𝑚 atau +𝑚 >𝑎 > 1000 1000 𝑚 Konstanta c berangka ganjil jika m tidak dapat dibagi, sehingga dapat dihitung dengan mudah di dalam komputer. 𝑍0 yang pertama, merupakan angka integer, ganjil, dan cukup besar. • • 22 CONGUENTIAL PSEUDO RANDOM NUMBER GENERATOR: Contoh 1 Linear Congruential Generator (LCG) Bangkitkan bilangan acak sebanyak 4 dengan nilai a=2, c=7, m=10, dan 𝑍0 =2 • Sehingga: 𝑍1 = (2 * 2 + 7) mod 10 = 1 𝑈1 = 1/10 = 0,1 𝑍2 = (2 * 1 + 7) mod 10 = 9 𝑈1 = 9/10 = 0,9 𝑍3 = (2 * 9 + 7) mod 10 = 5 𝑈1 = 5/10 = 0,5 𝑍4 = (2 * 5 + 7) mod 10 = 7 𝑈1 = 7/10 = 0,7 • Bilangan acak yang dibangkitkan: 0,1 ; 0,9 ; 0,5 ; 0,7 • kali 23 CONGUENTIAL PSEUDO RANDOM NUMBER GENERATOR: Multiplicative Random Number Generator Formula • c = 0, atau tidak menggunakan c. • Dimulai dengan nilai awal 𝑍0 (seed) • a & m : bilangan bulat positif > 1 Perilaku acak Zi yang dapat dipertanggungjawabkan • Modulo m dipilih sebesar mungkin untuk memperbesar periode. Angka integer dipilih yang cukup besar dan merupakan satu kata yang dipakai dalam komputer. • Nilai 𝑍0 = bilangan positif ganjil, 𝑍0 < m 24 CONGUENTIAL PSEUDO RANDOM NUMBER GENERATOR: Multiplicative Random Number Generator (1) • Pemilihan nilai m (modulo) merupakan angka yang cukup besar. Contoh: a. Komputer 32 bits, angka integer terbesar adalah 232−1 − 1 = 231 − 1 = 2147488647. Nilai m = 2.147.488.647 + 1 = 2.147.488.648 (nilai m sebaiknya lebih besar 1 integer) b. Microcomputer dengan 8 bits, m = 28−1 = 128 • Pemilihan nilai a sebaiknya bilangan prima terhadap m, a merupakan bilangan ganjil. 25 CONGUENTIAL PSEUDO RANDOM NUMBER GENERATOR: Contoh Multiplicative Random Number Generator (1) • Komputer memiliki kapasitas 12 bit word • W = 12 m = 2𝑊−1 = 211 = 2048 a = 67 a 26 & a 3 (mod 8) Misal: 𝑍0 = 129 𝑍1 =67 * 129 mod 2048=451 𝑈1 =451/2048= 0,2202 𝑍2 =67 * 451 mod 2048=1545 𝑈1 =1545/2048= 0,7544 𝑍3 =67 * 1545 mod 2048=1115 𝑈1 =1115/2048= 0,5444 𝑍4 =67 * 1115 mod 2048=977 𝑈1 =977/2048= 0,4771 26 CONGUENTIAL PSEUDO RANDOM NUMBER GENERATOR: Contoh Multiplicative Random Number Generator (2) • Generator memiliki kapasitas 12 bit word • W = 12 m = 2𝑊−1 = 211 = 2048 a = 67 a 26 & a 3 (mod 8) Misal: 𝑍0 = 129 𝑍1 =67 * 129 mod 2048=451 𝑈1 =451/2048= 0,2202 𝑍2 =67 * 451 mod 2048=1545 𝑈1 =1545/2048= 0,7544 𝑍3 =67 * 1545 mod 2048=1115 𝑈1 =1115/2048= 0,5444 𝑍4 =67 * 1115 mod 2048=977 𝑈1 =977/2048= 0,4771 27 CONGUENTIAL PSEUDO RANDOM NUMBER GENERATOR: Mixed Pseudo Random Number Generator • Formulasi • Syarat utama, n harus berupa bilangan integer (bulat) dan lebih besar dari nol (Linier Congruential RNG) • Bila c = 0, maka gunakan Multiplicative Congruen RNG • Syarat beberapa kondisi: c = bilangan relatif prima terhadap n a = 1 (mod q) untuk setiap faktor prima q dari m a = 1 (mod 4) bila 4 adalah suatu faktor dari m 28 MIDSQUARE METHOD Latihan (1) • • • Bangkitkan bilangan acak sebanyak dengan nilai a=17, c=43, m=100, dan 𝑍0 =27 Sehingga: Bilangan acak yang dibangkitkan: ??? 5 kali 29 CONGUENTIAL PSEUDO RANDOM NUMBER GENERATOR: Latihan (2) • • • Bangkitkan bilangan acak sebanyak dengan nilai a=17, c=43, m=100, dan 𝑍0 =27 Sehingga: Bilangan acak yang dibangkitkan: ??? 5 kali 30 CONGUENTIAL PSEUDO RANDOM NUMBER GENERATOR: Latihan (3) • • • Bangkitkan bilangan acak sebanyak 4 dengan nilai a = 13, m = 26 = 64, 𝑍0 = 1, 2, 3, 4 Sehingga: Bilangan acak yang dibangkitkan: ??? kali 31 REFERENCES a. b. c. Beaverstock, M., Greenwood, A., and Nordgren, W., 2017, Applied Simulation: Modelling and Analysis using Flexsim, 5th Edition, United State America: Canyon Park Technology Center. Banks et al, 2001, Discrete- Event System Simulation, 3ed, Prentice Hall, New Jersey. Law AM dan Kelton WD, 1991, Simulation Modeling and analysis, McGraw Hill, New York. 32