Pembangkit Bilangan Acak Pesudo

Salah satu pendekatan yang sering digunakan dalam membangkitkan bilangan acak pseudo (pseudorandom numbers) adalah memulainya dengan sebuah nilai awal x0 yang sering disebut sebagai bibit/seed, kemudian komputer akan membangkitkan bilangan nilai-nilai berikutnya yaitu xn, \(n\geq 1\) secara rekursif, dengan cara memisalkan :

\(x_{n}= a x_{n-1} \; modulo \; m\) … (3.1)

dimana dan adalah bilangan bulat positif yang sudah ditentukan, dan dimana hal diatas artinya bahwa \(a x_{n-1}\) dibagi dengan dan sisa baginya diambil sebagai nilai dari  \( x_{n}\). Dengan demikian setiap  \( x_{n}\) bisa bernilai salah satu diantara \(0,1,\cdots,m-1\) dan kuantitas dari \(x_{n}/m\) – disebut sebuah bilangan acak pseudo (pseudorandom number)- diambil sebagai nilai pendekatan untuk nilai dari variabel acak uniform (0,1).

Pendekatan yang ditentukan dengan persamaan 3.1 dalam membangkitkan bilangan acak tersebut sering disebut Multiplicative Congruential Method. Karena setiap angka  \( x_{n}\) yang  akan bernilai salah satu dari  \(0,1,\cdots,m-1\), pada suatu saat setelah sejumlah  pembangkitan tertentu akan terjadi perulangan; dan seketika ini terjadi, keseluruhan deret bilangan akan kembali berulang. Dengan demikian, kita seyogyanya ingin memilih konstanta a dan m sedemikian sehingga, untuk sembarang seed  \( x_{0}\), banyaknya variable yang dapat dibangkitkan sebelum terjadi perulangan terjadi cukup besar.

Secara umum konstanta dan dapat dipilih untuk memenuhi 3 kriteria :

  1. Untuk sembarang nilai awal seed , deretan hasil memiliki pemunculan deret variable acak yang independent uniform (0,1)
  2. Untuk sembarang nilai awal seed , banyaknya variable yang dapat dibangkitkan sebelum terjadi perulangan cukup besar.
  3. Nilai-nilai ini dapat dihitung secera efisien dengan menggunakan komputer

Untuk memenuhi ketiga kondisi tersebut di atas, sebaiknya m dipilih dari bilangan prima yang cukup besar, biasanya disesuaikan dengan kemampuan komputer yang digunakan dan ukuran word. Untuk mesin 32 bit (dimana bit pertama digunakan sebagai bit penanda / sign bit), pemilihan m = \( 2^{31} – 1\) dan \( a = 7^5 = 16807\) menghasilkan hasil yang diinginkan.

Pembangkit bilangan acak lainnya adalah :

\(x_{n}= (a x_{n-1}+c) \; modulo \; m\)

pembangkit ini diberi nama mixed congruential generators. Pembangkit ini dianggap lebih baik hasilnya dari pembangkit sebelumnya.

Kebanyakan bahasa pemrograman komputer sudah menyediakan pembangkit bilangan acak nya sendiri. Misalnya dalam bahasa BASIC, bahasa ini menggunakan 2 (dua) buah perintah yaitu :

1 RANDOMIZE

2 U = RND

Contoh program yang menghasilkan 10 (sepuluh) buah bilangan acak :

10  RANDOMIZE

20  FOR I = 1 TO 10

30  U = RND

40  PRINT U

50  NEXT

 

 

Bilangan Acak

Salah satu faktor penting dalam teori simulasi adalah kemampuan untuk membangkitkan bilangan acak. Bilangan acak ini mewakili nilai dari variabel acak yang berdistribusi uniform pada rentang (0,1). Pada bab ini akan dijelaskan bilangan-bilangan acak seperti itu yang dibangkitkan dengan menggunakan komputer dan beberapa ilustrasi penggunaannya.

> Pembangkit Bilangan Acak Pesudo

Ruang Sample dan Kejadian

Mari kita bayangkan andai ada sebuah percobaan yang kejadian yang mungkin terjadi nya belum kita ketahui pada saat awal.

Semua kejadian yang mungkin terjadi pada percobaan tersebut lalu kita kumpulkan menjadi sebuah kumpulan atau himpunan. Maka kumpulan atau himpunan semacam ini kita sebut dengan Ruang Sample dari suatu percobaan dan biasanya ditandai dengan notasi  S.

Contoh, Misalkan ada sebuah balapan kuda yang diikuti oleh 7 ekor kuda.  Masing-masing kuda yang diberi nomor punggung 1 hingga 7, maka :

S = {  semua urutan dari  (1, 2, 3, 4, 5, 6, 7) }

Pemunculan urutan  (3,4,1,7,6,5,2) akan berarti bahwa, kuda dengan nomor punggung 3 akan datang paling dulu, baru kemudian disusul oleh kuda nomor 4 dan seterusnya.

Semua himpunan bagian A dari Ruang Sampel disebut sebagai kejadian (event). Karena itu, sebuah kejadian adalah sebuah kumpulan yang mengandung peristiwa yang mungkin muncul dalam suatu percobaan. Jika peristiwa kejadian yang muncul dalam percobaan itu terdapat di dalam A, kita katakan bahwa  kejadian A terjadi.

Contoh : A = { semua kejadian di S yang didahului oleh 5 }

Maka A adalah semua peristiwa, dimana kuda nomor 5 yang masuk finish paling dulu.

Untuk sembarang kejadian A dan B, misalkan kita menentukan kejadian baru \(A\cup B\)  , yang disebut juga union/gabungan A dan B, gabungan ini mengandung semua kejadian yang mungkin muncul yang mungkin saja berada di dalam A atau di dalam B atau berada dikeduanya A dan B. Sejalan dengan hal tersebut, kita tentukan kejadian, AB, yang disebut sebagai irisan/ intersection dari A dan B, dimana kejadian AB terjadi jika A dan B juga terjadi. Kita juga bisa menentukan gabungan dan irisan untuk lebih dari 2(dua) kejadian. Gabungan dari kejadian-kejadian \(A_1, \cdots , A_n\) ditulis \(\bigcup_{i=1}^{n} = A_i\)  ditentukan memuat semua kejadian yang berada di sembarang \(A_i\). Begitu pula dengan irisan dari kejadian-kejadian \(A_1, \cdots , A_n\)  ditulis dengan \(A_1A_2 \cdots A_n\)  yang mengandung semua kejadian yang mungkin muncul (outcome) berada di semua \(A_i\).

Untuk semua kejadian A ada kejadian yang disebut \(A^c\)  , sering disebut sebagai komplemen dari A. mengandung semua kejadian di ruang sample S tapi tidak berada di A. Karena itu, \(A^c\) terjadi jika dan hanya jika tidak terjadi. Karena kejadian yang mungkin muncul haruslah berada di ruang sample S, akibatnya \(S^c\) tidak mengandung kejadian apapun, karenanya tidak muncul apapun. Kita sebut \(S^c\) himpunan null dan ditulis dengan \small \inline \o  . Jika \small \inline AB =\o, dikatakan bahwa A dan B mutualy exclusive