BAB 4 RNG

34
Materi 4 Pembangkit Bilangan Acak (Random Number Generation ) Ir. Risma A. Simanjuntak, MT Teknik Industri Fakultas Teknologi industri Institut Sains & Teknologi AKPRIND Yogyakarta

description

Materi Kuliah Simulasi Sistem

Transcript of BAB 4 RNG

  • Materi 4Pembangkit Bilangan Acak (Random Number Generation )

    Ir. Risma A. Simanjuntak, MT

    Teknik IndustriFakultas Teknologi industriInstitut Sains & Teknologi AKPRINDYogyakarta

  • Kompetensi

    Mampu membangkitkan bilangan random dengan berbagai metode

  • Pokok BahasanTabel random number

    Congruential pseudo random number Linier Congruental Generator (LCG) Multiplicate RNG Mixed Congruential RNG

    Metode midsquare

  • PengantarBilangan 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 --- statisticBiasanya bilangan random yang dihasilkan komputer masih berbentuk bilangan bulat, untuk mendapatkan bilangan random yang mengikuti distribusi probabilitas tertentu yang dikehendaki

  • Bilangan AcakDigunakan oleh hampir semua model simulasi

    Bilangan random fisik

    Pseudo-random bilangan random uniform

    Simulasi statik atau Monte Carlo

  • ContohSimulasi 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 NumberCongruential Pseudo RNG--- yang paling sering digunakan pada computer.Linear Congruental Generators (LCG) /Additive (arithmetic) RNGMultiplicate RNGMixed Congruential RNG

  • 1. Tabel Random Number

    140 900 150 296 246 812 725 250 612 999 223 321 465 925 514 009241421375779 383 888 774 573 075 261 972 773 478

  • 2. Manual Lemparan KoinOutcome (H : muka ; B belakang)S={M,B}, P(M)=P(B)=0,5Algoritma (prosedur):1. Bangkitkan bilangan random Uniform u2. 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)ContohUrutan dari u1 9 2 4 5 0 4 6 8OutcomeM B M M M M M B B

  • Manual Lemparan DaduLangkah :Seolah-oleh mempunyai kotak yang memuat 100 dadu diberi nomor 0 hingga 99Kocok kotak , ambil sebuah dadu (tiap dadu/nomor mempunyai peluang 0,01, misalmya muncul nomor 10Ulangi 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 MidsquareMulai 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 Z1

  • Metode Midsquare (lanjut)Tempatkan titik desimal disisi kiri dari Z1 diperoleh bilangan random U (0,1) yang pertama (U1)

    Kemudian Z2 adalah digit tengah Z12

    Demikian seterusnya, sampai diperoleh bilangan random yang diinginkan

  • Metode Midsquare (lanjut)Tempatkan titik decimal disisi kiri dari Z1 diperoleh bilangan random U (0,1) yang pertama (U1)

    Kemudian Z2 adalah digit tengah dari Z12

    Demikian seterusnya, samapai diperoleh bilangan random yang diinginkan

  • Contoh Midsguare

    Seed : 7.182

    iZiUiZi20123457.1825.8117.6779.3636.6573.156-0,58110,76770,93630,66570,315651.581.12433.767.72158.936.32987.665.76944.315.64909.960.336

  • 4. Linear Congruental Generators (LCG)Rumusnya Zi = (a . Zi-1 + c ) mod.m Ri = Zi / M Keterangan :Zi: angka random yang baruZi-1: angka random number yang lama / yang semulac: increment / angka konstan yang bersyaratm: modulus / angka moduloa: multiplier / konstanta

  • Syarat0 < m ; a < m c < m dan Z0 < mkonstanta a harus lebih besar dari m Biasanya dinyatakan dengan syaratm/100 < a < m - mm/100 + m > a > mKonstan c harus berangka ganjil apabila m berpangkat dua, tidak boleh nilai berkelipatan m Untuk modulo m harus bilangan prime atau bilangan tidak terbagikanUntuk pertama Zo harus merupakan angka integer dan juga ganjil dan cukup besar

  • Contoh :

    Bila digunakan computer dengan 8 bitsJadi :Zo: 12357a: 19m: 128c: 237Random numberZ1= ( 19 x 12357 + 237 ) mod 128= 235020 235008= 12 R1 = 12/ 128 = 0.09375

  • LanjutanZ2= ( 19 x 12 + 237 ) mod 128= 465 384= 81 R2 = 81/ 128 = 0.6328Z3= ( 19 x 18 + 237 ) mod 128= 1776 1664= 112 R3 = 112/ 128 = 0.875dan seterusnya

  • Contoh : Ilustrasi LCGdimana m kecil m = 16 , a = 5 , c = 3 , Z0 = 7

    Cara : Z1 = (5 x 7 +3) mod 16 = 38 mod 16 = 2 sisa 6R1 = 6/16 = 0,375

  • LanjutCatatan : Jika dilanjutkan maka diperoleh :Z17 = Z1 = 6 danZ18 = Z2 = 1 dst

    Sehingga dari i = 17 sampai i = 32 akan diperoleh nilai yang sama untuk Zi dan Ri seperti halnya i = 1 sampai i = 16

  • iZiRi07-160,375210,063380,5004110,6885100,625650,3137120,7508150,9389140,87510dst

  • 5. Multiplicate RNG --- jika c = 0

    Rumusnya

    Zi+1 = ( a . Z ) mod.m Keterangan :Zi: angka random number semulaZi+1 : angka random yang barua > 1: c = 0 ; m > 1Syarat lain sama dengan additive RNG

  • 6. Mixed Generator1). Pemilihan nilai : m (modulo) m = 2b 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 = 232-1 1 = 2147488647

    Maka nilai m harus lebih satu integer ataum = 232-1 +1 = 2147483648

  • Komputer IBM 1130/1800 dikenal

    16 bits ---- berarti angka integer yang terbesar dalam satu kata computer adalah

    M = 216-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 3b = jumlah bits

    Untuk IBM 1130/1800 ---- 16 bitsa = 2 16/2 + 3 = 259

  • 3). Pemilihan untuk Z0Pemilihan untuk Z0 mengharuskan relative bilangan prima terhadap mHal ini dapat diperhatikan dengan mudah apabila dicari untuk m adalah angka berpangkat 2 --- angka expoler dari angka 2. Dengan demikian untuk Z0 adalah setiap angka-angka yang ganjil seperti Z0 = 12357, dapat diambil sembarang asalkan bilangan ganjil, dan bilangan cukub besar.

  • 4). Bilangan cBilangan 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 Bangkitkan bilangan random 10 kali, 3 digit dengan menggunakan metode LCG jika diketahui : X0 = 27, a = 8, c = 47 dan m =100

    Bangkitkan bilangan random dengan metode midsquare seed (Z0) = 5625

    Bangkitkan bilangan random dengan metode midsquare seed (Z0) = 5500

    4. Sebutkan pengertian dari RNG

    *