iv. minggu keempat
-
Upload
isna-aryanty -
Category
Technology
-
view
1.024 -
download
1
Transcript of iv. minggu keempat
Real System
Pemodelan System
Model Simulasi
Pemrograman Simulasi
Experiment/ Running
Y
output
input
Validasi
Terbagi 2 : - Program Programming - Program Modeling
N
SIMULASI SISTEM
Simulasi sistem terdiri dari :1. Simulasi Sistem Diskrit, bila hanya didefinisikan pd titik-titik
waktu tertentu :
a. Kejadian Diskrit (Event Based Simulation)
b. Pendekatan Aktivitas (Activity Based Simulation)
c. Process Interaction Approach
d. Three Phase Approach
2. Simulasi Sistem Kontinyu, merupakan fungsi kontinyu dari
waktu :
a. Model Sistem Kontinyu :
- Sistem Statis state variables independen terhadap waktu
- Sistem Dinamis state variables merupakan fungsi waktu
b. Sistem umpan balik
c. Metode analog
Software SimulasiSecara kasar software tools utk membangun discrete event simulation dapat dikategorikan kedlm empat kategori :1. General purpose languages
– C, Pascal, FORTRAN, C++, ADA, Java, dll.
2. Event Scheduled Simulation Languages– SLAM, SIMAN, SIMPAS, SIM++, JAVASIM, dll,
3. Process Oriented Simulation Languages– CSIM, EZSIM, GPSS, SIMAN, SLAM, GASP, JAVASIM dll.
4. Application Oriented Simulators– Opnet, Comnet III, Tangram II, ns-2, Qualnet, Jade, dll.
Software tools utk membangun kontinyu simulation dapat dikategorikan kedlm : VENSIM, SEESIM, Dynamo dll
Bagaimana Simulasi Diskrit Berjalan…….. (Programming Simulation)
– Time-driven: simulasi berjalan pd interval waktu tertentu/fixed (mis. state ditentukan pada saat t, t + ∆t, t + 2 ∆t, …)
Time-based simulation
– Event-driven: simulasi berjalan dari event-ke-event (mis. state ditentukan pd titik waktu dari event berikutnya)
Event-based simulation
1. Simulasi Diskrit
Contoh : Mensimulasikan Discrete Event System (Event Approach) pendekatan kejadian yakni pengembangan model simulasi didasarkan pd adanya kejadian yg terjadi pd sistem• States
Kumpulan variabel-variabel yg diperlukan utk karakterisasi sistem pada sembarang titik waktu
• EntitiesObjek-objek yg diproses dalam simulasi – mis. packet atau panggilan telepon
• AttributesKarakteristik dari entities (mis., panjang paket, tipe dan tujuan)
• ResourcesSubstansi/items dimana entities menduduki atau menggunakan (mis., buffer space pd router, tokens pd FDDI network, bandwidth pd suatu link)
• ActivitiesDurasi waktu dimana panjangnya diketahui saat dimulai. Misalnya, waktu transmisi dari suatu paket pd suatu link
• DelayDurasi waktu dg panjang yg tdk terspesifikasi yg tdk diketahui sebelum selesai. misalnya – waktu perjalanan suatu paket dari node A ke node B dlm suatu jaringan
• Utk mengimplementasikan suatu event scheduling simulasi perlu membangun suatu event list, secara tdk langsung perlu membangun suatu deretan events
• Perhatikan contoh antrian Single Server (M/M1) – misalnya pada proses permesinan.
• Ada EVENT bila ada job Datang dan Pergi (selesai di proses)• Ada ACTIVITY bila job tsb di Proses`
A MJob in servise
Job AntriArrive
Departure
Batas Sistem
Mesin/Proses
D
• Model– IID Exponential interarrival time dg mean 1/λ– IID Exponential service time dg mean 1/µ
• Ingin mendapatkan mean job delay dlm antrian– Solusi analitis mean waiting time = ρ/ (µ - λ)
Adapun representasi komputasinya sbb : Misal data waktu kedatangan (A) dan waktu permesinan (M) : A1=55 A2=32 A3=24 A4=40 A5=12 A6=29 …… dstnya S1=43 S2=36 S3=34 …..dstnya Catatan : data2 tsb diperoleh dari hasil Pembangkitan Bilangan Random
(Random Number Generator) berdasarkan distribusi kedatangan dan proses (pelayanan) Minggu depan akan di jelaskan !!!
0 t1 t2 t3C1 C2 time
s1 s2 s3s0 s4 s5
A1 A2 A3
S1 S2
Illustrasi sistem antrian M/M/1 dengan pendekatan event time
Keterangan :
ti : wkt kedatangan customer ke i (to = 0)
Ai = ti – ti-1 = antar wkt kedatangan antara (i-1) dan customer ke I
Si : time server actually spends serving customer ke i (termasuk customer delay pd antrian)
Di : delay in queue customer ke I
Ci : ti + Di + Si = wkt selesai melayani customer ke i dan pergi dari sistem
A1 datang pd wkt simulasi menit ke 55
A2 datang pd wkt simulasi menit ke 32 kemudian atau menit ke 87 (55 + 32) dst
A1 dilayani selama 43 menit (S1), selesai pd menit 98 (55 + 43) sehingga A2 yg datang pd menit ke 87 menunggu hingga menit 98 (selama 11 menit) atau menunggu hingga A1 selesai dilayani
A2 mulai dilayani pada menit ke 98 selama 36 menit (S2) dan selesai pd menit ke 134 (98 + 36) …..dstnya
Time = 0
System
System State
Status Number in Time of Last Queue Event Time of Arrival
AD
Clock Event List
Statistical Counters
Number Total Area delay delay under Q(t)
0 55
0 (8.00)
0 0 0
0 0 0
S
Time = 55
System
System State
Status Number in Time of Last Queue Event Time of Arrival
AD
Clock Event List
Statistical Counters
Number Total Area delay delay under Q(t)
Time = 87 System State
Status Number in Time of Last Queue Event Time of Arrival
AD
Clock Event List
Statistical Counters
Number Total Area delay delay under Q(t)
S
S
1
1
0
1
55
87
55
1
87
1
0
0
0
0
98
87
98
111
87
1customer
2
customer1
Time = 98
System
System State
Status Number in Time of Last Queue Event Time of Arrival
AD
Clock Event List
Statistical Counters
Number Total Area delay delay under Q(t)
98111
134
2 11 11
1 0 98
S
Time = 111 System State
Status Number in Time of Last Queue Event Time of Arrival
AD
Clock Event List
Statistical Counters
Number Total Area delay delay under Q(t)
Time = 134
System
System State
Status Number in Time of Last Queue Event Time of Arrival
AD
Clock Event List
Statistical Counters
Number Total Area delay delay under Q(t)
S
S
1
1
1
0
111
134
111
2
134
3
11
34
11
34
111 134
151
168
151
2customer
3customer
2customer
3
Time =
System
System State
Status Number in Time of Last Queue Event Time of Arrival
AD
Clock Event List
Statistical Counters
Number Total Area delay delay under Q(t)
S
Time = System State
Status Number in Time of Last Queue Event Time of Arrival
AD
Clock Event List
Statistical Counters
Number Total Area delay delay under Q(t)
Time =
System
System State
Status Number in Time of Last Queue Event Time of Arrival
AD
Clock Event List
Statistical Counters
Number Total Area delay delay under Q(t)
S
S
customer
customer
customer
Pemrograman Simulasi DiskritKomponen & Pengorganisasian Model Pemrograman• System State
menggambarkan keadaan sistem pd suatu waktu tertentu• Simulation Clock
Jam simulasi yang menentukan waktu terjadinya event• Even List
Daftar yg memuat kejadian berikutnya• Statistical Counter
variabel2 yg dipakai utk menghitung statistik (memberikan informasi statistik tentang performance sistem)
• Initialization Routinesub-rutin untuk memulai/menolkan waktu simulasi
• Timing Routine sub-rutin utk menentukan event berikutnya dan melanjutkan jam
simulasi untuk event berikutnya• Event Routine sub-rutin utk meng-update state (keadaan) sistem ketika suatu
event terjadi
• Report Generatorsub-rutin estimasi perhitungan (dari statistical counter) dan mencetak laporan
• Main Program sub-program untuk memanggil timing routin untuk menentukan event berikutnya dan meng-update keadaan sistem
Hubungan logical (flow control) dari masing-masing komponen tersebut sebagai berikut :
Hubungan Logical (Flow Chart)
1. Set simulation clock = 02. Initialize system state and
statistical counters3. Initialize event list
1. Call the timing routine2. Call event routine i
1. Update system state2. Update statistical counters3. Generate future events and
add to the event list
1. Compute estimates of interest2. Print Report
1. Determine the next event type, misal i
2. Advance the simulation clock
Is simulation over ?
No
Yes
Initialization Routine
Main Program
Event Routine i
Report Generator
Timing Routine
Generate random variates
Library Routine
Pemrograman (Bahasa Program FORTRAN) :
Beberapa asumsi tentang single-server queueing system yaitu waktu antar kedatangan konsumen berdistribusi exponential, misal rata-rata 1 menit & waktu pelayanan berdistribusi eksponential dgn rata-rata 0,5 menit. Simulasi berhenti jika jumlah konsumen yg dilayani n = 1000 orang.
a. Event Deskripsi : - Kedatangan / Arrival (A) = 1 - Kepergian / Departure (D) = 2
b. Sub – Routine :
Sub - Program Purpose
INITTIMINGARRIVEDEPARTREPORT
EXPON (RMEAN)
Initialisasi routineTiming routineEvent routine (1)Event routine (2)Laporan simulasi (dipanggil ketika simulasi selesai n = 1000)Distribusi eksponential dgn rata-rata RMEAN (λ = 1 dan μ = 0,5)
Definisi
MARRVTMSERVTTOTCUS
Waktu rata-rata antar kedatangan Waktu pelayanan rata-rataJumlah total n yang selesai dilayani
c. Input Parameter :
d. Modeling variables : Definisi
ANIQDELAYNEVNTSNEXTNIQNUMCUSRMEANRMINSTATUSTARRVL(1)TIMETLEVNTTNE(1)TOTDELU
Fungsi dari grafik jumlah dalam antrianLamanya customer dalam antrianJumlah event dalam simulasi (2 event yakni datang & pergi)Jenis event yg terjadi berikutnyaJumlah customer dalam antrianJumlah customer yg telah menyelesaikan waktu tunggunyaRata-rata dari distribusi eksponential yg digunakan Utk menyatakan event yg akan terjadi utk jangka yg masih lamaStatus = 0 jika server idle dan staus = 1 jika sibukWaktu kedatangan customer ke IJam simulasiWaktu kejadian terakhirWkt perubahan dari waktu sekarang ke waktu berikutnyaTotal customer yg mengalami antrianVariabel random berdistribusi uniform antara 0 dan 1 (utk pembangkitan bilangan random)
Definisi
AVGDELAVGNIQ
Waktu antrian rata-rataPanjang antrian rata-rata
e. Output Variables :
PEMROGRAMAN FORTRAN :
1. SUB-ROUTINE PROGRAM UTAMA*** MAIN PROGRAM INTEGER NEVNTS, NEXT, NIQ, NUMCUS, STATUS, TOTCUS REAL ANIQ, MARRVT, MSERVT, TARRVL(100), TIME, TNE(2), TOTDEL COMMON /MODEL/ ANIQ, MARVT, MSERVT, NEVNTS, NEXT, NIQ, NUMCUS, STATUS, TIME, TLEVNT, TNE, TOTCUS, TOTDEL
*** SPECIFY THE NUMBER OF EVENT TYPES FOR THE TIMING ROUTINE NEVNTS=2
*** READ INPUT PARAMETERS REALD 10, MARRVT, MSERVT10 FORMAT (2F, 10.0) READ 20, TOTCUS20 FORMAT (I 10)
Deklarasi
*** INITIALIZE THE SIMULATION CALL INIT
*** DETERMINE THE NEXT EVENT 30 CALL TIMING
*** CALL THE APPROPRIATE EVENT ROUTINE GO TO (40, 50), NEXT 40 CALL ARRIVE GO TO 60 50 CALL DEPART
*** IF THE SIMULATION IS OVER, CALL THE REPORT GENERATOR AND END THE *** SIMUALTION, IF NOT, CONTINUE THE SIMULATION 60 IF(NUMCUS.LT. TOTCUS) GO TO 30 CALL REPORT STOP END
2. SUB-ROUTINE INITIALISATION :SUBROUTINE INITINTEGER NEVNTS, NEXT, NIQ, NUMCUS, STATUS, TOTCUSREAL ANIQ, MARRVT, MSERVT, TARRVL(1000), TIME, TLEVNT, TNE(2), TOTDELCOMMON /MODEL/ ANIQ, MARRVT, MSERVT, NEVNTS, NEXT, NIQ, NUMCUS, STATUS, 1TARRVL, TIME, TLEVNT, TNE, TOTCUS, TOTDEL
*** INITIALIZE THE SIMULATION CLOCK TIME=0.*** INITIALIZE THE ATATE VARIABLES STATUS=0 NIQ=0 TLEVNT=0
*** INITIALIZE THE STATISTICAL COUNTERS NUMCUS=0 TOTDEL=0 ANIQ=0
*** INITIALIZE THE EVENT LIST. SINCE NO CUSTOMERS ARE PRESENT, THE TIME OF THE*** NEXT DEPARTURE (SERVICE COMPLETION) IS SET TO ‘INFINITY.’ TNE(1)=TIME+EXPON(MARRVT) TNE(2)=1.E+30 RETURN END
3. SUB-ROUTINE TIMING :SUBROUTINE TIMINGINTEGER NEVNTS, NEXT, NIQ, NUMCUS, STATUS, TOTCUSREAL ANIQ, MARRVT, MSERVT, TARRVL(1000), TIME, TLEVNT, TNE(2), TOTDELCOMMON /MODEL/ ANIQ, MARRVT, MSERVT, NEVNTS, NEXT, NIQ, NUMCUS, STATUS, 1TARRVL, TIME, TLEVNT, TNE, TOTCUS, TOTDELRMIN=1.E+29NEXT=0
*** DETERMINE THE EVENT TYPE OF THE NEXT EVENT TO OCCUR DO 10 I=1.NEVNTS IF (TNE(I).E.RMIN) GO TO 10 RMIN=TNE(I) NEXT=I 10 CONTINUE.*** IF THE EVENT LIST IS EMPTY (1.E., NEXT=0), STOP THE SIMULATION*** OTHERWISE, ADVANCE THE SIMULATION CLOCK IF (NEXT, GT.0) GO TO 30 PRINT 20 20 FORMAT (1h1, 5X, ‘EVENT LIST EMPTY’) STOP30 TIME=TNE(NEXT) RETURN END
FLOWCHART SUBROUTINE ARRIVE
Subroutine ARRIVE
Schedule the next arrival event
Set DELAY = 0 for this customer and gather statistics
Add 1 to the number of customers delayed
Make server busy
Schedule a departure event for this customer
Return
Update area under the number in queue function
Add 1 to the number in queue
Store the time of arrival of this customer
Return
4. SUB-ROUTINE ARRIVE :SUBROUTINE ARRIVEINTEGER NEVNTS, NEXT, NIQ, NUMCUS, STATUS, TOTCUSREAL ANIQ, MARRVT, MSERVT, TARRVL(1000), TIME, TLEVNT, TNE(2), TOTDELCOMMON /MODEL/ ANIQ, MARRVT, MSERVT, NEVNTS, NEXT, NIQ, NUMCUS, STATUS, 1TARRVL, TIME, TLEVNT, TNE, TOTCUS, TOTDEL
***
FLOWCHART SUBROUTINE DEPART
Subroutine DEPART
Update area under the number in queue function
Subtract 1 from the number in queue
Compute delay of customer entering service
and gather statistics
Add 1 to the number of customers delayed
Schedule a departure event for this customer
Return
Make server busy
Set the time of the next departure to infinity
Return
5. SUB-ROUTINE DEPART :SUBROUTINE DEPARTINTEGER NEVNTS, NEXT, NIQ, NUMCUS, STATUS, TOTCUSREAL ANIQ, MARRVT, MSERVT, TARRVL(1000), TIME, TLEVNT, TNE(2), TOTDELCOMMON /MODEL/ ANIQ, MARRVT, MSERVT, NEVNTS, NEXT, NIQ, NUMCUS, STATUS, 1TARRVL, TIME, TLEVNT, TNE, TOTCUS, TOTDEL
***
6. SUB-ROUTINE REPORT :SUBROUTINE REPORTINTEGER NEVNTS, NEXT, NIQ, NUMCUS, STATUS, TOTCUSREAL ANIQ, MARRVT, MSERVT, TARRVL(1000), TIME, TLEVNT, TNE(2), TOTDELCOMMON /MODEL/ ANIQ, MARRVT, MSERVT, NEVNTS, NEXT, NIQ, NUMCUS, STATUS, 1TARRVL, TIME, TLEVNT, TNE, TOTCUS, TOTDEL
***
7. SUB-ROUTINE FUNGSI EXPONENTIAL :FUNCTION EXPON(RMEAN)REAL RMEAN, U *** GENERATE A U(0,1) RANDOM VARIABLE, THE FORM OF THIS STATEMENT DEPENDS *** ON THE COMPUTER USED U=RANUN (Z)
*** GENERATE AN EXPONENTIAL RANDOM VARIABLE WITH MEAN RMEAN EXPON=-RMEAN*ALOG (U) RETURN END
8 . OUTPUT HASIL SIMULASI :-------------------------------------------------------------------------SINGLE-SERVER QUEUEING SYSTEM
REAL RMEAN, U MEAN INTERARRIVAL TIME : 1.000 MINUTESMEAN SERVICE TIME : .500 MINUTESNUMBER OF CUSTOMERS : 1000
AVERAGE DELAY IN QUEUE : .497 MINUTESAVERAGE NUMBER IN QUEUE : .500