iv. minggu keempat

26
Real System Pemodelan System Model Simulasi Pemrograman Simulasi Experiment/ Running Y output input Validasi Terbagi 2 : - Program Programming - Program Modeling N SIMULASI SISTEM

Transcript of iv. minggu keempat

Page 1: 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

Page 2: iv. minggu keempat

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

Page 3: iv. minggu keempat

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

Page 4: iv. minggu keempat

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

Page 5: iv. minggu keempat

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

Page 6: iv. minggu keempat

• 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 = ρ/ (µ - λ)

Page 7: iv. minggu keempat

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

Page 8: iv. minggu keempat

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

Page 9: iv. minggu keempat

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

Page 10: iv. minggu keempat

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

Page 11: iv. minggu keempat

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

Page 12: iv. minggu keempat

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

Page 13: iv. minggu keempat

• 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 :

Page 14: iv. minggu keempat

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

Page 15: iv. minggu keempat

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)

Page 16: iv. minggu keempat

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)

Page 17: iv. minggu keempat

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

Page 18: iv. minggu keempat

*** 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

Page 19: iv. minggu keempat

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

Page 20: iv. minggu keempat

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

Page 21: iv. minggu keempat

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

Page 22: iv. minggu keempat

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

***

Page 23: iv. minggu keempat

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

Page 24: iv. minggu keempat

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

***

Page 25: iv. minggu keempat

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

***

Page 26: iv. minggu keempat

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