Membangkitkan Bilangan Acak Metode Linear Congruential Generator (LCG)

Membangkitkan Bilangan Acak Metode
Linear Congruential Generator (LCG)

Pembangkitan Bilangan Acak

Pembangkitan bilangan acak adalah konsep penting analisis statistik dan
teori peluang, umumnya untuk simulasi

  • Bilangan acak yang dibangkitkan merupakan pseudorandom (acak
    semu), karena pembangkitannya menggunakan operasi-operasi
    matematika
  • Bilangan acak yang dibangkitkan memenuhi sebaran statistik tertentu
    (pdf/pmf, cdf)

Fungsi-Fungsi Peluang Suatu Sebaran

Fungsi density/mass (pdf/pmf) dimulai huruf d diikuti dengan nama sebarannya

  • dnormΒ 
  • dunif

Fungsi peluang sebaran kumulatif (cdf) dimulai huruf p diikuti dengan nama
sebarannya

  • pnorm
  • punif

Fungsi quantile/invers cdf dimulai huruf q diikuti dengan nama sebarannya

  • qnorm
  • qunif

R telah menyiapkan banyak fungsi untuk membangkitkan data berdasarkan
sebaran

Fungsi umumnya dimulai dengan huruf r diikuti dengan nama sebaran
Contoh:
Data sebaran pseudo seragam :runif

Pembangkit bilangan menggunakan seed yang umumnya mengambil waktu
di komputer

Pembangkitan Pseudorandom menghasilkan barisan peubah acak Uniform
(0,1)

  • Linear congruential generator adalah salah satu algoritma tertua dan
    terkenal untuk membangkitkan bilangan pseudorandom
  • Distribusi lainnya umumnya dibangkitkan berdasarkan barisan bilangan
    ini
    Sebagai contoh :
    Jika π‘ˆ ~ Unif 0,1 maka
    𝛽 ln 1 βˆ’ π‘ˆ ~ 𝐸π‘₯𝑝(𝛽)

CONTOH : runif ()
runif () adalah fungsi membangkitkan barisan peubah acak Uniform yang tersedia di R

Linear Congruential Generator

Bilangan acak yang dihasilkan dengan rumus-rumus matematika adalah bilangan acak semu (pseudo),
karena pembangkitannya dapat diulang kembali. Pembangkit deret bilangan acak semacam itu disebut
pseudorandom number. Linear congruential generator adalah salah satu algoritma tertua dan terkenal
untuk membangkitkan bilangan pseudorandom dengan rumus :

Langkah-langkah membangkitkan bilangan acak pada interval 0 dan 1:

  1. Tentukan seedΒ 
  2. Untuk i = 1, 2, …… , n hitungΒ Β 
  3. Selanjutnya tentukanΒ 

Contoh :

Hasil yang diperoleh hanya berupa barisan bilangan 1 dan 2 seperti berikut:

Program membangkitkan bilangan acak bulat antara (0,m) di R

Keacakan U akan semakin baik jika kita bisa mengambil nilai m bilangan prima sebesar mungkin.
Berikut adalah 30 bilangan acak antara (0,1) yang diperoleh dengan m =97, a=98, x0=2, c=5.
Dari hasil yang diperoleh terlihat bahwa ketiga puluh bilangan tersebut tidak ada yang merupakan
pengulangan dari bilangan sebelumnya

Coddington n.d memberi daftar pasangan pilihan a,c, dan m yang telah dicoba untuk berbagai
mesin sebagaimana yang ditulis dalam tabel berikut

Leave a Reply