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

Membangkitkan Sebuah Variabel Acak Binomial

Misalkan kita ingin membangkitkan nilai dari sebuah variabel acak X, binomial (n,p). X sedemikian sehingga : P\left \{ X=i \right \}=\frac{n!}{i!(n-i)!}p^{i}(1-p)^{n-i}, \;\;\;\;\;i=0,1, \cdots ,n

Untuk membangkitkan variabel acak binomial, kita akan menggunakan metode transformasi kebalikan (inverse transform method) dengan membuat penanda rekursif sebagai berikut : P\left \{ X=i+1 \right \}=\frac{n-i}{i+1}\frac{p}{1-p}P\left \{ X=i \right \}

Dengan i menunjukkan nilai yang diiginkan, pr = P{X= i} probabilitas dimana X sama dengan i, dan F = F(i) sebagai probabilitas dimana X lebih kecil atau sama dengan i, algoritma dapat disusun sebagai berikut :

STEP 1: Bangkitkan bilangan acak U

STEP 2: c=p/(1-p),i=0,pr=(1-p)^{n},F=pr

STEP 3: Jika U < F, tentukan X = i, stop.

STEP 4:pr = \left [ c(n-i)/(i+1) \right ]pr, F=F+pr,i=i+1

STEP 5: Lanjut ke STEP 3

[ Sumber : Simulation, Sheldon M. Ross]

Membangkitkan Sebuah Variabel Acak Poisson

Variabel acak X adalah Poisson dengan mean \( \lambda \)  jika

p_{i}=P\left \{ X=i \right \}=e^{-\lambda} \frac{\lambda ^{i}}{i!} \;\;\;\;\;\; i=0,1,\cdots

Kunci penggunaan metode transformasi kebalikan (inverse transform method) dalam rangka  untuk membangkitkan variabel acak seperti ini adalah dengan mengikuti penanda di bawah ini :

\120dpi p_{i+1}= \frac{\lambda }{i+1} p_{i}, \;\;\;\;\;\; i\geq 0

Berdasarkan pada rumus rekursif untuk menghitung probabilitas Poisson dengan mean ? di atas, maka kita dapat menggunakan algoritma berikut ini :

STEP 1: Bangkitkan bilangan acak U

STEP 2: \120dpi \inline i=0, p=e^{-\lambda },F=p

STEP 3: Jika U<F, jadikan X=i dan berhenti

STEP 4: \120dpi \inline p=\lambda p / \left ( i+1 \right ), F = F + p, i = i+1.

STEP 5: Go to STEP 3

[ source : Simulation, Sheldon M. Ross ]

Metode Rejection untuk Membangkitkan Variabel Acak Kontinyu

Misalkan kita memiliki sebuah metode pembangkit bilangan acak dengan fungsi densitas \(g(x) \). Kita dapat menggunakan fungsi tersebut sebagai basis/dasar untuk membangkitkan variabel acak dari distribusi kontinyu lain yang memiliki fungsi densitas \(f(x) \) dengan cara membangkitkan Y dari g dan kemudian menerima nilai yang dibangkitkan ini dengan sebuah proporsi probabilitas terhadap \(f(Y)/g(Y) \)

Secara lebih spesifik, misalkan \(c \) adalah sebuah konstanta sedemikian sehingga

\( \frac{ f(y) }{ g(y) } \leq c \) untuk semua y

Berikut adalah penggambaran langkah-langkahnya :

Langkah 1 : Bangkitkan Y yang memiliki densitas g
Langkah 2 : Bangkitkan sebuah bilangan acak U
Langkah 3 : Jika \(U \leq \frac{f(Y)}{c g(Y)} \leq c, jadikan X = Y \). Lainnya, kembali ke langkah 1

Contoh 5d :
Gunakanlah metode Rejection untuk membangkitkan variabel acak yang memiliki fungsi densitas sebagai berikut :

\( f(x) = 20 x (1 – x)^3, : : : : 0<x<1 \)

Karena variabel acak ini (dimana berdistribusi beta dengan parameter 2,4) berkumpul di internal (0,1), mari kita ambil metode rejection dengan

\(g(x)=1, ; ; 0<x<1 \)

Untuk menentukan konstanta c sedemikian sehingga \(frac{f(y)}{g(y)}leq c \), kita gunakan kalkulus untuk menemukan nilai maksimum dari

\(frac{f(x)}{g(x)} = 20 x (1 – x)^3 \)

Diferensiasi atau turunan pertama dari kuantitas ini adalah :

Dengan menjadikan persamaan ini sama dengan 0 akan menunjukkan :

jadi nilai maksimum dicapai bila x = 1/4 dan dengan demikian :

\(frac{f(x)}{g(x)} = 20left ( frac{1}{4} right )left ( frac{3}{4} right ) ^3 = frac{135}{64}equiv c \)

Karenanya

\(frac{f(x)}{c g(x)} = frac{256}{27}x left ( 1 – x right )^3 \)

Karenanya prosedur rejection menjadi sebagai berikut :

Langkah 1 : Bangkitkan bilangan acak \(U_1 dan U_2 \).
Langkah 2 : \(jika U_2 leq frac{256}{27} U_1 left ( 1 – U_1 right )^3 \), berhenti dan jadikan \(X = U_1 \). Lainnya kembali ke langkah 1.

Rata banyak nya langkah 1 dilakukan adalah \(large c = frac{135}{64} approx 2.11\).

Variabel Acak

Ketika sebuah percobaan dilakukan, biasanya hasil kejadian yang diperoleh berupa ‘nama kejadian’ seperti : buka dan tutup; terang, redup dan gelap; merah, kuning dan hijau; hidup dan mati dan lain sebagainya. Informasi kejadian yang berbentuk seperti demikian itu belum dapat kita gunakan dalam perhitungan matematis.

Oleh karenanya agar kita bisa olah lebih lanjut, kita harus mengubahnya menjadi suatu bentuk kuantitatif berupa nilai numerik yang menjelaskan hasil percobaan/kejadian tersebut. Nilai kuantitatif yang menjelaskan hasil percobaan/kejadian ini dikenal dengan istilah variabel acak (random variables).

Misalkan ada sebuah percobaan yang memiliki outcome (semua kejadian yang mungkin muncul dalam percobaan) berupa benar dan salah. Maka ketika benar diwakilkan dengan angka 1 dan salah diwakilkan dengan angka 0, maka  0 dan 1 adalah numerik yang mewakili kejadian random benar dan salah yang pada akhirnya disebut sebagai variabel acak. Jadi boleh dikatakan bahwa variabel acak adalah sebuah fungsi yang memetakan kejadian yang ada di alam menjadi bilangan numerik. Semua kejadian yang mungkin muncul dalam suatu percobaan kita sebut sebagai anggota Ruang Sample yang dinotasikan dengan S.

Contoh :

Lemparlah sebuah uang logam yang memiliki sisi atas (kejadian muncul sisi atas kita sebut A), dan sisi bawah (kejadian muncul sisi atas kita sebut B) sebanyak 10 kali. Maka :

  • Ruang sample perobaan ini adalah S = {AABBABABAB, … } meliputi semua konfigurasi dari A dan B.
  • Misalkan Variabel Acak X adalah banyaknya nya Sisi Atas yang muncul, \(X:S \to \Re \) atau dalam contoh ini \(X:S \to \left \{ 0,1, \cdots,10 \right \} \)

Fungsi distribusi kumulatif atau biasanya disingkat fungsi distribusi saja, F dari variabel acak X  untuk sembarang bilangan riil x  ditentukan dengan :

\(F(x)= P\left \{ X\leq x \right \}\)

Sebuah Variabel Acak disebut diskrit jika variabel acak ini terdiri dari sejumlah angka yang terhitung dan terbatas dari nilai-nilai yang mungkin terjadi. Untuk sebuah variabel acak diskrit X kita tentukan Fungsi Masa Probabilitas (Probability Mass Function) p(x) dengan :

\(p(x)= P\left \{ X= x \right \}\)

Jika X adalah variabel acak diskrit yang memiliki nilai yang mungkin muncul \( x_1, x_2,\cdots\), maka karena X harus berasal dari salah satu nilai-nilai tersebut, kita akan memperoleh :

\(\sum_{i=1}^{\infty }p(x_i)=1\)

Contoh : Misalkan X bernilai dari salah satu 1,2 atau 3. Jika

\(p(1)=\frac{1}{4},\; \; \; p(2)=\frac{1}{3} \)

maka, karena \(p(1)+p(2)+p(3)=1\) , akan menghasilkan \(p(3)=\frac{5}{12}\)

Pengantar Simulasi (1)

Pengertian

Tulisan ini akan memaparkan tentang Pengertian Simulasi, Sistem, Model, Pemanfaatan Simulasi

Simulasi adalah suatu operasional buatan yang ditiru dari suatu sistem yang ada di alam nyata dalam kurun waktu tertentu.
Pengertian simulasi tidak dapat terpisahkan dari pengertian tentang Sistem dan Model.

  1. Sistem adalah : suatu kumpulan entitas (entitas itu bisa berupa orang, mesin, dsb) yang mampu memelihara keberadaannya melalui interaksi yang saling mendukung dari setiap bagian atau komponen yang ada di dalamnya. Atau pendapat lain mengakatan bahwa Sistem adalah sekumpulan entitas yang berperilaku atau berinteraksi diantara mereka menuju pencapaian hasil akhir logis tertentu (Schmidt & Taylor 1970). Pada praktek nya, pengertian System akan tergantung kepada tujuan pencapaian dari studi tertentu.
  2. Model secara singkat adalah sebuah bentuk fisik atau abstrak yang dapat digunakan untuk menjelaskan tentang perilaku Sistem.

Simulasi dapat dimanfaatkan untuk berbagai tujuan, misalnya :

  • Dengan simulasi dimungkinkan untuk mempelajari berbagai percobaan yang mengandung interaksi internal
  • Perubahan-perubahan secara informasi, organisasi, dan lingkungan dapat disimulasikan untuk melihat perilaku model
  • Pengetahuan yang diperoleh dari dijalankannya suatu simulasi dapat digunakan untuk menyempurnakan Sistem.
  • Pembelajaran secara mendalam terhadap hasil-hasil dari simulasi dapat memberikan gambaran terhadap variabel-variabel mana saja yang paling penting
  • Simulasi dapat digunakan sebagai alat pengajaran untuk penguatan materi pembelajaran
  • Simulasi dapat digunakan untuk memeriksa hasil-hasil analitik (misalnya : sistem antrian)
  • Animasi dari simulasi dapat menunjukkan aksi dari sistem, sedemikian sehingga perencanaan dapat divisualisasikan.

Kita dapat mengelompokkan Sistem kepada 2 (dua) jenis, diskrit dan kontinyu.

Sistem Diskrit adalah sistem yang kondisi variabel-variabel nya berubah secara instan/seketika pada suatu waktu tertentu. Contoh : Banyaknya orang yang antri di stasiun kereta, perubahan hanya terjadi ketika seorang penumpang datang, atau ketika calon penumpang tadi selesai dilayani oleh petugas Loket dan langsung meninggalkan loket.

Sistem Kontinyu adalah sebuah sistem yang kondisi variabel nya  berubah secara kontinyu seiring dengan waktu. Contoh : Sebuah pesawat terbang yang sedang mengangkasa (Take Off). Sejumlah variabel seperti posisi dan ketinggian berubah secara kontinyu.

 

Referensi :

  1. Averil M. Law., W. David Kelton., Simulation Modeling and Analysis, McGraw-Hill, Inc.
  2. Sheldon M. Ross., Simulation. Academic Press.

Metode Transformasi Inverse (Inverse Transform Method)

Misalkan kita akan membangkitkan nilai variabel acak diskrit X yang memiliki fungsi massa probabilitas  :

\(P \left \{ X=x_j \right \} = p_j , j=0,1,\cdots , \sum_{j}^{.}p_j=1 \)

Untuk menyelesaikan hal ini, kita bangkitkan bilangan acak U (dimana U adalah berdistribusi Uniform disepanjang rentang (0,1) ) dan diatur sebagai berikut :

\(X = \left\{\begin{matrix} x_0 & if & U < p_0 \\ x_1 & if & p_0\leq U<p_0+p_1\\ \vdots & \\ x_j & if & \sum_{j-1}^{i=1}p_i \leq U < \sum_{i=1}^{j} p_i \\ & \\ \vdots \end{matrix}\right.\)

Karena, untuk \( 0<a<b<1, P \left \{ a \leq U < b \right \}= b – a \), akan kita peroleh :

\( P \left \{ X=x_j \right \} = P \left \{ \sum_{i=1}^{j-1}p_i \leq U < \sum_{i=1}^{j}p_i \right \} = p_j \)

dan karenanya X memiliki distribusi yang diinginkan.

Catatan :

1. Hal di atas dapat ditulis secara algoritma di bawah ini :

Bangkitkan bilangan acak U
Jika \( U < p_0\) tetapkan \( X = x_0 \) dan berhenti
Jika  \( U < p_0 + p_1 \) tetapkan  \( X = x_1\) dan berhenti
Jika \( U < p_0 + p_1 + p_2 \) tetapkan \( X = x_2 \) dan berhenti
\( \vdots\)

2. Jika  \( x_{i},\; i\geq 0 \), terurut maka  \( x_{0}<x_{1}<x_{2}<\cdots \) dan jika kita misalkan F sebagai fungsi distribusi dari X,  \( F(x_{k})=\sum_{k}^{i=0}p_{i}\) dan karenanya :

X akan sama dengan  \( x_j\) jika  \( F(x_{j-1})\leq U \)

Dengan kata lain, setelah membangkitkan sebuah bilangan acak U kita tentukan nilai dari X dengan mencari di interval mana U berada. [atau ekuivalen/serupa dengan mencari nilai invers dari F(U)]. Karena itu pulalah medote ini disebut metode transformasi inverse diskrit untuk membangkitkan X.

Banyaknya kali yang diambil untuk membangkitkan variabel random diskrit dengan menggunakan metode di atas akan proporsional (sebanding)  pada banyaknya interval yang harus di cari. Karena itulah terkadang sangat bermanfaat untuk mempertimbangkan nilai-nilai  \( x_j\) dari X dengan urutan yang menurun dari  \( p_j \)

Contoh 4a.

Jika kita ingin mensimulasikan sebuah bilangan acak X sedemikian sehingga :

\(p_1 = 0.20, p_2 = 0.15, p_3 = 0.25, p_4 = 0.40, \; dimana \; p_j = P{X = j} \)

Kemudian kita akan membangkitkan U dengan cara sebagai berikut :

jika U < 0.20, tentukan X = 1, stop
jika U < 0.35, tentukan X = 2, stop
jika U < 0.20, tentukan X = 3, stop
Lainnya X = 4

Sebenarnya ada cara yang lebih efisien yaitu dengan mengubah prosedur di atas menjadi seperti di bawah ini :

jika U < 0.40, tentukan X = 4, stop
jika U < 0.65, tentukan X = 3, stop
jika U < 0.85, tentukan X = 1, stop
Lainnya X = 2

1 10 11 12