Professional Documents
Culture Documents
προχωρήσει ο χρόνος στο επόμενο γεγονός" (next-event time advance)
προχωρήσει ο χρόνος στο επόμενο γεγονός" (next-event time advance)
Ενα γεγονός (event) μπορεί να συμβεί στα σημεία αυτά, όπου σαν γεγονός ορίζεται ένα
στιγμιαίο συμβάν το οποίο μπορεί να αλλάξει την κατάσταση του συστήματος.
Η πιο γνωστή μέθοδος για να προχωρήσει το ρολόι προσομοίωσης είναι η μέθοδος: “να
προχωρήσει ο χρόνος στο επόμενο γεγονός” ( next-event time advance).
Ρολόι προσομοίωσης: Μια μεταβλητή που δίνει την τρέχουσα τιμή του χρόνου
προσομοίωσης.
Βασικά στοιχεία Μοντελοποίησης και Προσομοίωσης 5
Λίστα γεγονότων: Μια λίστα που περιέχει τον επόμενο χρόνο που θα συμβεί ο κάθε
τύπος γεγονότος.
Η ροή ελέγχου ανάμεσα στους παράγοντες αυτούς φαίνεται στο Σχήμα 1.4. Το
κυρίως πρόγραμμα καλεί τη ρουτίνα έναρξης. Στη ρουτίνα αυτή το ρολόι
προσομοίωσης παίρνει την τιμή μηδέν οπότε και η προσομοίωση ξεκινάει στο χρόνο 0,
και παίρνουν αρχικές τιμές οι στατιστικοί μετρητές καθώς και η λίστα γεγονότων.
Εναρξη
Ρουτίνα έναρξης
Κυρίως πρόγραμμα
0. Κάλεσε τη ρουτίνα
1. Θέσε το Ρουτίνα χρόνου
Εναρξης
ρολόϊ προσομοίωσης = 0
2. Θέσε αρχικές συνθήκες 0 1. Καθόρισε τον τύπο
Με επανάληψη τα 1
στην κατάσταση του του επόμενου
και 2: 1
συστήματος και γεγονότος, π.χ. i
1. Κάλεσε τη ρουτίνα
στους στατιστικούς 2. Προχώρησε το ρολόϊ
χρόνου
μετρητές i της προσομοίωσης
2. Κάλεσε τη ρουτίνα
3. Θέσε αρχικές τιμές
γεγονότος i
στη λίστα γεγονότων
όχι
Τέλος
Προσομοίωσης;
ναι
1. Να υπολογισθούν οι
Ρουτίνα αποτελεσμάτων εκτιμήσεις
που ενδιαφέρουν
2. Να γραφούν τα
αποτελέσματα
Τέλος
Σχήμα 1.4
Μέθοδος “να προχωρήσει ο χρόνος στο επόμενο γεγονός”
8 Μοντελοποίηση και Προσομοίωση
Aφού εκτελεστεί η απαραίτητη λειτουργία, είτε στο κυρίως πρόγραμμα ή στη ρουτίνα
γεγονότος i, γίνεται έλεγχος εάν πληρείται κάποια συνθήκη τέλους ούτως ώστε να
σταματήσει η προσομοίωση.
Εάν δεν πληρείται η συνθήκη τέλους της προσομοίωσης, ο έλεγχος επιστρέφεται στο
κυρίως πρόγραμμα και εκτελείται συνεχώς ο κύκλος “κυρίως πρόγραμμα - ρουτίνα
χρόνου - κυρίως πρόγραμμα - ρουτίνα γεγονότος - έλεγχος τέλους κύκλου” μέχρις ότου
ισχύσει η συνθήκη τέλους.
Στα προηγούμενα ορίσαμε ότι ένα σύστημα είναι μια συλλογή καλώς ορισμένων
οντοτήτων. Οι οντότητες χαρακτηρίζονται από τιμές δεδομένων που ονομάζονται
χαρακτηριστικά (attributes). Αυτά τα χαρακτηριστικά είναι μέρος της κατάστασης του
συστήματος για ένα μοντέλο προσομοίωσης διακριτών γεγονότων.
Υπάρχει όμως και μια άλλη τεχνική στη μοντελοποίηση και προσομοίωση που
ονομάζεται “ τρόπος προσέγγισης με διεργασίες” η οποία βλέπει την προσομοίωση σε
σχέση με τις οντότητες που συνεπάγονται. Ο κώδικας προγράμματος που γράφεται
περιγράφει την εμπειρία μιας τυπικής οντότητας καθώς αυτή κινείται μέσα στο
σύστημα. Το να γραφεί κώδικας για μοντέλα προσομοίωσης με τη μέθοδο διεργασίας
απαιτείται λογισμικό ειδικού σκοπού (π.χ. GPSS/H). Παρ’ όλα αυτά όμως, ακόμη και
όταν ακολουθείται η τακτική της μεθόδου διεργασίας, η προσομοίωση διεξάγεται κατά
βάθος με τη λογική της μεθόδου σχεδιασμού γεγονότων.
Οι μεταξύ των αφίξεων χρόνοι των προγραμμάτων Α1, Α2, ....... είναι ανεξάρτητες και
όμοια κατανεμημένες τυχαίες μεταβλητές (independent and identically distributed
random variables, IID). Ο όρος “όμοια κατανεμημένες” σημαίνει ότι οι μεταξύ των
αφίξεων χρόνοι έχουν την ίδια κατανομή.
Ενα πρόγραμμα το οποίο φθάνει και βρίσκει τον εξυπηρέτη (τον επεξεργαστή)
ελεύθερo (idle) αρχίζει να εξυπηρετείται (εκτελείται) αμέσως. Οι χρόνοι εξυπηρέτησης
10 Μοντελοποίηση και Προσομοίωση
S1, S2, .......των διαδοχικών προγραμμάτων είναι IID τυχαίες μεταβλητές και είναι
ανεξάρτητες από τους μεταξύ των αφίξεων χρόνους.
Ενα πρόγραμμα το οποίο φθάνει και βρίσκει τον εξυπηρέτη απασχολημένο, μπαίνει στο
τέλος της ουράς. Μόλις ο εξυπηρέτης τελειώσει με την εξυπηρέτηση ενός
προγράμματος, διαλέγει ένα πρόγραμμα από αυτά που περιμένουν στην ουρά (εφ’ όσον
η ουρά δεν είναι άδεια) σύμφωνα με την αρχή “όποιος φθάνει πρώτος εξυπηρετείται
πρώτος” (first-come, first-served, FCFS).
εξυπηρέτης
ουρά
αφίξεις αναχωρήσεις
Σχήμα 1.5
Σύστημα ουράς με έναν εξυπηρέτη
Για να μετρήσουμε την απόδοση αυτού του συστήματος, θα βρούμε εκτιμήσεις τριών
ποσοτήτων. Πρώτα θα εκτιμήσουμε την αναμενόμενη (expected) μέση καθυστέρηση
Βασικά στοιχεία Μοντελοποίησης και Προσομοίωσης 11
στην ουρά των n προγραμμάτων και θα τη δηλώσουμε σαν d(n). O όρος “αναμενόμενη”
στον ορισμό του d(n) σημαίνει το εξής:
n
∑Di
d$( n ) = i =1
n
ο οποίος είναι ο μέσος όρος των n Di που παρατηρήθηκαν στην προσομοίωση, συνεπώς
θα μπορούσαμε να δηλώσουμε το d$( n ) σαν D ( n ) . Θα πρέπει να σημειωθεί ότι οι
καθυστερήσεις κάποιων προγραμμάτων μπορεί να είναι ίσες με μηδέν. Αυτό ισχύει
όταν ένα πρόγραμμα τη στιγμή της άφιξής του βρίσκει τον επεξεργαστή ελεύθερο και
τιν ουρά άδεια. Το d$( n ) είναι ένας εκτιμητής που βασίζεται σε ένα δείγμα το οποίο στην
περίπτωση αυτή είναι ένα σύνολο τρεξιμάτων προσομοίωσης μεγέθους 1.
Ενα άλλο μέτρο της απόδοσης του συστήματος είναι ο αναμενόμενος μέσος αριθμός
προγραμμάτων που περιμένουν εξυπηρέτηση στην ουρά και που τον δηλώνουμε με
12 Μοντελοποίηση και Προσομοίωση
q(n). Το n είναι απαραίτητο στη δήλωση αυτή γιατί δείχνει ότι αυτός ο “μέσος όρος”
υπολογίζεται κατά τη διάρκεια του χρόνου που χρειάζεται να παρατηρηθούν οι n
καθυστερήσεις που ορίζουν τη συνθήκη τέλους. Αυτός είναι ένας διαφορετικός τύπος
μέσου όρου από ότι είναι η μέση καθυστέρηση στην ουρά γιατί υπολογίζεται με βάση
το χρόνο που είναι συνεχής και όχι με βάση τα προγράμματα που είναι διακριτά. Αρα
θα πρέπει να ορίσουμε τι σημαίνει μέσο αριθμό προγραμμάτων στην ουρά σε σχέση με
το χρόνο.
Εστω λοιπόν ότι με Q(t) δηλώνουμε τον αριθμό των προγραμμάτων στην ουρά στον
χρόνο t, όπου t ≥ 0 και έστω ότι T(n) είναι ο χρόνος που απαιτείται για να
παρατηρήσουμε τις n καθυστερήσεις στην ουρά. Συνεπώς το Q(t) είναι ένας μη
αρνητικός ακέραιος αριθμός για κάθε t μεταξύ 0 και T(n). Επίσης, αν pi είναι το
αναμενόμενο μέρος του χρόνου που το Q(t) είναι ίσο με i, τότε το q(n) μπορεί να
οριστεί ως εξής
∞
q( n ) = ∑ i pi
i =0
όπου p$ i είναι το παρατηρηθέν και όχι το αναμενόμενο τμήμα του χρόνου κατά τη
διάρκεια της προσομοίωσης που υπήρχαν i προγράμματα στην ουρά. Το q$( n ) μπορεί να
γραφεί και διαφορετικά. Αν Τi είναι ο συνολικός χρόνος κατά τη διάρκεια της
προσομοίωσης που η ουρά έχει μήκος i, τότε
Tο άθροισμα στον αριθμητή της Εξίσωσης (1.4) είναι η περιοχή κάτω από την καμπύλη
Q(t) ανάμεσα από την αρχή και το τέλος της προσομοίωσης (Σχήμα 1.6). Συνεπώς
μπορούμε να γράψουμε
∞ T (n)
∑ iT i = ∫0 Q (t ) d ( t )
i =0
T (n)
∫
q$( n ) = 0
Q (t ) d ( t )
(1.5)
T (n)
Q(t)
.2
.1
Αφίξεις
Αναχωρήσεις
Σχήμα 1.6
14 Μοντελοποίηση και Προσομοίωση
Q(t) κατά μήκος του χρόνου t
Το τρίτο μέτρο της απόδοσης του συστήματος αφορά το πόσο απασχολημένος είναι ο
εξυπηρέτης. Η αναμενόμενη χρησιμοποίηση (utilization) του εξυπηρέτη είναι το
αναμενόμενο τμήμα του χρόνου κατά τη διάρκεια της προσομοίωσης (από 0 μέχρι Τ(n))
που ο εξυπηρέτης είναι απασχολημένος.
Το u$ (n) μπορεί να υπολογιστεί από την προσομοίωση σημειώνοντας τους χρόνους κατά
τους οποίους ο εξυπηρέτης αλλάζει κατάσταση και κάνοντας τις απαραίτητες
αφαιρέσεις και τη διαίρεση. Μπορούμε όμως να δούμε την ποσότητα αυτή σαν ένα
μέσο όρο συνεχούς χρόνου (continuous-time average), όπως και το μέσο μήκος ουράς,
ορίζοντας τη συνάρτηση B(t) να παριστάνει αν ο εξυπηρέτης είναι απασχολημένος
(busy) ή ελεύθερος (idle) σε χρόνο t ως εξής
⎧ 1 busy
Β (t ) = ⎨
⎩ 0 idle
Το Σχήμα 1.7 παριστάνει τη συνάρτηση B(t) για την ίδια περίπτωση προσομοίωσης
συστήματος με εκείνη του Σχήματος 1.6.
Βασικά στοιχεία Μοντελοποίησης και Προσομοίωσης 15
B(t)
.1
Αφίξεις
Αναχωρήσεις
Σχήμα 1.7
Β(t) κατά μήκος του χρόνου t
Συνεπώς ο εκτιμητής u$ (n) θα μπορούσε να εκφραστεί σαν το τμήμα του χρόνου που η
συνάρτηση B(t) είναι ίση με 1. Αρα μπορούμε να ορίσουμε το u$ (n) ως εξής
T (n)
∫
u$( n ) = 0
B (t ) dt
(1.6)
T (n)
και επομένως ο u$ (n) είναι ο συνεχής μέσος όρος της συνάρτησης B(t).
O μέσος αριθμός των προγραμμάτων στην ουρά σε σχέση με το χρόνο και το τμήμα
του χρόνου που ο εξυπηρέτης είναι απασχολημένος είναι παραδείγματα στατιστικών
στοιχείων συνεχούς χρόνου (continuous-time statistics) επειδή ορίζονται από τη
συλλογή των τυχαίων μεταβλητών {Q(t)} και {B(t)} αντίστοιχα, κάθε μια από τις
16 Μοντελοποίηση και Προσομοίωση
οποίες ορίζεται από την παράμετρο συνεχούς χρόνου t, όπου το t είναι πραγματικός και
ισχύει t∈[0, ∞).
Μια συνεχής τυχαία μεταβλητή Χ λέγεται ότι είναι μια εκθετική τυχαία μεταβλητή με
παράμετρο λ>0 ή ότι έχει μια εκθετική κατανομή με παράμετρο λ>0 (exponential
distribution with parameter λ) εάν η συνάρτηση πυκνότητας f ορίζεται από τον τύπο
⎧ λe− λx , x > 0
f (x ) = ⎨ (1.7)
⎪⎩0, x ≤0
x
F(x) = P(X≤ x) = ∫−∞ f (t ) dt για κάθε πραγματικό x
∞
μ = Ε[Χ] = ∫−∞ x f ( x ) dx
∞
∫−∞ ( x − E [X ])
2
σ2 = Var[X] = E[(X - E[X])2] = f ( x ) dx
Εστω για παράδειγμα ότι λ = 2 και έστω ότι επιθυμούμε να υπολογίσουμε την
πιθανότητα με την οποία η Χ έχει μια τιμή μεταξύ 1 και 3. Η πιθανότητα αυτή είναι η
περιοχή κάτω από την καμπύλη y = 2e −2 x (όπως φαίνεται στο Σχήμα 1.7) ανάμεσα στο
x =1 και στο x=3.
18 Μοντελοποίηση και Προσομοίωση
Σχήμα 1.7
Συνάρτηση πυκνότητας πιθανότητας για εκθετική τυχαία μεταβλητή με παράμετρο 2. Η
σκιασμένη επιφάνεια παριστάνει την πιθανότητα με την οποία η Χ έχει μια τιμή μεταξύ 1 και 3.
0,75
F(x) = 1 - e-2x
0,5
0,25
0
0 0,5 1 1,5 2 2,5 3
Σχήμα 1.8
Συνάρτηση κατανομής για εκθετική τυχαία μεταβλητή με παράμετρο 2.
Για να γίνει ο υπολογισμός αυτός έχουμε χρησιμοποιήσει το γεγονός ότι για μια συνεχή
τυχαία μεταβλητή Χ με a < b, ισχύει
(H παραπάνω σχέση είναι αληθής διότι εξ’ ορισμού, μια συνεχής τυχαία μεταβλητή Χ
έχει την ιδιότητα P[X = x] = 0 για κάθε πραγματικό x).
Mπορεί εύκολα να αποδειχτεί ότι μια εκθετική τυχαία μεταβλητή με παράμετρο λ έχει
μέση τιμή μ = Ε[Χ] = 1/λ και Var[X] = 1/λ2 = Ε[Χ]2.
20 Μοντελοποίηση και Προσομοίωση
1.8.2 Ομοιόμορφες Τυχαίες Μεταβλητές
Μια συνεχής τυχαία μεταβλητή Χ λέγεται ότι είναι μια ομοιόμορφη τυχαία μεταβλητή
(uniform random variable) στο διάστημα από a έως b ή ότι είναι ομοιόμορφα
κατανεμημένη (uniformly distributed) στο διάστημα από a έως b, εάν η συνάρτηση
πυκνότητας πιθανότητας ορίζεται από τον τύπο
⎧1 / ( b − a ), a < x < b
f (x) = ⎨ (1.9)
⎩ 0, διαφορετικά
⎧ 0, x<a
⎪x − a
F( x ) = ⎨ , a≤x<b (1.10)
⎪ b − a
⎩ 1, x≥b
1/(b-a)
x a b
Σχήμα 1.9
Συνάρτηση πυκνότητας πιθανότητας για ομοιόμορφη κατανομή στο διάστημα από a έως b.
1.0
F(x)
0.5
0.0
x a b
Σχήμα 1.10
Συνάρτηση κατανομής για ομοιόμορφη κατανομή στο διάστημα από a έως b.
και ότι
Var[X] = ∫ab( x − E [ X ])2 f ( x ) dx = (b-a)2 /12
22 Μοντελοποίηση και Προσομοίωση
Μια συνεχής τυχαία μεταβλητή Χ είναι κανονική τυχαία μεταβλητή (normal random
variable) με παραμέτρους μ και σ > 0 εάν έχει συνάρτηση πυκνότητας πιθανότητας
1 ⎡ 1 ⎤
f (x ) = exp ⎢− (( x − μ ) / σ )2 ⎥, x real (1.11)
σ 2π ⎣ 2 ⎦
Σε μια τέτοια περίπτωση έχουμε τον ακόλουθο συμβολισμό “Η Χ είναι Ν(μ, σ2)”. Στο
Σχήμα 1.11 φαίνεται η συνάρτηση πυκνότητας της κανονικής κατανομής για μ = 0 και
σ = 1.
1 ⎡ 1 ⎤
φ( x ) = exp ⎢− x 2 ⎥, x real (1.12)
2π ⎣ 2 ⎦
⎡ 1 ⎤
exp ⎢− t 2 ⎥
x
Φ( x ) = ∫ φ(t ) dt = ∫
x ⎣ 2 ⎦ dt (1.13)
−∞ −∞ 2π
H τυπική κανονική κατανομή είναι σπουδαία γιατί κάθε κανονική κατανομή μπορεί να
υπολογιστεί συναρτήσει αυτής. Ετσι, αν η Χ είναι κανονικά κατανεμημένη με
παραμέτρους μ και σ (η Χ είναι Ν(μ, σ2)), τότε
Βασικά στοιχεία Μοντελοποίησης και Προσομοίωσης 23
⎡ 1 ⎤ ⎡ 1 ⎤
exp ⎢− ((t − μ ) / σ )2 ⎥
x ( x − μ )/ σ exp ⎢− y 2 ⎥
⎣ 2 ⎦ dy = Φ⎛ x − μ ⎞
FX ( x ) =
∫−∞
⎣ 2
σ 2π
⎦ dt =
∫
−∞ 2π
⎜
⎝ σ ⎠
⎟ (1.14)
Σχήμα 1.11
Η συνάρτηση πυκνότητας πιθανότητας f(x) της κανονικής κατανομής με μ = 0 και σ = 1.
ΘΕΩΡΗΜΑ 1.1 Εστω ότι Χ1, Χ2,...,Χn είναι n ανεξάρτητες τυχαίες μεταβλητές τέτοιες
ώστε η Χ1 είναι Ν(μ1, σ12), η Χ2 είναι Ν(μ2, σ22),.....η Χn είναι Ν(μn, σn2). Τότε η Υ = Χ1
+ Χ2 + ..... + Χn είναι κανονικά κατανεμημένη με μέση τιμή μ1+ μ2+...+ μn, και
διακύμανση σ12+ σ22+...+ σn2.
Εάν ο χρόνος εξυπηρέτησης ενός συστήματος ουρών έχει μεγάλη τυπική απόκλιση σε
σχέση με τη μέση τιμή, τότε μπορεί να προσεγγιστεί από μια υπερεκθετική
(hyperexponetial) κατανομή. Συνεπώς κατ’ αντιστοιχία, μια κατανομή στην οπoία η
τυπική απόκλιση είναι μικρότερη από τη μέση τιμή ονομάζεται υποεκθετική
(hypoexponential). Αρα η σταθερή κατανομή (constant distribution) είναι η πιο
υποεκθετική από όλες.
Στο Σχήμα 1.12 παριστάνεται το πιο απλό μοντέλο της υπερεκθετικής κατανομής.
Το μοντέλο αυτό δείχνει δύο παράλληλες φάσεις (stages). H μία φάση έχει εκθετική
εξυπηρέτηση με παράμετρο μ1 και η άλλη έχει επίσης εκθετική εξυπηρέτηση με
παράμετρο μ2. Ενας πελάτης ο οποίος μπαίνει στο μέσο αυτό εξυπηρέτησης επιλέγει
την μία φάση με πιθανότητα α1 ή την άλλη φάση με πιθανότητα α2, όπου ισχύει α1 + α2
= 1. Αφού ο πελάτης αυτός εξυπηρετηθεί στη φάση που επέλεξε, με χρόνο
εξυπηρέτησης εκθετικά κατανεμημένο με μέση ταχύτητα εξυπηρέτησης μi (μέση τιμή
χρόνου εξυπηρέτησης 1/ μi), αναχωρεί. Ενας νέος πελάτης δεν επιτρέπεται να μπεί στο
μέσο εξυπηρέτησης πριν τελειώσει η εξυπηρέτηση του αρχικού πελάτη.
μ1
α1 Stage 1
α
2
μ2
Stage 2
Σχήμα 1. 12
Mοντέλο υπερεκθετικής κατανομής με 2 στάδια
f (t ) = α1 μ1e − μ1 t + α2 μ2 e − μ 2 t (1.15)
Ισχύει
Θα πρέπει να σημειωθεί ότι για συγκεκριμένη μέση τιμή Ε[Χ], η διακύμανση της Χ
ελαττώνεται καθώς αυξάνει το k και τείνει προς το μηδέν. Συνεπώς μια Erlang-k
κατανομή μπορεί να χρησιμοποιηθεί για την προσέγγιση οποιασδήποτε μη αρνητικής
τυχαίας μεταβλητής της οποίας η διακύμανση δεν υπερβαίνει το τετράγωνο της μέσης
τιμής.
λk λk
Stage 1 Stage 2
Σχήμα 1.13
Mοντέλο Erlang-k κατανομής με δύο φάσεις.