TUGAS II
BILANGAN RANDOM T UGAS U GAS
DIBUAT UNTUK MEMENUHI
M ATA K ULIAH U LIAH S IMULASI K OMPUTER O MPUTER
DOSEN PENGAMPU:
GOENAWAN TRIDJOKO PRIJONO, I R. MT MT DISUSUN
OLEH
:
MARWAH TIFFANI (080411012)
PROGRAM STUDI TEKNIK INDUSTRI FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH CIREBON 2011 1. PEMBANGKIT BILANGAN RANDOM 1.1Random Number Generation
Random Number Generation adalah suatu algoritma yang digunakan digunakan untuk menghasilkan urutan – urutan atau sequence dari angka – angka sebagai hasil dari perhitungan dengan komputer yang diketahui distribusinya sehingga angka – angka ter sebut muncul secara random dan digunakan terus menerus. Dari definisi tersebut dapat ditarik tiga pokok pengertian, yaitu sebagai berikut :
1.2 Seque Sequence nce atau atau urutan
Yang dimaksud dengan sequence sequence disini adalah bahwa random number number tersebut harus dapat dihasilkan secara urut dalam jumlah yang mengikuti algoritma tertentu dan sesuai drengan distribusi yang akan terjadi atau yang dikehendaki.
1.3 Distribution atau distribusi
Pengertian distribusi berhubungan dengan distribusi probabilitas yang dipergunakan untuk meninjau atau terlibat langsung dalam penarikan random number tersebut . Pada umumnya distribusi probabilitas untuk random number ini adalah Uniform Variate yang dikenal dengan distribusi Uniform. Seperti pada random sequence masing mempunyai
,
,
, ... ,
dan pada setiap random sequence ini masing –
, ... yang merupakan subsequence yang berhubungan tetapi
terpisah atau dengan lainnya, yang dikenal dengan Jointly Independent , dan masing – masing juga mempunyai probabilitas probabilitas distribus Uniform antar 0 dan n. (0,n). Bila sequence sequence ini terputus maka akan merusak atau mengurangi arti dari kegiatan simulasi yang berjalan.
1.4 Deskripsi Deskripsi Random Random Number
Dalam penentuan random number pada umumnya terdapat beberapa sumber yang dipergunakan, antara lain : a. Tabe Tabell ran rando dom m num numbe ber r
Tabel random number ini sudah banyak ditemukan mulai mulai dari enam digit samapi dengan dua belas digit. b. b. Elec Electr tron onic ic Rand Random om Num Numbe ber r Electronic Random Number ini banyak juga di pergunakan dalam percobaan penelitian. c. Congru Congruent ential ial Pseudo Pseudo Random Random Number Number Genera Generator tor Random Number Generator ini terdiri dari tiga bagian : •
Additive ( Aritmatic ) Random Random Number Generator
•
Multiplicative Random Number Generator
•
Mixed Congruential Congruential Random Number Generator
Di dalam penarikan random number pada komputer, yang sering digunakan adalah Congruential Random Number Generator Generator dengan sifat – sifatnya sifatnya yang terpenting adalah sebagai berikut : 1.6 Independent
Pengertian independent ini berarti masing – masing komponen atau variabel – variabelnya harus bebas dari ketentuan – ketentuan tersendiri. Seperti :
= Merupakan hasil akhir = Merupakan angka pertama yang bebas tertentu
a. = Merupakan Merupakan angka angka konstan konstan yang yang dapat bebas bebas dengan dengan ketentu ketentuan an – ketentuann ketentuannya ya tersendiri. b. = Merupakan Merupakan angka angka bebas tetapi tidak tidak ada hibun hibungan gan tertentu tertentu dengan dengan m ( modulo modulo ) 1.7 Uniform
Pengertian Uniform disini merupakan suatu distribusi yang umum yakni distribusi probabilitas yang sama untuk semua besaran yang dikeluarakan / diambil. Ini berarti probabiliotasnya diusahakan sama untuk setiap penarikan r andom number tersebut. 1.8 Dense
Pengertian dense disini merupakan maksud dari density Probabilitas Distribution yang tentunya harus mengikuti syarat probabilitas yaitu terletak antara 0 dan 1. Ini berarti dalam penarikan angka – angka yang dibutuhkan dari Random Number Generator cukup banyak dan dibuat sedemikian rupa sehingga 0 ≤ R . N . ≤ 1.
1.9 Efficient
Pengertian Efficient disini di maksud dapat cukup sederhana dan dalam menggunakan cara ini harus telebih dahulu memilih angka – angka untuk variabel – variabelnya yang cocok. Ini berarti dalam penari9kan random number number tersebut harus dapat menentukan menentukan angka – angka angka untuk variabelnya yang sesuai sehingga dapat berjalan terus menerus.
2. PENYELESAIAN R.N.G Pada Congruental Pseudo Pseudo Random Number Generator dapat dijelaskan untuk untuk masing – masing formula atau rumus sebagai berikut : 2.1 Additive / Aritmathic RNG
Bentuk rumusnya : (
mod. m
Dengan catatan : Angka Random Number yang baru Angka Random Number yang lama / yang semula c. = Angka konstan yang bersyarat m. = Angka modulo Bagi Additive RNG ini diperlukan perhaytian syarat- syaratnya sebagai berikut : a.
Konstan a harus lebih besar dari
.
Dan biasanya dinyatakan dengan syarat :
b. Untuk konsta konstan n c harus berangka berangka ganjil ganjil apabila apabila m bernilai bernilai pada dua. Tidak Tidak boleh boleh nilai berkelipatan dari m. c. Untuk modulo modulo m harus harus bilangan bilangan prime prime atau bilngan bilngan tidak tidak terbagikan, terbagikan, sehing sehingga ga memudahkan atau memperlancar perhitungan – perhitungan didalam komputer dapat berjalan dengan mudah dan lancar. d.
Untuk pertama
harus merupakan angka integer dan juga ganjil dan cukup besar.
2.2 Multiplicative RNG
Angka Random Number yang semula Angka Random Number yang baru A>1;c=0;m>1 Syarat-syarat yang lainnya adalah sama dengan Additive RNG. Dalam perunusan multiplicative ini terdapat tiga variabel yang menentukan untuk nilai – nilai Random Number yang dapat diperoleh seterusnya dengan tidak ada pengulangan pada angka – angkanya. Dan untuk pemilihan nilai – nilai yang terbaik dijabarkan sebagai berikut : a. Pemilihan Pemilihan nilai nilai : m (modulo) (modulo) merupak merupakan an satu angka angka integer integer yang yang cukup besar dan dan merupakan satu kata (word) dari yang dipakai pada komputer. Sebagai contoh : •
Dalam komputer IBM 360/370 sistem sebuah kata adalah 32 bits panjangnya, berarti angka integer yang terbesar dalam satu kata komputer ( komputer words ) adalah : 232
1
−
−
1 = 231 − 1 =
2147488647
Maka nilai m harus lebih satu integer, atau :
m = 232
1
−
+
2147 .483.648
=
•
1
Untuk mesin computer system 1130/1800 IBM yang dikenal dengan 16 BITS Words maka untuk memilih m adalah : m = 216 −1
•
= 32.768
Sedangkan untuk memilih microcomputer dengan 8 BITS akan digunakan : m = 2 8 −1
•
= 128
Dengan nilai m ini akan merupakan pembagi dari nilai (a x ZI ) yang mengikuti operasi modulo.
Hal ini akan menjadikan mesin computer hanya dapat dapat tertinggi dengan integer m - 1 dan apabila produk – produknya lebih besar dari nilai – nilai ini akan mengakibatkan overflow atau hang. b. Pemilihan konstanta multiplier : a harus tepat
Pemilihan nilai a harus bilangan prima terhadap m. A juga harus bilangan ganjil ( Odd
•
). Pemilihan yang terbaik adalah dengan rumus
a=2b
2
±3
yang lebih mendekat
pada ketepatan. Untuk sistem IBM 1130/1800 dengan : Bits akan Diperoleh
•
a
= 2 16 2 ± 3 = 2 8 + 3 = 259
Dan untuk mikro komputer dengan 8 Bits, maka akan diperoleh :
•
a
= 2 82 ± 3 = 24 + 3 = 16 + 3 = 19
Untuk
kebanyakan mikro komputer.
Z Z c. Pemilihan untuk 0 , yang dikenal dengan : SEED = 0 mengharuskan relative belakangan prima terhadap m. Hal ini dapat diperhatikan dengan mudah apabila dicari untuk m adalah angka berpangkat 2 ( dua
Z angka exporer dari angka 2. Dengan demikain untuk 0 adalah setiap
)
angka – angka yang ganjil ( odel number ) seperti : I SEED
= Z 0
= 12357
Dapat diambil sembarang asalkan bilangan ganjil, dan biasanya cukup besar. d. Bilangan c yang dipilih harus bukan merupakan kelipatan dari m dan juga harus bilangan ganjil. Sebgai contoh 1 =
Z i
+1 =
a Z 1
+ c mod m
Bila digunakan mikrokomputer dengan 8 bits. Jadi :
= 12357 a = 19 m = 128 c = 237
Zo
Operasi module = Random Number •
Z 1 = (19 x12357 x 237) mod 128
= 235020 – 235008 R1
= 12
Z 2
•
=
=
12
= 0.09375
128
19 x 12 + 237 mod 128
= 465 – 384 R2
= 81 •
Z 3
=
=
81 128
= 0.6328
19 x 81 + 237 mod 128
= 1776 – 1664
= 112
R3
=
112 128
= 0.875
, dan seterusnya.
2.3 Mixed Pseudo RNG
Pseudo Random Number ini dapat dirumuskan dengan : 3
Z n
=a
n
Z o
+
−1 . C ( mod . m ) a −1
an
a. Rumus Rumus Pseudo Pseudo Rando Rando Number Number Generator Generator ini adalah adalah dengan dengan syarat syarat utama utama n harus sejumlah bilangan integer ( bulat ) dan lebih besar dari nol, rumus ini dikenal juga dengan nama “ Linier Congruential R>N>G “. b. Namun apabil apabilaa nilai C = 0 maka maka akan dipero diperoleh leh rumus rumus yang yang dikenal dikenal : Multiplicati Multiplicative ve Congruen RNG. Rumus Multiplicative ini cukup baik untuk masa – masa yang akan dating karena sedikit sekali stronge memori yang dibutuhkan. c. Penjela Penjelasan san : MIXE MIXED D CONGR CONGRUEN UENTAL TAL GENERA GENERATOR TOR Dengan beberaapa kondisi syrat – syaratnya sebagai berikut :
d.
•
C = adalah bilangan relative prima terhadap n
•
a = 1 ( mod.q ) untuk setiap faktor prima q dari m
•
a = 1 ( mod 4 ) apabila 4 adalah suatu faktor dari m
Kondisi 1 berarti bahwa pembagi umum yang terbesar dari c dan m adalah satu. Dan kondisi ini mudah dapat dicapai.
e.
Kondisi 2 berarti : a- q
Apabila : k =
a = 1 q
a q akan dapat diperoleh untuk : a
A = 1 + qk Dimana q adalah faktor Prima dari m. f. Kond Kondis isii 3 : bera berart rtii a = 1 + 4k 4k Apabila : m/4 = adalah integer Artinya m bilangan bulat dapat dibagi 4
3.
Pembangkit Bi Bilangan Ra Random
Dalam simulasi, terutama dalam proses memodelkan sistem yang mempunyai sifat probabilistik, penggunaan bilangan random sangat menentukan jalannya proses tersebut. Variabel yang mempunyai sifat probabilistik ditirukan sifat acaknya (randomness) melalui urutan bilangan random ( u 1 , u 2 , , u i ) yang mempunyai sifat saling bebas (independent) dan terdistribusi seragam (uniform) dalam interval (0,1) (Watson dan Blackstone, 1989; Rubinstein dan Melamed, 1998; Law dan Kelton, Ke lton, 2000). Pada awal perkembangan simulasi, urutan bilangan random yang memiliki sifat acak tersebut dibangkitkan dengan cara-cara manual seperti melemparkan mata uang, melemparkan dadu, menarik kartu, memutar rolet. Kemudian dalam perkembangan selanjutnya digunakan alatalat mekanis-fisis-elektronis, seperti Noise Diode dan Geiger Counter yang terhubung dengan komputer, untuk menirukan sifat acak tersebut. Hal ini berkembang karena adanya pandangan umum yang menyatakan bahwa hanya peralatan elektronis atau mekanis saja yang bisa menghasilkan bilangan random yang memiliki ‘sifat acak yang sebenarnya’. Meskipun sampai sekarang peralatan tersebut masih dipakai untuk alat-alat perjudian dan lotere, tetapi peralatan seperti itu tidak digunakan lagi untuk keperluan simulasi, karena terlalu lama dalam pembangkitannya, urutan bilangan yang dihasilkan tidak dapat diulang, dan urutan bilangan yang dihasilkan menunjukkan sifat yang tidak saling bebas dan bias (Rubinstein dan Melamed, 1998). Perkembangan terakhir yang digunakan untuk membangkitkan urutan bilangan ra ndom adalah dengan menggunakan persamaan rekursif tertentu, yang lebih dikenal dengan nama pembangkit bilangan random ( Random Number Generator ). ). Penggunaannya dalam program komputer sangat disukai karena sangat cepat, dapat mengulang hasil urutan bilangan yang diperoleh, dan hanya membutuhkan sumber daya yang kecil. Karena persamaan yang digunakan tetap, pembangkit bilangan random dalam kenyataannya menghasilkan urutan yang tetap pula. Akan tetapi karena urutan tersebut mempunyai sifat statistik tertentu yang
dapat menirukan bilangan random yang sebenarnya, urutan bilangan random yang dihasilkan tetap dapat digunakan untuk menirukan sifat acak. Oleh karena itu pula, urutan bilangan random yang dihasilkan oleh pembangkit bilangan random sering diberi nama bilangan random semu ( pseudorandom ). (Rubinstein dan Melamed, 1998; Law dan Kelton, pseudorandom number ). 2000). Saat ini terdapat beberapa jenis pembangkit bilangan random yang biasa digunakan, antara lain: Linear Congruential Generator (LCG), Multiple Recursive Generator (MRG), dan Non
Linear Generator (NLG). Untuk membangkitkan urutan bilangan random u 1 , u 2 , , u i , MRG menggunakan persamaan rekursif dengan bentuk umum: x i
= ( a + a x i − + a x i − +
ui
=
0
1
1
2
2
+ ak x i − k ) mod m
(1)
x i m
(2)
x0
sering disebut sebagai Seed dari urutan bilangan random tersebut. Untuk k = 1 , persamaan 1 akan berubah menjadi: x i
= ( ax i − + c) mod m 1
(3)
merupakan bentuk umum persamaan rekursif LCG. Sedangkan dalam persamaan rekursif terdapat bentuk nonlinear, pembangkit bilangan r andom itu digolongkan dalam NLG (L’Ecuyer, 2001). Untuk setiap jenis pembangkit bilangan random, penentuan besarnya parameter yang digunakan (misal: a, c, m, dan
x0
dalam LCG) merupakan hal yang penting untuk
menghasilkan urutan bilangan random yang memiliki sifat saling bebas dan seragam (Law dan Kelton, 2000). 3.1 3.1
Uji Uji Emp Empir iris is-S -Sta tati tist stik ik Bila Bilang ngan an Rand Random om
Secara umum, Bilangan Random yang ‘baik’ harus memiliki sifat-sifat : periode perulangan yang panjang, lolos uji empiris-statistik yang menunjukkan keseragaman dan kebebasan, mudah diaplikasikan ke bahasa pemrograman tingkat tinggi standar, dan urutan bilangan tersebut bisa diulang kapan dan di mana pun (L’Ecuyer, 1997). Dalam melakukan uji keseragaman dan kebebasan terdapat kontradiksi antara asumsi bahwa urutan bilangan tersebut saling bebas dan seragam dengan kenyataan bahwa urutan bilangan tersebut dibangkitkan dengan persamaan yang tertentu sehingga menghasilkan urutan yang deterministik dengan periode perulangan yang deterministik pula. Hal ini yang menyebabkan terdapat banyak sekali uji empiris-statistik yang bisa dilakukan untuk menunjukkan kedua hal tersebut, dan dengan lolos dari uji-uji tersebut tidak dapat menjamin bahwa suatu pembangkit bilangan random merupakan pembangkit yang sempurna (L’Ecuyer, 1997).
Semakin banyak suatu pembangkit bilangan random lolos dari bermacam uji yang dilakukan hanya memperbesar keyakinan penguji bahwa pembangkit tersebut merupakan pembangkit yang diduga baik. Dapat dikatakan bahwa pembangkit yang jelek adalah pembangkit yang tidak lolos dari uji empiris sederhana dan pembangkit yang baik adalah pembangkit yang hanya tidak lolos dari uji empiris yang kompleks (L’Ecuyer, 1998). Dua jenis uji empiris sederhana yang cukup dikenal adalah uji keseragaman ( uniformity test ) dan uji kebebasan ( independence test ). ). Yang termasuk uji keseragaman antara lain adalah uji frekuensi ( frequency frequency test ) seperti uji Kolmogorov-Smirnov dan uji Chi-Square. Sedangkan yang digolongkan sebagai uji kebebasan adalah uji jalan ( runs test ) : naik dan turun ( runs up
and runs down ), di atas dan di bawah mean ( runs above and below mean ), dan uji autokorelasi (autocorrelation test ) (Banks, et. al, 2001).
a.
Uji Kolmogorov-Smirnov
Uji ini membandingkan antara c.d.f. distribusi uniform kontinu, F ( x ) , dengan c.d.f distribusi empiris dari N pengamatan, F ( x )
= x , 0 ≤ x ≤ 1
SN ( x )
n( Ri
=
SN ( x )
. Secara definisi,
(4)
≤ x )
N
(5)
Uji ini didasarkan pada harga terbesar dari nilai mutlak selisih dari distribusi empiris dan teoritis dalam interval batas distribusi tersebut, yaitu : D = max F ( x ) − SN ( x )
(6)
Hipotesis bahwa distribusi empiris merupakan sampel dari distribusi teoritis akan ditolak D
apabila b.
>D
α
, dengan
α
adalah besarnya tingkat keyakinan.
Uji Chi-Square
Uji ini membandingkan antara jumlah bilangan yang berada pada kelas-i ( ekspektasinya ( n
2
χ α
=∑ i =1
Ei
) dengan
), yang menggunakan statistik berikut ini :
( Oi − E i ) Ei
Oi
2
(7)
Untuk distribusi uniform, jumlah kelas n dan jumlah bilangan N, nilai ekspektasi seluruh kelas dapat ditentukan dengan :
Ei
=
N n
(8)
2 χ α Distribusi sampling dari statistik
c.
adalah distribusi chi-square dengan n – 1 derajat bebas.
Uji Runs Up and Runs Down
Uji ini membandingkan antara jumlah total run naik dan turun dari suatu urutan bilangan dengan urutan bilangan yang benar-benar random. Suatu run didefinisikan sebagai urutan kejadian yang sama yang diawali dan diakhiri dengan kejadian yang berbeda. Sebuah run naik terdiri dari serangkaian bilangan yang semakin lama semakin besar, sedangkan run turun terdiri dari serangkaian bilangan yang semakin mengecil. Jika a adalah jumlah total run dalam urutan random yang saling bebas sejumlah N bilangan, mean dan varians dari a adalah µ a
2
σ a
= =
2N
−1
3 16N
(9)
− 29
90
(10)
Untuk N yang besar ( N
≥ 20), distribusi dari a adalah distribusi normal. Sehingga untuk
menguji urutan bilangan tersebut merupakan urutan random atau bukan digunakan statistik berikut ini : Z 0
=
a − µ a
dengan
σ a
Z0
(11) terdistribusi normal standar. Sehingga hipotesis bahwa suatu urutan bilangan
random saling bebas akan ditolak bila
Z 0
> Z / α
2
atau
Z 0
< Z −α / 2 α
,
adalah besarnya
tingkat keyakinan. d.
Uji Runs Above and Below Mean
Uji ini membandingkan antara jumlah total run di atas mean dan jumlah total run di bawah mean dari suatu urutan bilangan dengan urutan bilangan yang benar-benar random. Sebuah
run di atas mean terdiri dari serangkaian bilangan yang lebih besar dari mean urutan bilangan tersebut, sedangkan run di bawah mean terdiri dari serangkaian bilangan yang lebih kecil dari mean urutan bilangan tersebut. Jika n 1 adalah jumlah total run di atas mean, n 2 adalah jumlah total run di bawah mean, dan b adalah jumlah total run dalam urutan random yang saling bebas sejumlah N bilangan, mean dan varians dari b adalah
µ b
= =
2
σ b
2n1n2
N
+
1 2
2n1n2 ( 2n1n2
N
2
(12)
− N)
( N − 1)
(13)
Untuk n 1 atau n 2 yang besar ( n1
≥ 20 atau
n2
≥ 20), distribusi dari b adalah distribusi
normal. Sehingga untuk menguji apakah urutan bilangan tersebut merupakan urutan random atau bukan digunakan statistik berikut ini:
=
Z 0
b − µ b σ b
dengan
Z0
(14) terdistribusi normal standar. Sehingga hipotesis bahwa urutan bilangan random
saling bebas akan ditolak bila
Z 0
> Z /
α 2
atau
Z 0
< Z −α / 2
, dengan
α
besarnya tingkat
keyakinan. e.
Uji Autokorelasi
Uji ini akan melihat apakah terdapat korelasi antara setiap m bilangan dari urutan bilangan yang dimulai dari bilangan ke-i. Jadi, koefisien autokorelasi korelasi di antara bilangan
R i , R i + m , R i + 2 m ,
, R i + ( M +1) m
ρ im
akan melihat ada tidaknya
. Besarnya M adalah bilangan bulat
terbesar yang memenuhi persamaan i + ( M + 1) m ≤ N , dengan N adalah jumlah bilangan dalam urutan tersebut. ˆ Untuk harga M yang besar, distribusi dari estimator ρ im akan terdistribusi normal jika harga
R i , R i + m , R i + 2 m ,
, R i +( M +1) m
ˆ tidak berkorelasi. Persamaan untuk estimator ρ im dan standar
deviasinya adalah sebagai berikut : M R i + km R i + ( k +1) m − 0.25 ρˆ im = ∑ M + 1 k =0
1
σ ρˆ = im
13M + 7 12( M + 1)
(16)
Sehingga dengan statistik berikut ini, Z0
=
ρˆ im σ ρˆ
im
(17)
(15)
terdistribusi normal standar, dapat diambil kesimpulan bahwa hipotesis urutan bilangan random saling bebas akan ditolak bila
Z0
>
Z
α
/2
atau
Z0
< Z −α / 2 , α
adalah besarnya tingkat
keyakinan. 3.2 3.2
Pemb Pemban angk gkit it Bila Bilang ngan an Rand Random om dala dalam m BAS BASIC IC
Bahasa Pemrograman BASIC menyediakan sebuah fungsi intrinsik yang dapat membangkitkan bilangan random uniform (0,1) yaitu fungsi RND( Seed Seed ). Bilangan random yang dibangkitkan mempunyai jenis real single precision , atau dengan ketelitian sampai 7 desimal. Penggunaan Seed bersifat opsional, bisa digunakan bisa juga tidak. Dengan kata lain bila Seed tidak digunakan, secara otomatis pembangkit bilangan random tersebut menggunakan nilai default yang telah ada. Dari homepage Microsoft (2001) diketahui bahwa dalam Microsoft Visual BASIC mulai versi 1.0 sampai 6.0 menggunakan persamaan rekursif berikut ini : xi
= (1140671485x i−1 + 12820163) mod 2 24
ui
=
(18)
xi 2
24
(19)
dan menggunakan harga 327680 sebagai default Seed (sebagai harga pemanggilan fungsi tidak dimasukkan suatu harga).
x0
bila dalam
DAFTAR PUSTAKA Thomas j. Kakiay.,2004, Pengantar Sistem Simulasi , Andi, Yogyakarta. Www.Google.com