TEKNIK SIMULASI FAKULTAS TEKNIK INFORMATIKA UNIVERSITAS INDRAPRASTA PENDAHULUAN • TUJUAN MEMPELAJARI SIMULASI Melalui kuliah ini diharapkan kita dapat mempelajari suatu sistem dengan memanfaatkan komputer untuk meniru (to simulate) perilaku sistem tersebut • CARA MEMPELAJARI SISTEM – Sistem dapat dipelajari dengan pengamatan langsung atau pengamatan pada model dari sistem tersebut. – Model dapat diklasifikasikan menjadi model fisik dan model matematik – Model matematik ada yang dapat diselesaikan dengan solusi analitis, ada yang tidak. Bila solusi analitis sulit didapatkan maka digunakan SIMULASI SISTEM Eksperimen dengan sistem sebenarnya Model Fisik Solusi Analitis Eksperimen dengan model Model Matematik SIMULASI DEFINISI – DEFINISI : • SISTEM Sekumpulan obyek yang tergabung dalam suatu interaksi dan inter-dependensi yang teratur. Sistem dibedakan menjadi dua tipe yaitu sistem diskrit dan sistem kontinu. • MODEL Penyederhanaan dari sistem yang akan dipelajari. • SIMULASI Suatu prosedur kuantitatif, yang menggambarkan sebuah sistem, dengan mengembangkan sebuah model dari sistem tersebut dan melakukan sederetan uji coba untuk memperkirakan perilaku sistem pada kurun waktu tertentu. Klasifikasi simulasi dalam tiga dimensi: • Model Simulasi Statik vs. Dinamik • • Model statik: representasi sistem pada waktu tertentu. Waktu tidak berperan di sini. Contoh: model Monte Carlo. Model dinamik: merepresentasikan sistem dalam perubahannya terhadap waktu. Contoh: sistem conveyor di pabrik. Model Simulasi Deterministik vs. Stokastik Model deterministik: tidak memiliki komponen probabilistik (random). Model stokastik: memiliki komponen input random, dan menghasilkan output yang random pula. Model Simulasi Kontinu vs. Diskrit Model kontinu: status berubah secara kontinu terhadap waktu, mis. gerakan pesawat terbang. Model diskrit: status berubah secara instan pada titik-titik waktu yang terpisah, mis. jumlah customer di bank. Klasifikasi simulasi dalam tiga dimensi: Model yang akan dipelajari selanjutnya adalah diskrit, dinamik, dan stokastik, dan disebut model simulasi discrete-event. • Simulasi discrete-event: pemodelan sistem dalam perubahannya terhadap waktu di mana variabel-variabel status berubah secara instan pada titik-titik waktu yang terpisah. Penggunaan Simulasi : • Alternatif terakhir, bila cara lain tak dapat digunakan. • Pada kenyataannya, berdasarkan hasil riset di US tahun 1971, dari 1000 perusahaan : – 20 % (paling banyak) menggunakan teknik Simulasi, – 21% menggunakan Linier Programming, – 2% menggunakan Inventori dan sisanya menggunakan berbagai teknik-teknik lain. Mengapa Perlu Simulasi ? 1. Simulasi adalah satu-satunya cara yang dapat digunakan untuk mengatasi masalah, jika sistem nyata sulit diamati secara langsung Contoh : Jalur penerbangan pesawat ruang angkasa atau satelit. 2. Solusi Analitik tidak bisa dikembangkan, karena sistem sangat kompleks. 3. Pengamatan sistem secara langsung tidak dimungkinkan, karena : - sangat mahal - memakan waktu yang terlalu lama - akan merusak sistem yang sedang berjalan. Kekurangan Simulasi : 1.Simulasi tidak akurat. Teknik ini bukan proses optimisasi dan tidak menghasilkan sebuah jawaban tetapi hanya menghasilkan sekumpulan output dari sistem pada berbagai kondisi yang berbeda. Dalam banyak kasus, ketelitiannya sulit diukur. 2.Model simulasi yang baik bisa jadi sangat mahal, bahkan sering dibutuhkan waktu bertahun-tahun untuk mengembangkan model yang sesuai. Kekurangan Simulasi : 3.Tidak semua situasi dapat dievaluasi dengan simulasi Hanya situasi yang mengandung ketidak-pastian yang dapat dievaluasi dengan simulasi. Karena tanpa komponen acak semua eksperimen simulasi akan menghasilkan jawaban yang sama. 4.Simulasi menghasilkan cara untuk mengevaluasi solusi, bukan menghasilkan cara untuk memecahkan masalah. Jadi sebelumnya perlu diketahui dulu solusi atau pendekatan solusi yang akan diuji. Aplikasi Studi Simulasi • Design dan analisa sistem manufaktur • Mengetahui kebutuhan sofware dan hardware • • • • • • untuk sebuah sistem komputer. Mengevaluasi sistem persenjataan baru, dalam bidaang militer Menentukan pengaturan dalam sistem inventory/persediaan. Mendesign sistem transportasi Mendesign sistem komunikasi Mengevaluasi sistem pelayanan dalam bidang perbankan. Mengevaluasi sistem ekonomi dan finansial. Pendekatan Tiga Langkah untuk membangun Model Simulasi yang valid dan dapat dipercaya • Langkah 1. Membangun sebuah model dengan usaha melibatkan informasi semaksimal mungkin. • Berdiskusi dengan para ‘pakar’ sistem • Melakukan observasi terhadap sistem • Memanfaatkan Teori yang ada • Memanfaatkan hasil dari Model simulasi yang sama dan relevan • Menggunakan pengalaman atau intuisi • Memanfaatkan Teori yang ada • Memanfaatkan hasil dari Model simulasi yang sama dan relevan • Menggunakan pengalaman atau intuisi • Langkah 2. Menguji asumsi-asumsi model secara empiris Jika distribusi probabilitas secara teoritis cocok dengan observasi dan digunakan sebagai input untuk model simulasi, dapat diuji dengan pembuatan grafik dan uji goodness-of-fit Jika beberapa himpunan data diobservasi untuk fenomena random yang sama, maka perbaikan dari penggabungan data tersebut dapat ditentukan dengan uji Kruskal-Wallis Salah satu utiliti yang sangat berguna adalah analisis sensitivitas • Langkah 3. Menentukan seberapa representatif data output Simulasi VALIDASI, VERIFIKASI, DAN DISAIN SIMULASI • Verifikasi: Menentukan program komputer simulasi bekerja sebagaimana mestinya, yaitu sama dengan men-debug program komputer. Verifikasi memeriksa penerjemahan model simulasi konseptual (mis., flowchart dan asumsi-asumsi) menjadi program yang berjalan dengan benar. • Validasi: Berkenaan dengan menentukan apakah model konseptual simulasi (bukan program komputer) merupakan representasi yang akurat dari sistem yang dipelajari. Jika model simulasi dan hasilnya diterima oleh manajer/client sebagai valid, dan digunakan sebagai alat bantu dalam pengambilan keputusan, berarti model tersebut credible. Waktu dan hubungan dari Validasi dan Verifikasi : Establish Validasi Verifikasi Model Konseptual Sistem Analisa & Data 1,2,3 Validasi Tersedia hasil yang ‘Benar’ Program Simulasi Pemrogra man 4 kepercayaan Implemen -tasi hasil Menjalankan Model Memberikan Hasil 5,6,7,8 ,9 10 Prinsip-prinsip Pemodelan Simulasi yang Valid Umumnya tidak diperlukan adanya korespondensi satu-satu antara setiap elemen sistem dengan elemen model. Acuan untuk menentukan tingkat detil model simulasi: - Di awal studi, definisikan dengan hati-hati: 1. isu yang akan diteliti 2. pengukuran kinerja untuk evaluasi 3. konfigurasi sistem alternatif - Gunakan analisis “pakar” dan analisis sensitifitas untuk membantu menentukan tingkat detil model. - Mulailah dengan detil tingkat “menengah”, yang dapat diubah jika perlu. Prinsip-prinsip Pemodelan Simulasi yang Valid - - Jangan mulai dengan terlalu banyak detil, tetapi model tersebut juga harus punya tingkat detil yang cukup agar credible. Tingkat detil model harus konsisten dengan jenis data yang tersedia. Waktu dan biaya merupakan faktor utama dalam menentukan detil model. Jika jumlah faktor (aspek yang diteliti) pada studi cukup besar, gunakan model simulasi “kasar” atau model analitik untuk mengidentifikasi faktor-faktor yang penting sebelum mengembangkan moel simulasi yang detil. Verifikasi Program Komputer Simulasi Delapan teknik yang dapat digunakan untuk mendebug program komputer dari model simulasi: • Teknik 1: Dalam mengembangkan model simulasi, tulis dan debug program komputer dalam bentuk modul atau subprogram. • Teknik 2: Disarankan agar lebih dari satu orang membaca program komputer jika model simulasi yang dikembangkan besar. Penulis program itu sendiri mungkin tidak dapat memberikan kritik yang baik. Verifikasi Program Komputer Simulasi • Teknik 3: • • Jalankan simulasi dengan beberapa setting parameter input dan lihat apakah outputnya masuk akal. Teknik 4: Lakukan “trace”, di mana status sistem yang disimulasi, yaitu: daftar event, variabel status, cacahan statistik, dsb., dicetak setelah masing-masing event terjadi dan dibandingkan dengan perhitungan manual untuk melihat apakah program bekerja sebagaimana mestinya. Teknik 5: Jika mungkin, model harus dijalankan dengan asumsiasumsi yang disederhanakan di mana karakteristik yang sebenarnya diketahui atau dapat dihitung dengan mudah. Verifikasi Program Komputer Simulasi • Teknik 6: • • Pada beberapa model simulasi, akan sangat menolong jika ada animasi output simulasi yang dapat diteliti. Teknik 7: Tuliskan mean dan varians sampel untuk setiap distribusi probabilitas input simulasi dan bandingkan dengan mean dan varians yang diinginkan (mis., historikal). Langkah ini menentukan apakah nilai-nilai input dibangkitkan dengan benar dari distribusi-distribusi tsb. Teknik 8: Gunakan paket simulasi untuk memperkecil jumlah baris kode yang dibutuhkan. Pandangan Umum Mengenai Validasi 1.Ekperimen dengan model simulasi merupakan pengganti dari eksperimen dengan sistem yang ada atau yang diusulkan. Dengan demikian, tujuan ideal dari validasi adalah menjamin bahwa model simulasi cukup baik sehingga dapat digunakan untuk mengambil keputusan bagi sistem. 2. Kemudahan atau kesulitan proses validasi bergantung pada kompleksitas sistem yang dimodelkan dan apakah versi sistem tersebut sudah ada. 3. Model simulasi dari sistem yang kompleks hanya dapat merupakan pendekatan sistem yang sebenarnya. Pandangan Umum Mengenai Validasi 4.Model simulasi harus selalu dikembangkan untuk sekumpulan tujuan tertentu. Model yang valid untuk satu tujuan belum tentu valid untuk tujuan lainnya. 5. Catatan asumsi-asumsi model simulasi harus diupdate secara teratur, dan akhirnya menjadi laporan akhir. 6. Model simulasi harus divalidasi relatif terhadap ukuran-ukuran kinerja yang nanatinya dipakai untuk pengambilan keputusan. Pandangan Umum Mengenai Validasi 7.Validasi bukan sesuatu yang harus diusahakan setelah model simulasi selesai dikembangkan, melainkan, pengembangan model dan validasi harus dilakukan bersama-sama sepanjang studi simulasi. 8. Umumnya tidak mungkin melakukan validasi statistik antara data output model dan data output sistem ybs (jika ada), bergantung pada sifat data tsb. Pembangkit Bilangan Acak (Random Number Generator) • CARA MEMPEROLEH : – ZAMAN DAHULU, dgn cara : • Melempar dadu • Mengocok kartu – ZAMAN MODERN (>1940), dgn cara : membentuk bilangan acak secara numerik/ aritmatik(menggunakan komputer) , disebut “Pseudo Random Number” (bilangan pseudo acak). • PEMBANGKIT BILANGAN ACAK, HARUS : – Berdistribusi uniform(0,1) dan tidak berkorelasi antar bilangan. – Membangkitkan cepat, storage tidak besar – Dapat di “reproduce” – Periode besar, karena mungkin bil.acak dibangkitkan berulang Pseudo Random Number Generator • METODE KONGRUEN MULTIPLIKATIF Xn = (aXn-1) modulo m Dimana : – Bil. Pseudo dimulai dgn nilai awal X0 yang disebut benih. – a & m : bilangan bulat positif tertentu – aXn-1 dibagi dgn m dan sisanya diambil sebagai nilai Xn Pseudo Random Number Generator • Agar Xn berprilaku acak yang dapat dipertanggungjawabkan : – Modulo m dipilih sebesar mungkin untuk memperbesar periode – a dipilih agar korelasi antar Xn minimum – Benih Xo: bil. Bulat positif ganjil, Xo<m – Bil acak : Ui = Xn/m Metode Pembangkit Kongruen Campuran Xn = (aXn-1 + C) mod.m Pemilihan a,c, m dan x0 : • m = 2w-1 • a 2w/2 dan a 1 (mod 4) • c & X0 bil. Bulat positif ganjil < m (c<m , X0<m) Metode Pembangkit Kongruen Campuran Catatan: • Periode pembangkit multiplikatif m/4 • Pembangkit campuran dgn periode penuh (=m) jika : – m dan c pembagi bersamanya adalah 1 – Jika m habis dibagi oleh bil. q yang prima, maka (a-1) juga habis dibagi oleh q – Jika m habis dibagi 4 maka begitu pula (a-1) Contoh : • METODE KONGRUEN MULTIPLIKATIF misal komputer berkapasitas 12 bit word W = 12 m = 2 w-1 = 2 11 = 2048 a = 67 a 2 6 & a 3 (mod 8) misal : Xo = 129 X1 = (67)(129) mod 2048 = 451 X2 = (67)(451) mod 2048 = 1545 X3 = (67)(1545)mod 2048 = 1115 X4 = (67)(1115)mod 2048 = 977 Contoh : U1 = 451/2048 = 0,22015 U2 = 1545/2048 = 0,754395 U3 = 1115/2048 = 0,544434 U4 = 977/2048 = 0,477051 Periode : m/4 = 2048/4 = 512 U1 = U513 U2 = U514 Contoh : • METODE KONGRUEN CAMPURAN misal komputer berkapasitas 12 bit word a = 65 ( 2 6 & 1 mod 4 ) m = 2 12-1 = 2048 misal c = 1 , Xo = 129 X1 = {(65).(129)+1} mod 2048 = 194 X2 = {(65).(194)+1} mod 2048 = 323 X3 = {(65).(323)+1} mod 2048 = 516 X4 = {(65).(516)+1} mod 2048 = 773 U1 = 194/2048 = 0,094727 U2 = 323/2048 = 0,157715 U3 = 516/2048 = 0,251953 U4 = 773/2048 = 0,377441 VARIABEL ACAK DAN FUNGSI DISTRIBUSI PROBABILITAS • Variabel acak (random variable): variabel yang nilainya ditentukan oleh hasil sebuah eksperimen. Yaitu, variabel acak merepresentasikan hasil yang tidak pasti. • Variabel acak diskrit: variabel acak yang nilainya dapat dicacah (dihitung). Contoh: - Jumlah pembeli yang memasuki sebuah toko. - Jumlah televisi yang terjual pada periode tertentu. • Variabel acak kontinu: Variabel acak yang nilainya tidak dapat dicacah. Contoh: - Perpanjangan pegas jika ditarik. - Berat segenggam strawberry. • Distribusi probabilitas dari variabel acak diskrit adalah tabel, grafik, atau rumus yang menyatakan probabilitas setiap nilai yang mungkin dimiliki variabel acak. Contoh: Ada sebuah kuis dengan tiga pertanyaan dengan kemungkinan jawaban benar/salah. Ruang sampel kuis ini terdiri dari hasil Variabel Acak Diskrit Distribusi Binomial • Ciri: * Percobaan terdiri dari n ulangan • independen, yang dapat diklasifikasikan menjadi berhasil atau gagal * Probabilitas berhasil (p) dari satu ulangan ke ulangan lainnya konstan. Fungsi Probabilitas: • Nilai Ekspektasi: np • Varians: np (1 – p) Variabel Acak Diskrit Algoritma Binomial • Bangkitkan U • C=P/(1-P), I=0, pr=(1-P)n, F=pr • if U<F, then x=I, stop • Pr={C (n-i)/(i+1)}pr, F=F+pr, i=i+1 • Go to 3 Variabel Acak Diskrit Distribusi Poisson • Ciri: Dalam selang waktu T jumlah peristiwa terjadi independen terhadap jumlah kejadian yang terjadi pada waktu yang lain, dengan peluang kejadian tunggal selama periode waktu sangat singkat proporsional terhadap panjang interval waktu. Peluang lebih dari satu kejadian dlm waktu yang sangat singkat neglibible. Variabel Acak Diskrit • Fungsi Probabilitas : k e k! • Nilai Ekspektasi : • Varians : Algoritma: • Bangkitkan U U(0,1) • i=0, p=e- , F=P • if U<F then x=i stop • p=p/(i+1), F=F+P, i=i+1 • Go to 3 Variabel Acak Diskrit Distribusi Hipergeometri Ciri: Sampel acak dengan ukuran n dipilih dari populasi ukuran N, dimana sejumlah k dapat diklasifikasikan sukses dan N-k gagal. Fungsi Probabilitas : C M, x C N M ,n x C N ,n Variabel Acak Diskrit Nilai Ekspektasi: M n N Varians : nM N - M N n N 2 N 1 Distribusi Acak Kontinu Algoritma: • bangkitkan bilangan acak U1 dan U2 • Set t=-log(U1U2) • Bangkitkan bilangan acak U3 • X=tU3, Y=t-X Distribusi Eksponensial Fungsi Probabilitas : f (x) = ae-ax Prosedur Statistik untuk membandingkan data output dari observasi dunia nyata dan simulasi • Pendekatan Inspeksi Korelasi Pendekatan Inspeksi : Data Input Sistem Secara Historis Model Simulasi Sistem Aktual Data Output Sistem Data Input Sistem Secara Historis Perbandingan Data Output Model • Pendekatan Interval Konfidensi berdasarkan data independen • Pendekatan Time Series Contoh – Kasus 1 • Kasus Komputer On-Line Komputer segera merespon perintah yang diterimanya Perintah diterima melalui saluran komunikasi dengan kecepatan B perintah / detik Rata-rata setiap perintah terdiri dari b karakter. Sebagian perintah (k) membutuhkan jawaban rata-rata sebanyak r karakter. Setiap perintah diterima oleh buffer (sekaligus tempat mengirim jawaban) yang berdaya tampung maksimum m karakter per detik. Contoh – Kasus 1 • Proses sebuah perintah yang diterima membutuhkan 2000 instruksi. • Penyiapan jawaban membutuhkan program dengan 1000 instruksi. • Proses interupsi dalam melakukan transfer data baik ke dalam / ke luar komputer membutuhkan eksekusi 1000 instruksi. Contoh – Kasus 1 • Asumsi : 1. Terdapat 3 jenis komputer berdasarkan tingkat kecepatan : • kecepatan rendah (P1 = 25.000 instruksi/detik) • kecepatan sedang (P2 = 50.000 instruksi/detik) • kecepatan tinggi (P3 = 100.000 instruksi/detik) 2. Terdapat 4 ukuran buffer (m) = 1 , 2 , 5, dan 10 karakter • Permasalahan : • • Bila data harga diketahui maka mana rancangan yang termurah ? Rancangan komputer yang mana yang mampu mempertahankan aliran data ? Contoh – Kasus 1 • Solusi : • Akan dihitung berapa karakter per detik yang ditransfer dan • membandingkannya dengan jumlah instruksi yang harus dieksekusi setiap detiknya. • Berdasarkan kondisi yang ada : • Terdapat B perintah yang masuk dan kB jawaban yang ke luar per detik, sehingga akan membutuhkan Bb + kBr karakter per detik untuk melewati Buffer. • Kapasitas maksimum Buffer m karakter sehingga akan terdapat (Bb + kBr)/m interupsi per detik. Contoh – Kasus 1 Instruksi yang terjadi per detik: • untuk perintah masuk = 2000 x B • untuk jawaban = 10000 x kB • untuk interupsi = 1000 x B(b+kr)/m Jumlah Instruksi per detik (N) : N = 2000 x B + 10000 x kB + 1000 x B(b + kr)/m Contoh – Kasus 1 Jadi Model Matematikanya : N = 2000 x B + 10000 x kB + 1000 x B(b + kr)/m Simulasinya : Bila B = 5 perintah b = 15 karakter k = 10 % dari perintah yang memerlukan jawaban r = 50 karakter jawaban Contoh – Kasus 1 Maka rancangan komputer yang mampu mempertahankan aliran data yaitu : N P(i) N = 2000 x 5 + 10000 x 5 x 0.1 + 1000 x 5 (15 + 5)/m = 15000 + 100000/m P(i) 3 + 20/m P(i)/5000 20/m P(i)/5000 - 3 …. ( N P(i) ) ………..(1) Contoh – Kasus 1 Berdasarkan pers (1), dengan kondisi minimal akan diperoleh rancangan dengan alternatif sebagai berikut : 1. Komputer Kecepatan tinggi dengan Buffer 2 2. 3. karakter Komputer Kecepatan sedang dengan Buffer 5 karakter Komputer Kecepatan rendah dengan Buffer 10 karakter Contoh – Kasus 1 Bila memperhatikan harga dari komputer berdasarkan tingkat kecepatannya maka solusi optimal yang diperoleh dengan tetap mempertahankan aliran data yang ada yaitu : Rancangan Komputer Kecepatan rendah dengan Buffer 10 karakter Contoh – Kasus 1 Algoritma Kasus 1 : 1. Input data sistem. 2. Hitung jumlah instruksi yang dibutuhkan per detik untuk setiap alternatif buffer yang ada 3. Bandingkan setiap hasil langkah-2 dengan kecepatan maksimum dari setiap kemungkinan komputer yang tersedia. 4. Tetapkan rancangan sistem komputer yang mampu mempertahankan aliran data. Contoh – Kasus 2 • Kasus Komputer Real Time Diberikan suatu rancangan sebuah mesin pengolah data yang bekerja secara real time, yang terdiri dari komponen-komponen (lihat Gambar 2.1) : Terminal Masukkan, CPU, Memory, Sabuah saluran komunikasi dari CPU ke media penyimpan (disk), dan 3 buah media penyimpan. Contoh – Kasus 2 CPU Disk - 1 Disk - 2 Message Disk - 3 Memory Gambar 2.1. Rancangan Mesin - Real Time Contoh – Kasus 2 Spesifikasi perangkat keras dari komponen-komponen sistim : • Kecepatan CPU mengolah data bervariasi antara 6 • • • • milidetik (mdet) sampai dengan 14 mdet. Waktu yang dibutuhkan CPU untuk memasukkan perintah (message) ke dalam memori adalah 1 mdet. Panjang perintah berkisar antara 10 sampai 20 unit. Kapasistas memori 2000 unit. Waktu untuk mencari lintasan dari disket berkisar antara 40 - 2000 mdet. Contoh – Kasus 2 • Waktu untuk mencari sektor media penyimpanan berkisar antara 0 - 50 mdet. • Berkas yang dibutuhkan agar suatu perintah dapat dilayani terdistribusi secara merata ke ketiga media penyimpanan. • Waktu yang dibutuhkan oleh berkas untuk menempuh saluran komunikasi adalah 2 mdet. Contoh – Kasus 2 • Waktu untuk mencari sektor media penyimpanan berkisar antara 0 - 50 mdet. • Berkas yang dibutuhkan agar suatu perintah dapat dilayani terdistribusi secara merata ke ketiga media penyimpanan. • Waktu yang dibutuhkan oleh berkas untuk menempuh saluran komunikasi adalah 2 mdet. Contoh – Kasus 2 Asumsi dari komponen-komponen sistim : • Waktu kedatangan perintah berdistribusi eksponensial dengan rata-rata 50 mdet. • Berkas yang dibutuhkan oleh suatu perintah tersebar ke ketiga media penyimpanan dengan kemungkinan yang sama. • Panjang perintah berdistribusi uniform dari 10 - 20 unit. • Waktu proses berdistribusi normal dengan rata-rata 10 mdet dan standar deviasi 4 mdet. Contoh – Kasus 2 Pengendalian kerja sistim : • Perintah yang dibaca oleh CPU dimasukkan dalam antrian di memori. • Kemudian CPU mendecode perintah yang berada terdepan pada antrian di memori. • Bila saluran komunikasi dalam keadaan tidak terpakai maka berkas yang dibutuhkan oleh perintah yang sedang dilayani dapat ditransfer ke CPU untuk diolah. • Sebaliknya, bila saluran komunikasi dalam keadaan terpakai maka pelayanan ditunda sampai saluran komunikasi siap dan permintaan akan ditransfer berkas dimasukkan dalam antrian saluran komunikasi. Contoh – Kasus 2 Permasalahan : Bagaimana unjuk kerja dari sistim melalui pengukuran besaran-besaran sebagai berikut : • Waktu tunggu rata-rata, waktu tunggu maksimum, waktu tunggu minimum dari suatu perintah untuk mendapat layanan CPU, • Panjang antrian yang terjadi, • Utilisasi dari komponen-komponen sistim (waktu sibuk CPU, waktu sibuk saluran komunikasi, ratarata pemakaian memori). OFC-11: Pengertian Random Number SIMULASI PSEUDO RANDOM • Ciri2-nya – 1.Simulasi dengan mempergunakan bilangan random disesuaikan dengan fungsi generator Probabilitas – 2. Proses pseudo random menghasilkan bilangan random yang berada dalam distribusi peluang tertentu untuk dapat mendekati nilai dunia nyata yang berdasar fungsi distribusi peluang statistik tertentu. – 3. Distribusi Probabilitas Komulatif mempunyai dua bentuk yaitu bentuk diskrit dan kontinu. Phases in Simulation Study Problem formulation Model Formulation Data collection Data analysis Program Generation Model valid Fine model Experimental Design Analysis Simulation Results Contoh Program Generation ; diagram alir simulasi loading - unloading di pelabuhan laut Kapal tiba Kapal tiba Kapal Tunggu dilaut ada Tidak ada Kapal Tarik Tarik ke darmaga Tunggu didarmaga Tidak ada Bongkar muatan Kapal Tarik Kapal pergi ada Tarik ke laut lepas Penjelasan gambar diatas 1. Kapal akan tunggu dilaut bila kapal tarik tidak ada karena lagi dipakai. 2. Kapal akan tunggu didarmaga bila kapal tarik lagi dipakai. 3.Bila hendak mengetahui efektifitas dari kapal tarik, ada tiga waktu yang harus di-ketahui a. Lama waktu kapal tarik menarik kedermaga b. Waktu bongkar muatan kapal c. Waktu tarik dari darmaga kelaut. Simulasi dikembangkan untuk mengetahui 1. waktu rata2-nya, bila kapal tarik jumlahnya terbatas. kapal 2. Tidak diketahui kapal kapal-tarik siap utk menarik yang datang. 3. Waktu bongkar muatan tergantung kapasitas kapal yang datang. DATA YANG BERKAITAN DENGAN SIMULASI • 1. Koleksi data; data yang dikumpulkan adalah data dasar untuk membangun program simulasi, dan berkaitan dengan variabel random dalam simulasi. • 2.Analisis data; Tentukan fungsi generator untuk membentuk distribusi probabilitasnya secara komulatif. • 3. Buat histogram komulatif DISTRIBUSI PROBABILITAS PSEUDO RANDOM Distribusi probabilitas adalah nilai-nilai probabilitas dipergunakan untuk mewakili semua nilai yang dapat terjadi dari suatu variabel random X. Variabel random X adalah sesuatu yang nilainya ditentukan oleh perobahan dari proses yang berada diluar kontrol kita. Jumlah probabilitas dari semua kemungkinan kejadian harus sama dengan satu. Simbol probabilitas dinyatakan sebagai P(x=X) atau P(X) yaitu bilangan random dengan nilai dari 0 sampai dengan 1. Variabel random diskrit adalah semua nilai random dalam tabel dengan harga diskrit . Variabel random kontinyu adalah semua nilai pecahan yang dapat terjadi, tidak semuanya dalam tabel, dengan harga dinyatakan dengan fungsi kontinyu. TEORI PROBABILITAS; • Teori probabilitas selalu berhubungan dengan suatu kejadian khusus yang disebut kejadian random (random events). • Random events yaitu kejadian dimana outcome (keluaran) terjadi karena adanya kesempatan/chance, atau keluaran dugaan/ probability of the outcome. • Konsep dasar suatu probability of the outcome dapat dicari sebagai prosentasi waktu kapan kejadian outcome tersebut terjadi. (Outcome tergantung pada waktu).Misal tos mata uang dimana pada sebagian waktu (50% waktu tos) akan terbuka sisi salah satu muka dari mata uang tersebut. • Dua konsep yang berpengaruh terhadap teori probabilitas adalah; – Obyektif ; dimana probabilitas dihubungkan terhadap long run frequencies of occurance.(Pada waktu yang lama maka tos mata uang akan menghasilkan kemungkinan 50% untuk setiap sisis muka mata uang. – Subyektif; dijaga suatu tingkat kepercayaan (Degree of belief). Lanjutan Probabilitas; • Menghitung harga probabilitas; – P(x) = 1/ n! , Misal; • untuk mata uang koin P(x) = 1 / 2! = 0.50, yaitu pada tos mata uamg tersebut dilakukan dalam jumlah yang banyak akan terbukti bahwa masing masing akan bergantian sis muka yang keluar sebanyak 50%.(Buktikan). Contoh; Misalkan koin di-tos sebanyak 1000 kali, maka ekspektasi dari sisi muka yang akan keluar adalah masing masing 500 kali. Bila fair games dilakukan maka antara bandar dan penjudi akan sama sama menang. 25oCjanuari di daerah puncak bertemperatur 25 o C adalah • Probabilitas dari bulan 1/10, artinya – Telah diselidiki oleh biro statistik bahwa selama 10 tahun tiap bulan januari ada 1 bulan yang bertemperatur 25oC, atau – berdasar perubahan klimatologi maka setiap januari dalam perioda 10 tahunan akan ada 1 bulan dimana di Puncak bertemperatur 25oC. – Penggunaan probabilitas untuk mengukur Expected value • Expected value (w) = w1 p1 + w2p2 + ............... • Untuk koin dimana p1 + p2 = 1 , bila p1 untuk kemenangan (positif) dan w = w1 0.5 + w2 ( - 0.5) = 0 • p2 untuk kekalahan (negatif) maka Bila untuk tos koin diatas w1 = Rp 200, sedangkan w2 = Rp.100, maka w = 200 (0.5) - 100 (0.5) = Rp.50.- Artinya setiap main akan ada rata rata kemenangan sebesar Rp/50,- DISTRIBUSI PROBABILITAS; • • • • Distribusi probabilitas selalu berhubungan dengan suatu kejadian khusus yang disebut kejadian random (random events). Random events yaitu kejadian dimana outcome (keluaran) terjadi karena adanya kesempatan/chance, atau keluaran dugaan/ probability of the outcome. Konsep dasar suatu probability of the outcome dapat dicari sebagai prosentasi waktu kapan kejadian outcome tersebut terjadi. (Outcome tergantung pada waktu).Misal tos mata uang dimana pada sebagian waktu (50% waktu tos) akan terbuka sisi salah satu muka dari mata uang tersebut. Dua konsep yang berpengaruh terhadap teori probabilitas adalah; – Obyektif ; dimana probabilitas dihubungkan terhadap long run frequencies of occurance.(Pada waktu yang lama maka tos mata uang akan menghasilkan kemungkinan 50% untuk setiap sisis muka mata uang. – Subyektif; dijaga suatu tingkat kepercayaan (Degree of belief). Lanjutan Probabilitas; • Menghitung harga probabilitas; – P(x) = 1/ n! , Misal; • untuk mata uang koin P(x) = 1 / 2! = 0.50, yaitu pada tos mata uamg tersebut dilakukan dalam jumlah yang banyak akan terbukti bahwa masing masing akan bergantian sis muka yang keluar sebanyak 25 C 50%.(Buktikan). Contoh; Misalkan koin di-tos sebanyak 1000 kali, maka ekspektasi dari sisi muka yang akan keluar adalah masing masing 500 kali. Bila fair games dilakukan maka antara bandar dan penjudi akan sama sama menang. • Probabilitas dari bulan januari di daerah puncak bertemperatur 25 o C adalah 1/10, artinya o – Telah diselidiki oleh biro statistik bahwa selama 10 tahun tiap bulan januari ada 1 bulan yang bertemperatur 25oC, atau – berdasar perubahan klimatologi maka setiap januari dalam perioda 10 tahunan akan ada 1 bulan dimana di Puncak bertemperatur 25oC. Penggunaan probabilitas untuk mengukur Expected value Expected value (w) = w1 p1 + w2p2 + ............... Untuk koin dimana p1 + p2 = 1 , bila p1 untuk kemenangan (positif) dan w = w1 0.5 + w2 ( - 0.5) = 0 p2 untuk kekalahan (negatif) maka Bila untuk tos koin diatas w1 = Rp 200, sedangkan w2 = Rp.100, maka w = 200 (0.5) - 100 (0.5) = Rp.50.- Artinya setiap main akan ada rata rata kemenangan sebesar Rp/50,- PERBANDINGAN SIMULASI DENGAN OPTIMASI (?) • Model Simulasi – Input: • Nilai parameter dan keputusan – Proses: • Simulator – Output: • Ukuran efektivitas • Model Optimasi – Input; • Parameter – Proses: • Model optimasi matematika – Output: • Variabel keputusan yang optimal dan nilai optimal ukuran efektivitas Analisis Peluang Dalam Kasus Pseudo Random 1. Teori Peluang Peluang adalah suatu probabilitas (ukuran kecenderungan atas munculnya/terjadinya suartu peristiwa/kejadian/event. 2. Nilai probabilitas antara 0 dan 1 3. Komponen peluang; Event, Ruang sample,dan sample. Ringkasan Distribusi Peluang 1. Distribusi exponensial; 1. Rata rata = ß= 1/ λ 2. Variansi = ß 2 2. Distribusi Normal 1. Rata rata = µ 2. Variansi = σ2 3. Distribusi bernoulli; 1. Rata rata = P 2. Variansi = P(1-P) 3. Distribusi binomial; – Rata rata = nP – Variansi + nP(1-P) 4. Distribusi Poisson; 1. Rata rata = λ 2. Variansi = λ 5. Distribusi Uniform; – Rata rata = (B+A)/2 – Variansi = (B-A)2 / x D.P diskrit contohnya adalah D.P. Poisson. • Variabel X = jumlah kejadian pada interval waktu tertentu. (Mis. 1 hari terjual mobil 2 mobil,dst). • Bila rata2 banyaknya kejadian perinterval waktu = λ. • Jadi P(X)= λx e -λ / x! • contoh; jumlah mobil terjual setiap harinya akan mengikuti distribusi Prob. Poisson. HUBUNGAN X vs P(X) Disini hubungan D.P nya adalah Kontinyu dan berdistribusi Normal, dimana nilai P(X) dinyatakan untuk mewakili nilai variabel random X. P(X) f{P(X)} 0.20 0.15 0.10 0.05 f{P(X)}= a1 a2 a3 a4 m b4 1/(2πσ2)1/2 e -(x-µ)2/2σ2 b3 b2 b1 X Pembangkitan Bilangan Acak Random Number Generator • Definisi; Suatu algoritma yang digunakan untuk menghasilkan uruta-urutan angka angka random baik secara hitungan manual maupun komputasi elektronik (komputer) • Bilangan acak disesuaikan dengan besar probabilitas yaitu antara 0 s/d 1.0 dan berdistribusi seragam. • Syarat Pembangkitan Bilangan acak; – Bersifat random – Tidak ber-ulang (Degenerative) – Perioda ulang biasanya munculnya sangat panjang Metoda Pembangkitan Bilangan Acak • Manual Sederhana; – dengan lempar koin, ambil bola pingpong dalam keranjang secara acak, lempar dadu, putaran roullete. • Tabel bilangan acak. – Berupa daftar angka acak yang sudah diakui kebenaran acaknya • Menggunakan Komputer.; – Menggunakan algoritma komputer yang diprogram • Jenis bilangan acak – Murni; acak langsung dipergunakan contoh peristiwa simulasi Monte Carlo penjualan sepatu . – Tidak Murni (Pseudo random); dihasilkan acak dengan rumusan matematik, atau bilangan acak diperoleh berdasar hitungan distribusi statistik tertentu, Misal Poisson, Eksponensial, dsb. Jenis Bilangan Acak 1. Midsquare Method 1. Prosedur; 1. Tentukan Seed; angka random awal dari 4 digit angka random 2. Kuadratkan 3. Ambil empat digit yang ditengah 4. Kembali ke langkah 2 5. Ulang sebanyak bilangan acak yang di-inginkan 6. Contoh: Seed= 7812, (7812)2 , 51581124, (5811)2 Bentuk Tabulasi Midsquare method Zi Zi2 7182 U Bilangan acak terpilih - 51581124 5811 0.5811 33767721 7677 0.7677 58936329 9363 0.9363 Random Number Generator • Linear Conguential Generator (LCG) Rumus; Zi = (a Zi-1 + c ) mpd m Dimana a = multiplier, c = increment, Zo = Seed Zi = Sisa hasil bagi random number , m = angka modul; Syarat konstanta; – harga a > √m atau ; m/100 < a < m - √m – Harga c harus ganjil, tidak merupakan kelipatan dari angka m – Modul m harus bilangan yang tdak dapat dibagi (Bilangan prima) – Harga Seed harus angka integer ganjil dan besar. Ui = Zi /m Random Number Generator • Multiplicative Congruential Generator (MCG) – Rumus: Zi = (a Zi-1) mod m • Mixed Congruential Generator (Linier Congruential Random Number Generator); – Rumus; Zn = an Zo + (an – 1)/(a – 1). C (mod m) Linier Congruential Random Number Generator • Persyaratan Persyaratan; N integer > 0, C = Bilangan prima – Bila C bilangan prima terhadap n berarti pembagi umum yang terbesar dari c dan m adalah 1. – .a= 1 (mod q) untuk setiap faktor prima q dari m berarti a – q (a/q) = 1, bila k = (a/q) maka a = 1 + q k, dimana q adalah faktor prima dari m – .a = 1 (mod 4) bila 4 adalah faktor dari m berarti a = 1 + 4k, bila m/4 = integer (bila m dibagi 4, hasilnya bulat) Cara Pemilihan mod m • Definisi; m angka integer terbesar hasil dari perkalian awal yang sebagai pembagi dengan angka integer lain. – Contoh: • Zo = 7, a = 5 c = 3 • Berdasar metoda Multiplicative Congruential Generator) ; Zi = (a Zi1) mod m • Z1 = (5x7+3) mod m, m = angka integer • Angka m dihasilkan dari 38 dibagi 2 angka prima nya adalah 16. • Z1 = 6, Z2 = (5x6+3) mod 16 , Z2 = 33 mod 16 =1 , Z3 = (5x1+3) mod 16 , z3 = 8 mod 16 = 8, Z4 = (5x8+3) mod 16 = 43 mood 16 = 11 • Bilangan random ; U1 = 6/16, U2 = 1/16, U3=8/16, U4= 11/16 Validasi Bilangan Acak • Pengujian dimaksudkan untuk melihat distribusinya, urutan ke-acakan-nya. • Metoda pengujian ; – Uji empiris; dilakukan dengan uji statistik; • Chi-Square test; Uji keseragaman • Run test; Ujui keacakan – UJi teoritis; dilakukan uji parameter pembangkit untuk pembangkitan secara menyeluruh. • Spectral test • Lattice test Chi Square test • Dibangkitkan 100 bilangan acak yang akan dikelompokkan dalam 10 kelompok kelas probabilitas. Kelas Frekuensi Bilangan acak Fo Frekuensi harapan Fe (Fo-Fe)2/Fe Chi-sqre. 0.0 – 0.09 0.1 – 0.19 0.2 – 0.29 0.3 – 0.39 0.4 – 0.49 0.5 – 0.59 0.6 – 0.69 0.7 – 0.79 0.8 – 0.89 0.9 – 1.00 9 12 10 11 8 10 10 7 12 11 10 10 10 10 10 10 10 10 10 10 0.1 0.4 0.0 0.1 0.4 0.0 0.0 0.9 0.4 0.1 0.1 100 100 2.4 Chi Square test • Pengujian: – Ho = data/acak terdistribusi seragam – H1 = Tidak terdistribusi seragam – Selang kepercayaan α = 0.05 (5%) • Nilai Chi-square tabel = 16.919 – Chi-square hitung = 2.4 artinya < nilai tabel – Kesimpulan terima Ho Run Test • Urutan ke-acak-an diuji • Cara uji; – Bilangan acak dalam urutannya bila harganya naik beri satu tanda +, sdebaliknya tanda -, seterusnya sampai seluruh bilangan acak. – Contoh; 40 bilangan acak sbb; • 0.43;0.32;0.48;0.23;0.90;0.72;0.94;0.11;0.14;0.67;0.61;0.25;0.45;0.56;0.87;0 .54;0.01;0.64;0.65;0.32;0.03;0.93;0.08;0.58;0.41;0.32;0.03;0.18;0.90;0.74;0. 32;0.75;0.42;0.71;0.66;;0.03;0.44;0.99;0.40;0.55. • Total run x = 26 (26 tanda + dan -) • Nilai harapan total run; – μ = (2n – 1)/3 = ((2x40)-1)/3 = 26.33 – Variansi jumlah run; σ2 = (16n – 29)/90 = ((16x40)-29)/90= 6.79 – Standar deviasi σ = 2.61 • Pengujian dengan distribusi normal; – – – – Ho : μ = 26.33, H1 = bukan μ Z = (a – μ)/ σ = (26 – 26.33)/ 2.61 = - 0.13 Batas selang-kepercayaan -1.96 s/d 1.96., berartyi harga Z ada didalamnya Terima Ho KESIMPULAN • Keuntungan simulasi adalah; – Model simulasi sebagai fasilitas untuk menangani masalah ketidak pastian – Dapat dilakukan ber-ulang kali, dengan me-robah nilai variabel – Angka acak dapat di-uji statistik – Hasil hanya merupakan kemungkinan yang dapat terjadi. • Kerugian: (?) • Model Simulasi mempergunakan suatu desain sistem dari kejadian yang sebenarnya dengan memasukkan sejumlah variabel kedalam variabel. Optimasi simulasi tergantung dari banyaknya dan interaksi variabel. Pembangkit Bilangan Acak Bilangan Acak Pseudo • Bilangan Acak Pseudo – Dibangkitkan dengan komputer – Komputer itu deterministik – bilangan acak dibangkitkan dengan menggunakan suatu algorithma – Efisien – Algoritma yang baik lulus untuk semua uji statistik Bilangan Acak Sebenarnya • Beberapa gejala alam muncul sebagai fenomena acak – Peluruhan Radio active, Dadu, Koin, Sumber Gangguan suatu WebCam CCD chip (LavaRnd.com) – Masalah: Tingkat Output Lambat Penggunaan Bilangan Acak • Simulasi – – – – Chaotic molecular behavior Nuclear detonations User behavior in network simulation … • Gambling Bilangan Acak Palsu (Pseudo) • Berasal dari pembangkitan peuabah acak yang menyebar seragam (uniform) dengan rentang (0,1) X ~ U (0, 1) • Peubah-peubah acak lainnya dapat dibangkitkan dari peubah acak ini – U dipakai untuk notasi peubah acak yang menyebar uniform (0,1) Sifat-sifat bilangan acak yang baik • Mendekati kondisi statistik yang ideal – Menyebar uniform (0, 1) – Rataannya sekitar 1/2, Ragamnya sekitar 1/12 – … (Akan kita pelajari kemudian) • Mudah dan cepat dalam membangkitkannya • Mempunyai siklus yang cukup panjang • Dapat diulangi hasilnya untuk tujuan debugging Teknik membangkitkan bilangan Acak • Metode Kongruensial Linear (Linear Congruential Method, LCG) – Sangat populer – Efisien Metode LCG • Xi+1=(aXi+c) mod m – X0 : Bibit (Seed) – a: Konstanta pengganda – c: Penambah (Increment) • Mixed congruential method: c>0 • Multiplicative congruential method: c=0 – m: Modulus – Ui = Xi/m bilangan acak ke-i Teladan • X0 = 27 • a = 17 • c = 43 • m = 100 Berapa panjang siklusnya? Metode LCG • bilangan-bilangan yang dibangkitkan diskret – I = { 0,1/m,2/m,…,m-1/m } • bilangan acak ini baik, jika m cuku besar (232) Siklus terpanjang • Bilamana m = 2b, siklus terpanjang adalah m, jika c < m and a = 1+4k, dimana k adalah bulat (integer) • Teladan: – m = 24 = 16 –c=3 –a=1 Siklus terpanjang (2) • Bila m = 2b, siklus terpanjangnya adalah m/4, jika c = 0 dan a = 3+8k atau a = 5+8k, dimana k adalah integer dan X0 merupakan bilangan ganjil • Teladan: – m = 64 – a = 13 – X0 = 3 Siklus terpanjang (3) • Bila m dalah bilangan prima dan c=0, siklus terpanjang yang dapat dicapai adalah m-1, ak-1 habis dibagi oleh m dand bilangan bulat terkecil k adalah m1 • Teladan: – m = 231-1 = 2,147,485,647 (siklusnya mencapai 2 milyar) – a = 75 Siklus terpanjang (4) • Dari penjelasan di atas dapat disimpulkan bahwa: – Sekuens bilangan acak yang dihasilkan akan memiliki siklus, dengan maksimum siklus adalah m – Bilangan a dan c harus dipilih hati-hati agar diperoleh pembangkit dengan panjang siklus maksimum, dan menghasilkan bilangan acak dengan sifat-sifat statistik yang baik Siklus terpanjang (5) • Tabel berikut ini memberikan kombinasi nilai-nilai m, a dan c Metode Midsquare (Von Neumann dan Metropolis, 1945) • Dimulai dengan bilangan 4-digit sebagai bibit (X0) • Kuadratkan bilangan itu untuk memperoleh 8-digit (bila perlu tambahkan 0 pada digit paling kiri, agar diperoleh persis 8-digit) • Ambil 4-digit ditengah-tengah untuk memperoleh bilangan 4 digit berikutnya X1, kemudian kuadratkan X1 dan ambil kembali 4-digit ditengah-tengah dan seterusnya dilakukan dengan cara yang sama Metode Midsquare (2) • Bilangan acak Ui diperoleh dengan menambahkan titik desimal disebelah kiri setiap nilai Xi (atau membaginya dengan 10000) Uji-uji untuk Bil. Acak • Uji Frequensi – Apakah bilangan acaknya uniform? – Menggunakan uji Kolmorov-Smirnov atau uji chikuadrat • Uji Runs – Semakin menaik dan semakin menurun? – Menggunakan uji chi-kuadrat • Uji Autokorelasi – Menguji korelasi diantara bilangan-bilangan itu Uji-uji untuk Bil. Acak (2) • Uji Gap – Menghitung banyaknya digit antar digit yang muncul berulang untuk suatu digit tertentu (gap) dan kemudian menggunakan uji Kolmogorv-Smirnov untuk membandingkan dengan nilai harapan gaps tersebut • Poker test – Menguji terjadinya pengulangan dari bilangan-bilangan yang dibangkitkan – Rangkain bilangan berikut memiliki banyaknya pengulangan yang tidak biasa • 0.255 0.577 0.331 0.414 0.828 0.909 Uji Keseragaman: KolmogorovSmirnov test • Secara teoritis F(x) = x, 0<x<1 • Suatu sampel n bilangan acak: U1,U2,…,Un, fungsi sebaran komulatif empirisnya (empirical cdf) adalah: • Sn(x)=(banyaknya U1,U2,…,Un yang x)/n • Sn(x) semestinya mendekati x bila n besar Uji-uji untuk Bil. Acak (3) • Untuk menguji keseragaman, bentuk hipotesisnya adalah H0: Ui ~ U[0,1] H1: Ui U[0,1] • Hipothesis nol, H0, dibaca sebagai bilangan-bilangan tersebut menyebar seragam pada interval [0,1]. Uji-uji untuk Bil. Acak (4) • Pada uji kebebasan (independence), bentuk hipothesisnya adalah; H0: Ui ~ independently H1: Ui independently • hipothesis, H0, dibaca bahwa bilanganbilangan tersebut menyebar secara bebas. Kegagalan menolak hipothesis nol berarti bahwa tidak ada cukup bukti menunjukkan adanya ketakbebasan yang terdeteksi berdasarkan uji ini. Uji Bil. Acak (5) Tingkat nyata (level of significance) = P(tolak H0 | H0 benar) biasanya, sama dengan 0.01 atau 0.05 (Hipothesis nol) Sebenarnya Benar Sebenarnya Salah Terima 1 - (Type II error) Tolak 1 - (Type I error) Uji Bil. Acak (6) • Uji Gap menghitung banyaknya digit antar pemunculun digit yang sama berturutan. (Teladan) panjang gap yang bersesuaian dengan digit 3. 4, 1, 3, 5, 1, 7, 2, 8, 2, 0, 7, 9, 1, 3, 5, 2, 7, 9, 4, 1, 6, 3 3, 9, 6, 3, 4, 8, 2, 3, 1, 9, 4, 4, 6, 8, 4, 1, 3, 8, 9, 5, 5, 7 3, 9, 5, 9, 8, 5, 3, 2, 2, 3, 7, 4, 7, 0, 3, 6, 3, 5, 9, 9, 5, 5 5, 0, 4, 6, 8, 0, 4, 7, 0, 3, 3, 0, 9, 5, 7, 9, 5, 1, 6, 6, 3, 8 8, 8, 9, 2, 9, 1, 8, 5, 4, 4, 5, 0, 2, 3, 9, 7, 1, 2, 0, 3, 6, 3 Note: ada delapan belas digit 3 pada barisan di atas ==> 17 gap, gap pertama panjangnya 10 Uji Bil. Acak (7) Kita akan hitung frekuensi gap, -contoh frekuensi gap dengan panjang 10 untuk digit 3P(gap 10) = P(tak 3) P(tak 3) P(3) , note: ada 10 bentuk P(tak 3), = (0.9)10 (0.1) Sebaran frekuensi teoritis untuk suatu urutan yang bersifat acak diberikan oleh F(x) = 0.1 (0.9)n = 1 - 0.9x+1 Note: amati frekuensi untuk semua digit bandingkan dengan frekuensi teoritis dan gunakan uji Kolmogorov-Smirnov. Uji Bil. Acak (8) (Teladan) Berdasarkan frekuensi kemunculan gap-gap, analisis 110 digits di atas untuk menguji apakah barisannya bebas (independent). Gunakan = 0.05. Total # gaps diberikan oleh banyaknya digit minus 10, jadi 110-10=100. Banyaknya gap bersesuaian dengan berbagai digit (0-9) adalah: Digit 0 1 2 3 4 5 6 7 8 9 # Gaps 7 8 8 17 10 13 7 total 100 8 9 13 Uji Bil. Acak (9) Contoh Uji Gap Panjang Gap - SN(x)| 0-3 4-7 8-11 12-15 16-19 20-23 24-27 28-31 32-35 36-39 40-43 44-47 Relative Cum. Relative Frequency Frequency Frequency F(x) 35 22 17 9 5 6 3 0 0 2 0 1 0.35 0.22 0.17 0.09 0.05 0.06 0.03 0.00 0.00 0.02 0.00 0.01 0.35 0.57 0.74 0.83 0.88 0.94 0.97 0.97 0.97 0.99 0.99 1.00 0.3439 0.5695 0.7176 0.8147 0.8784 0.9202 0.9497 0.9657 0.9775 0.9852 0.9903 0.9936 |F(x) 0.0061 0.0005 0.0224 0.0153 0.0016 0.0198 0.0223 0.0043 0.0075 0.0043 0.0003 0.0064 Uji Bil. Acak (10) Nilai kritis D adalah D0.05 = 1.36 / 100 = 0.136 karena D = max |F(x) - SN(x)| = 0.0224 adalah kurang dari D0.05, hipotesis nol yang menyatakan barisan digit tersebut bebas tidak ditolak, berdasarkan pada uji ini. Uji Kebebasan Bil Acak • Uji Run (Menaik dan Menurun) Perhatikan40 bilangan berikut; uji Kolmogorov-Smirnov dan Chi-square akan mengindikasikan bahwa bilangan-bilangan tersebut adalah seragam (uniformly distributed). Tetapi tidak demikian sebenarnya. 0.08 0.11 0.02 0.12 0.09 0.16 0.09 0.13 0.23 0.18 0.30 0.29 0.29 0.31 0.32 0.36 0.42 0.41 0.45 0.38 0.55 0.53 0.47 0.54 0.58 0.71 0.69 0.68 0.72 0.73 0.74 0.86 0.89 0.74 0.91 0.88 0.91 0.84 0.95 0.91 Uji Kebebasan Bil Acak •Sekarang bila urutannya adalah seperti di bawah ini, adakah sedikit alasan untuk mempertanyakan kebebasaanya (independence). 0.41 0.30 0.16 0.32 0.13 0.68 0.09 0.18 0.91 0.47 0.89 0.72 0.88 0.53 0.58 0.84 0.86 0.91 0.31 0.29 0.74 0.08 0.95 0.42 0.91 0.54 0.69 0.73 0.55 0.02 0.09 0.12 0.71 0.11 0.38 0.74 0.36 0.29 0.23 0.45 Uji Kebebasan Bil Acak • Perhatikanlah: • Banyaknya runs • Panjang runs • 0.41 0.68 0.89 0.74 0.36 0.54 • Banyaknya runs adalah 3, masing-masing panjangnya 2 runs menaik, 2 runs menurun dan 1 runs menaik, dilambangkan dengan ++--+ • Jadi runs adalah sekuens menaik atau menurun dari suatu barisan Uji Kebebasan Bil Acak • Note: Jika N adalah banyaknya bilangan-bilangan dalam barisan, maksimum banyaknya runs adalah N-1, dan minimum banyaknya runs adalah satu. • Jika “a” adalah total banyaknya runs pada suatu sekuens, rata-rata dan ragam (variance) untuk “a” diberikan oleh Uji Kebebasan Bil Acak a = (2n - 1) / 3 a2 = (16N - 29) / 90 Untuk N > 20, sebaran “a” akan mendekati 2 sebaran normal, a ~ N( ). a a, Pendekatan ini dapat digunakan untuk menguji kebebasan bilangan-bilangan yang dibangkitkan dari suatu pembangkit (generator). Z0 = (a - a) / a Uji Kebebasan Bil Acak Substitusikan a anda ==> Za = {a - [(2N-1)/3]} / {(16N-29)/90}, dimana Z ~ N(0,1) Daerah penerimaan untuk hipothesis kebebasan adalah -Z Z0 Z / 2 / 2 -Z / 2 Z / 2 Uji Kebebasan Bil Acak (Teladan) Berdasarkan runs menaik dan menurun, tentukan apakah barisan 40 bilanganbilangan berikut ini menolak hipothesis kebebasan, gunakan = 0.05. 0.41 0.68 0.89 0.94 0.27 0.19 0.72 0.75 0.16 0.28 0.18 0.01 0.32 0.82 0.53 0.31 0.13 0.57 0.63 0.29 0.74 0.08 0.95 0.42 0.91 0.54 0.69 0.73 0.55 0.02 0.18 0.04 0.62 0.01 0.47 0.83 0.36 0.36 0.23 0.45 Uji Kebebasan Bil Acak Barisan menaik dan menurunnya adalah sebagai berikut: + + + + + + + + + + + + + + + + + + + Ada 26 runs dalam barisan ini. Dengan N=40 dan 2 a=26, a a= {2(40) - 1} / 3 = 26.33 dan = {16(40) - 29} / 90 = 6.79 Maka, Z0 = (26 - 26.33) / Nilai kritisnya adalah Z0.025 = 1.96, jadi kebebasan bilangan-bilangan itu tidak dapat Uji Kebebasan Bil Acak • Uji Poker – didasarkan pada seberapa sering suatu digit berulang. Contoh: 0.255 0.577 0.331 0.414 0.828 0.909 • Note: sepasang digit yang serupa muncul pada setiap bilangan yang dibangkitkan. Uji Kebebasan Bil Acak Pada bilangan 3-digit, hanya ada 3 kemungkinan. P(3 digit berbeda) = P(2nd berbeda dari 1st) * P(3rd berbeda dr 1st & 2nd) = (0.9) (0.8) = 0.72 P(3 digit sama) = P(2nd digit sama dg 1st) P(3rd digit sama dg 1st) = (0.1) (0.1) = 0.01 P(tepat sepasang) = 1 - 0.72 - 0.01 = 0.27 Uji Kebebasan Bil Acak Combination, i Three different digits Three like digits Exactly one pair Observed Frequency, Oi 680 31 289 -----1000 Expected Frequency, Ei (Oi - Ei)2 ----------Ei 720 10 270 -----1000 2.24 44.10 1.33 ------47.65 Derajat bebas yang bersesuaian adalah banyaknya kelas dikurang satu. Karena 20.05, 2 = 5.99 < 47.65, berdasarkan uji ini kebebasan bilangan-bilangan itu ditolak. Uji Auto Korelasi • Menguji Korelasi setiap m bilangan. • Ri, Ri+m, Ri+2m, Ri+3m … Pembangkitan Peubah Acak Kontinu Metode Pembangkitan P.A. Kontinu • Semua teknik untuk membangkitkan p.a. diskret dapat digunakan untuk p.a. kontinu –Algoritma transformasi Invers –Metode penolakan Teknik Transformasi Invers • Bilangan acak merupakan sebuah contoh nilai dari p.a. kontinu U ~ Uniform (0, 1) • Cara membangkitkan p.a. ini adalah spesial, telah dibicarakan pada pertemuan 04, karena p.a. ini merupakan bahan baku untuk membangkitkan p.a. yang lain • Fungsi kepekatan peluang (fkp) untuk p.a. U ini adalah fU(x) = 1, 0 x 1 Teknik Transformasi Invers • Fungsi sebaran F untuk p.a. U, didefinisikan sebagai • Carilah fungsi sebaran untuk X ~ U(a, b) jawab: fkp untuk X adalah fX(x)=1/(b-a), axb x maka fungsi sebarannya adalah FU x P{U x) f U (t )dt x 0 x FX x P{ X x) a 1 xa f X (t )dt dt ba ba a x Teknik Transformasi Invers • Untuk setiap fungsi sebaran kontinu F dan U adalah bilangan acak, maka p.a. X yang berasal dari fungsi sebaran F tersebut didefinisikan oleh, X = F-1(U) • F-1 adalah invers dari fungsi F, sehingga F(x) = u Teknik Transformasi Invers • • Fungsi invers untuk F(X) = (X-a)/(b-a) adalah F-1(U) = (b-a)U + a Jadi algoritma untuk membangkitkan p.a. X ~ U(a, b) 1. Bangkitkan bilangan acak U 2. Set X = (b-a)U + a • Untuk fungsi sebaran lain berlaku cara yang sama Teknik Transformasi Invers Teladan #2 Bangkitkan p.a. x dengan fungsi kepekatan e-x , f(x) = 0 , Jawab: x F(x) = f(t) dt 1 - e-x , = 0 , x x<0 x x<0 Teknik Transformasi Invers set F(x) = U Kemudian penyelesaian untuk x adalah 1 - e-x = U e-x = 1 - U -x = ln(1 - U) x = - {ln(1 - U)} / or = - {ln(U)} / Teknik Transformasi Invers U1 = 1-e-x1 X1 = -ln(1-U1) Peragaan graphis untuk teknik transformasi invers Teknik Transformasi Invers • Algoritma pembangkitan p.a. X ~ Exp() 1. Bangkitkan bilangan acak U 2. Set X = - {ln(U)}/ • Soal Buatlah algoritma untuk membangkitkan p.a. X yang mempunyai fkp., f(x) = ex/(e-1), 0 x 1 Metode tolak-terima • Bila telah ada suatu metode untuk membangkitkan suatu peubah acak kontinu Y, dengan fkp. g(Y) • Berdasarkan metode ini digunakan untuk membangkitkan p.a. kontinu X, dengan fkp. f(X) • Pertama dibangkitkan p.a. Y, dan menerima nilai ini sebagai nilai p.a. X dengan peluang proporsional f(Y)/g(Y) Metode tolak-terima • Dicari suatu konstanta c terkecil yang memenuhi kondisi berikut: f ( y) c, untuk semua y g ( y) c = Max {f(y)/g(y)} kemudian X disimulasikan sebagai berikut mulai Bangkitkan Y~g Bankitkan U Apakah Uf(y)/cg(y) tidak ya X=Y Metode tolak-terima • Teladan Gunakan metode penolakan untuk membangkitkan p.a. X dengan fkp. f(x) = 20 x(1-x)3, 0<x<1 • p.a. Y dengan fkp. g(y) yang memiliki domain yang sama dengan fungsi f dan sudah kita kenal pembangkitannya adalah p.a. sebaran seragam (uniform) dengan interval (0, 1), tidak lain adalah bilangan acak U. Metode tolak-terima • Sehingga p.a. Y dengan fkp. g(y) = 1, 0<y<1 akan digunakan sebagai basis untuk membangkitkan nilai X f ( x) 20 x(1 x) 3 , turunan dari fungsi ini adalah g ( x) d f ( x) 20[(1 x) 3 3x(1 x) 2 ], dx g ( x) dengan menset persamaan ini dengan 0, maka diperoleh 1 nilai maksimum fungsi tersebut tercapai pada x 4 Jadi f(x)/g(x) 20(1/4)(3/4)3 = 135/64 c f(x)/{cg(x)} = {256/27}{x(1-x)3} Metode tolak-terima • Sehingga algoritmanya adalah 1. Bangkitkan bilangan acak U1 dan U2. 2. Jika U2 (256/27) U1(1-U1)3, set X = U1 dan stop 3. Kembali ke langkah 1 Note: bilangan acak U1 sebagai p.a. Y yang menyebar uniform(0,1)