Anda di halaman 1dari 17

Discrete Event Simulation

Materi
Discrete event simulation Simulasi server tunggal Simulasi terdistribusi Langkah-langkah membuat simulasi Jenis-jenis simulasi lain Keuntungan, kerugian dan kesalahan dalam simulasi

Discrete Event Simulation


Memodelkan sistem sejalan dengan perubahannya (evolusinya) dalam waktu, dengan sebuah representasi dimana variabel status berubah pada waktu tertentu.
Secara matematis bisa dikatakan: sistem hanya berubah pada sejumlah titik dalam waktu. Titik dalam waktu ini adalah titik-titik dimana event terjadi. Event didefinisikan sebagai kejadian instant yang bisa merubah variabel status sistem.

Discrete Event Simulation


Contoh:
Suatu layanan dengan pelayan (server) tunggal, akan diperkirakan waktu tunggu rata-rata pelanggan yang baru datang mengantri untuk menunggu dilayani. Variabel status: status pelayan (idle, busy), jumlah pelanggan dalam antrian, waktu kedatangan tiap orang.

Discrete Event Simulaton


Lanjutan contoh:
Status server dipakai untuk menentukan pada saat ada pelanggan datang bisa langsung dilayani atau harus masuk ke antrian Pada saat server selesai melayani satu pelanggan, jumlah pelanggan dalam antrian dipakai untuk menentukan apakah status server menjadi idle atau mulai melayani pelanggan dalam antrian paling depan. Waktu kedatangan pelanggan dipakai untuk menghitung waktu dia menunggu dalam antrian. Dua event: kedatangan pelanggan dan selesainya pelanggan dilayani.

Mekanisme pemajuan waktu


Perlu dicatat waktu simulasi (waktu yang sekarang yang disimulasikan) pada saat simulasi dijalankan. Perlu mekanisme untuk memajukan waktu simulasi dari satu nilai waktu ke nilai waktu berikutnya. Variable yang menyimpan nilai waktu simulasi disebut simulation clock Dua pendekatan: next-event time advance dan fixedincrement time advance.

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.

Anda mungkin juga menyukai