Suatu Simulasi kejadian diskret (DES): Memodelkan sistem dimana statusnya hanya berubah pada titik waktu tertentu (diskret). Sistem Merupakan kumpulan obyek (entitas) yang masing-masing mempunyai sifat- sifat tertentu (properties) yang disebut sebagai atribut. Status Suatu kumpulan atribut (kombinasi atribut) atau variable status yang menyatakan entitas-entitas dalam sistem. Event Suatu kejadian dalam waktu yang bisa merubah status dari sistem. Suatu event akan memulai/memicu suatu aktivitas, yang terjadi selama entitas berada dalam suatu operasi/pekerjaan. Entitas, atribut, event dan aktivitas dan kaitan-kaitannya didefinisikan dalam model dari sistem. Contoh: Sistem Single Server Entitas: Pelanggan, Server Atribut pelanggan: layanan yang diperlukan Atribut server: kemampuan server(service rate) Event: kedatangan pelanggan, selesainya pelanggan dilayani server. Aktivitas: server melayani pelanggan, menunggu pelanggan. antrian server Pelanggan Kedatangan Selesai pelanggan Discrete Event Simulation Diskret event simulation: stokastik, dinamis dan diskret Stokastik = probalistik Waktu antar kedatangan dan waktu layanan adalah variabel random Mempunyai fungsi distribusi kumulatif Diskret = kejadian-kejadian dipisahkan oleh selang waktu. Variabel status berubah pada waktu tertentu Status sistem bisa berubah dalam jumlah terbatas titik dalam waktu. Titik-titik waktu ini adalah waktu dimana suatu kejadian terjadi. Dinamis = berubah dalam waktu Waktu simulasi (simulation clock) Menyimpan informasi nilai waktu pada saat proses simulasi. Suatu mekanisme memajukan waktu (berganti waktu) dari satu nilai ke nilai waktu berikutnya Waktu berikutnya = waktu dimana kejadian berikutnya terjadi. Mekanisme memajukan waktu Dasar dari semua studi simulasi adalah mekanisme untuk memodelkan bagaimana waktu berjalan. Setiap model berisi suatu variabel yang dinamakan internal clock atau simulation clock. Waktu bisa dimodelkan dalam beberapa cara dalam simulasi Bagaimana memajukan waktu? Waktu dalam kaitan event (next-event time advance) discrete event simulation Waktu dibagi dalam selang yang sama (fixed increment time advance) discrete time simulation Next event time advance Simulation clock diinisialisasi ke 0 Waktu terjadinya event berikutnya ditentukan Simulation clock diset ke waktu dari event yang lebih awal terjadi, dimana status dari sistem diperbaharui karena sudah terjadi event, Event yang baru saja terjadi, ditentukan waktu berikutnya akan terjadi. Simulation clock diset lagi ke waktu dari event yang lebih awal akan terjadi. Dst, proses diteruskan lagi sampai kondisi berhenti tercapai. Next event time advance Karena semua perubahan status terjadi hanya pada saat waktu terjadinya event, pada discrete-event simulation perioda waktu pada saat tidak ada event akan dilewati dengan mengatur nilai simulation clock ke waktu terjadinya event berikutnya. Next event time advance Untuk contoh server tunggal: ti = waktu kedatangan pelanggan ke i (t0 = 0) Ai = ti ti-1 = interval waktu kedatangan antara pelanggan ke (i-1) dan ke i Si = lama waktu server melayani pelanggan ke i Di = delay dalam antrian untuk pelanggan ke i ci = ti + Di + Si = waktu pada pelanggan ke i selesai dilayani dan keluar ei = waktu terjadinya event ke i ( dari semua jenis event) Next event time advance Semua kuantitas dari masing-masing variabel di slide sebelumnya pada umumnya akan menjadi variabel random. Dengan asumsi distribusi probabilitas dari waktu antar kedatangan A1, A2, ... dan waktu layanan S1, S2, ... diketahui mempunyai fungsi distribusi kumulatif FA dan FS. Next event time advance Pada waktu e0 = 0, server idle dan t1 (waktu kedatangan pelanggan pertama) didapatkan dengan membangkitkan A1 dari FA, (dan ditambahkan ke 0) Waktu simulasi di set ke event pertama e1 = t1 Pelanggan pertama datang dan server idle, maka dia langsung dilayani dan waktu dalam antrian D1 = 0, dan status server diubah dari idle ke busy. Waktu c1, saat pelanggan yang datang selesai dilayani, didapatkan dengan membangkitkan S1 dari FS dan menambahkannya ke t1. Next event time advance Waku kedatangan pelanggan kedua t2 didapatkan dari t2 = t1 + A2, dimana A2 dibangkitkan dari FA. Jika t2 < c1, waktu simulasi dimajukan dari e1 ke waktu event berikutnya e2 = t2. Karena pelanggan kedua mendapatkan server dalam kondisi busy, jumlah pelanggan mengantri ditingkatkan dari 0 ke 1 dan waktu kedatangan pelanggan ini disimpan. Waktu kedatangan pelanggan ketiga t3 juga ditentukan dari t3 = t2 + A3 Next event time advance Jika c1 < t3, waktu simulasi dimajukan dari e2 ke event berikutnya yaitu e3 = c1, dimana pelanggan kesatu selesai dilayani, keluar, pelanggan di antrian terdepan (waktu datang t2) mulai dilayani, dan lamanya dia di antrian dan waktu pelayanannya dihitung sebagai D2 = c1 t2 dan c2 = c1 + S2 (S2 dibangkitkan dari FS), dan jumlah pelanggan dalam antrian diturunkan dari 1 ke 0 Komponen dan organisasi model simulasi discrete-event Status sistem: kompulan variabel status untuk menyatakan kondisi sistem pada suatu waktu Simulation clock: Sebuah variabel yang memberikan nilai waktu simulasi Event list: Daftar dari event berikutnya yang akan terjadi Statistical counter Variabel-variabel yang digunakan untuk menyimpan informasi tentang performansi sistem Komponen dan organisasi model simulasi discrete-event Initialization routine Bagian program untuk inisialisasi simulasi pada waktu t=0 Timing routine Bagian program yang menentukan event berikutnya dari event list dan kemudian memajukan waktu simulasi ke waktu pada saat event terjadi. Event routine Bagian program yang memperbaharui status sistem pada saat suatu event terjadi. Komponen dan organisasi model simulasi discrete-event Library routine Sekumpulan sub program yang digunakan untuk membangkitkan nilai random dari distribusi probabilitas yang ditentukan sebagai bagian dari simulasi. Report generator Bagian dari program yang menghitung perkiraan dan menghasilkan laporan Main program Bagian program yang memanggil timing routine untuk menentukan event berikutnya dan mengalihkan kontrol ke event routine yang sesuai untuk memperbaharui status sistem. Bagian ini juga berisi bagian untuk menghentikan simulasi. Struktur data event Event disimpan secara terurut waktu Struktur data Bisa berbentuk list atau set atau antrian dengan data terurut berdasarkan waktu Berisi semua event yang akan terjadi E0 E1 E2 E3 Waktu T0 T1 T2 T3