Anda di halaman 1dari 42

Metoda Simulasi

Hendrawan hend@telecom.ee.itb.ac.id

Outline
Motivasi . Mengapa simulasi? Teknik-teknik simulasi Operasi dasar suatu simulasi Pseudo-random number generator Stochastic nature dari simulasi Steady-state behaviour
Confidence intervals Langkah-langkah simulasi

Mempercepat (speeding up) simulasi

Teknik Evaluasi (Ulangan)

Mengapa Simulasi (1) ?


Asumsi-asumsi diperlukan pada model analitis supaya mudah ditangani (tractable)
Simple job scheduling Buffer tak hingga Single resource digunakan untuk satu job Timing dan sinkronisasi sederhana Macam-macam resource berbeda independent Waktu antar kedatangan dan waktu pelayanan independen Proses kedatangan Distribusi waktu pelayanan (panjang paket)

Mengapa Simulasi (2) ?


Tidak begitu abstrak dibandingkan model analitis, shg mungkin memerlukan waktu pengembangan lebih sedikit Model dp dibangun untuk level detail yg diinginkan Tetapi
Model simulasi masih dp menyita waktu Waktu eksekusi simulasi dp sangat besar Simulasi adalah, secara esensial, suatu proses eksperimen yg memerlukan perencanaan yg hati-hati

Simulasi vs Komputasi
Utk tujuan kita, otomatisasi code utk menentukan solusi numerik utk model analitis adalah bukan simulasi Utk tujuan kita, simulasi meniru kelakuan sistem, tetapi dlm cara stochastic
Functional simulation: memverifikasi kelakuan fungsional dari suatu sistem (mis. menggunakan VHDL) Stochastic simulation: menentukan performansi suatu sistem berdasarkan eksperimen dg event random Dimungkinkan utk mempunyai model hybrid yg melakukan keduanya

Stochastic Discrete Event Simulation


A simulation is the imitation of the operation of a real-world process or system over time. Whether done by hand or on a computer, simulation involves the generation of an articial history of a system [...] to draw inferences concerning the operation characteristics ofthe real system."
Simulasi dijalankan pada komputer Simulasi adalah model dari suatu sistem, dengan software memodelkan sistem, dan ukuran numerik performansi diturunkan dari output simulasi

Tipe-Tipe Sistem
statis vs. dinamis: pada sistem statis output hanya tergantung input saat ini dan tidak pada inputinput sebelumnya discrete-state vs. continuous-state: pada suatu sistem continuous-state paling sedikit satu komponen (input, state) mempunyai rentang uncountable stochastic vs. deterministic: pada suatu sistem stochastic paling sedikit satu komponen dari input atau state sistem adalah random komputer dan sistem komunikasi umumnya dinamis dan stochastic discrete state stochastic discrete event simulation

Stochastic Discrete Event Simulation - Generalities


Beberapa bagian dari beban/workload atau internal state adalah random", diperlukan:
Metoda utk karakteristisasi statistik dari korespondensi proses real-world, utk membangung model stochastic darinya Metoda utk membangkitkan bilangan/proses random (mis sbg workload) Metoda untuk intepretasi output simulasi (random)

Simulasi adalah suatu program komputer:

Ditulis dalam suatu bahasa pemrograman (general purpose atau dedicated) memerlukan runtime kadang besar

Teknik-Teknik Simulasi (1)


State Space
Continuous space: state pada simulasi adalah kontinyu (mis. arus melalui suatu resistor) Discrete state: state pada simulasi adalah diskrit (mis. jumlah paket dlm antrian)

Events
Continuous time: event-event sistem dp terjadi pd sembarang waktu (mis. kedatangan adalah Poisson) Discrete time: event-event sistem dp terjadi hanya pd waktu-waktu tertentu (mis. kedatangan merupakan Bernoulli process)

Teknik-Teknik Simulasi (2)


Bagaimana simulasi berjalan
Time-driven: simulasi berjalan pd interval waktu tertentu/fixed (mis. state ditentukan pada saat t, t + t, t + 2 t, ) Event-driven: simulasi berjalan dari event-ke-event (mis. state ditentukan pd titik waktu dari event berikutnya)

Biasanya simulasi jaringan


Discrete state Discrete time atau continuous tetapi quantized time Event-driven

Events dan Efisiensi (1)


Suatu event adalah sembarang aktivitas dlm jaringan yg dp, secara potensial, menuju ke perubahan state atau ke event lain yg menuju ke perubahan state
Kedatangan paket pd suatu antrian Penyelesaian transmisi Kegagalan (failure) suatu link

Utk setiap event, simulator harus meniru operasi sistem utk


Update state sistem Update statistics Menentukan event kedepan yg baru

Events dan Efisiensi (2)


Time-driven simulation harus menentukan jika suatu event baru muncul pd setiap langkah waktu diskrit, dan jika suatu event telah terjadi, proses event tsb. Event-driven simulation hanya perlu proses event pd titik waktu dimana suatu event terjadi
Simulasi event-driven dp secara substansial lebih efisien secara komputasi dibandingkan dg simulasi time-driven

Contoh Sederhana
Perhatikan simulasi dari sistem antrian tunggal
Mungkin tdk dp ditangani secara analitis (mis,. Krn trafik, waktu pelayanan dan/atau waktu pelayanan)

State sistem adalah jumlah dlm sistem, N(t) Ukuran performansi adalah waktu rata-rata pelanggan dlm sistem dan jumlah rata-rata pelanggan dlm sistem

Simulasi dari State Sistem


State sistem dp disimulasikan berdasarkan pd waktu antar kedatangan dan waktu pelayanan
Waktu antar kedatangan dan waktu pelayanan dp berharga sembarang Urutan pelayanan dp lain selain FIFO Tdk dibatasi pd kedatangan Poisson dan waktu pelayanan eksponensial atau asumsi serupa utk model analitis

Events adalah
Kedatangan Kepergian (penyelesaian pelayanan)

State Sistem
State sistem sbg fungsi waktu

Ukuran Performansi (1)


Jumlah rata-rata dlm sistem adalah waktu ratarata dari N(t)
Area dari t = 0 ke t = T dibagi dg T

Ukuran Performansi (2)


Waktu rata-rata dlm sistem
Area dari t = 0 sampai t = T dibagi dg n, jumlah total pelanggan

Algoritma Simulasi (1)

Algoritma Simulasi (2)

Algoritma Simulasi (3)

Isue-Isue Implementasi
Waktu antar kedatangan dan waktu pelayanan
Pseudo-random number generator

Next event queue


Harus efisien dlm hal ukuran dan waktu pencarian Diurut shg event berikutnya mudah diidentifikasi Tergantung pd berbagai usulan utk struktur data yg efisien

Waktu awal dan akhir


more later

Tambahan statistik kadang diinginkan

Pseudo-Random Number Generation (1)


Deretan angka pseudo-random digunakan utk menentukan kelakuan stochastic dari sistem, spt ..
Waktu antar kedatangan Waktu pelayanan Level prioritas Routing Packet loss Bit Error Link failure

Pseudo-Random Number Generation (2)


Algoritman pseudo-random number generation yg umum membangkitkan uniform random variables, asumsi dlm interval [0, 1)
U[0,1)

Kadang menginginkan distribusi lain F(s), mis. Binomial atau Eksponensial


Perlu menggunakan inverse function utk menentukan F(s) diberikan U[0,1)

Inverse Functions (1)


Mis. Random variables X terdistribusi eksponensial

Inverse Functions (2)


Kita memp. Y ~ U[0,1) dan memerlukan FX(x)

Inverse Functions (3)


Shg, ambil Y bilangan pseudo-random dari U[0,1)
Ambil x = -ln(1-Y)/, maka x adalah bilangan pseudo-random eksponensial

Inverse Functions (4)


Mis. Kedatangan terjadi dg probabilitas a dan tidak terjadi dg probabilitas 1-a
Ambil Y sbg bilangan pseudo-random dari U[0,1)

Tentukan bilangan pseudo random Z


Ambil Z = 1, jika ada dlm interval Ambil Z = 0, jika tdk ada dlm interval

Algoritma
Z = 1, jika Y < a Z = 0, lainnya

Stochastic Nature dari Simulasi


Krn bilangan pseudo-random digunakan dlm model, hasilnya juga random Hasil akan bervariasi dari run ke run, mis. Bergantung pada panjang dari run simulasi Hasil adalah suatu statistical experiment! Isue
Bagaimana kita tahu sistem dlm steady-state? Bagaimana kita tahu sistem sdh dlm steady-state cukup lama utk mengeliminasi efek dari kelakuan initial transient? Bagaimana kita tahu hasil dari sample (eksperimen) ini valid?

Transient vs Steady-State
Ukuran performansi yg tergantung pd initial state dari simulasi adalah ukuran transient
kadang yg menjadi titik perhatian, mis. bagaimana respon sistem thd link failure

Jika perhatian adalah performansi steady-state atau jangka panjang


Simulasi hrs cukup lama shg efek initial state pd ukuran performansi dp diabaikan Buang hasil dari perioda initial transient (tapi perlu identifikasi akhir dari durasi perioda ini)

Transient/Steady State
Transient/Steady State
Transient behavior : Suatu tipikal kelakuan sistem yg tergantung pd kondisi inisial (mis. booting up atau recovering dari suatu kegagalan komponen) Steady state behavior : kelakuan operasi normal dari sistem independent terhadap kondisi inisial

Simulasi packet loss pd suatu antrian router

Confidence Intervals
X% confidence interval (a,b) dari pengukuran Y berarti jika simulasi sistem bbrp kali, hasil Y akan jatuh antara a dan b X% dari waktu Membangun confidence intervals memerlukan, secara efektif, multiple samples
Memperhitungkan variabilitas Bagaimana kita mendpkan multiple samples?

Teknik-Teknik Utk Confidence Intervals (1)


Pengulangan Independen
Jalankan simulasi n kali utk mendpkan n sample independen Komputasi utk transien period adalah wasted utk n run

Batch berarti
Satu single run dibagi kedlm N perioda sama panjang, memberikan N sample Phase initial transient hanya dibuang satu kali Sulit utk menentukan harga yg pas utk N utk secara efektif mengeliminasi korelasi antar batch

Teknik-Teknik Utk Confidence Intervals (2)


Simulasi Regenerative
Regeneration point dari suatu simulasi adalah titik dimana distribusi dari event kedepan adalah independen dari state saat ini Ukuran dari tiap perioda diantara regeneration points membentuk samples independen Kesulitan dlm identifikasi regeneration points yg terjadi secara sering

In-Class Exercise (1)


Perhatikan sistem antrian tunggal yg didiskusikan seblmnya. Di bawah kondisi apa indikasi waktu dibawah adalah regeneration points (Usulan regeneration points adalah dimana suatu paket departs dan meninggalkan sistem kosong)

Workload: Traffic Models


Model trafik sangat penting terhadap hasil simulasi
Contoh:
Waktu antar kedatangan Ukuran paket (waktu transmisi)

Berbagai model trafik dikembangkan

Langkah-Langkah Simulasi (1)


Pahami persyaratn simulasi dan batas-batas sistem
Identifikasi
Faktor-faktor Parameter-parameter Ukuran-ukuran

Bangun model
Sistem Workload

Implementasi

Lankah-Langkah Simulasi (2)


V&V
Validasi: apakah sistem secara akurat menangkap performansi sistem yg menjadi perhatian? Apakah model ini valid? Verifikasi: apakah implementasi secara akurat mengimplementasikan model

Perencanaan eksperimen initial


Tentukan bagaimana faktor-faktor akan divariasikan, termasuk relasi satu dg lainnya

Analisa sensitivitas
Tentukan faktor-faktor yg memp efek terbesar

Perbaiki disain eksperimen

Langkah-Langkah Simulasi (3)


Koleksi data simulasi Analisa data dan interprestasi Presentasi hasil

Tools (1)
Standar high-level programming language spt Java, C, C++, FORTRAN
Simulasi diprogram spt aplikasi standar Biasanya memerlukan waktu pengembangan yg paling lama

Bahasa simulasi, spt SIMSCRIPT


Bahasa sdh dirancang utk memudahkan pemrograman utk simulasi mis., libraries utk event queuing Tujuan pengurangan waktu pengembangan

Tools (2)
Paket simulasi jaringan yg fleksibel, spt OPNET Modeler
Memungkinkan programming utk membangun modul-modul Modul-modul di-assembly menggunakan graphical user interface Domain specific

Rigid network simulation, spt OPNETs IT Decision Guru

Speeding-Up Simulation
Hierarchical Decomposition dan Teknik Hybrid
Dekompoisisi sistem kedlm suatu hierarki Gunakan agregated, low fidelity dan/atau submodul analitis Sbg contoh, analisa suatu LAN dan gantikan dg sumber trafik tunggal utk simulasi suatu WAN

Reduksi Variansi
Gunakan properties dari sistem utk mengurangi variasi

Anda mungkin juga menyukai