You are on page 1of 24

Προσομοίωση διακριτών γεγονότων

Η προσομοίωση διακριτών γεγονότων (discrete-event simulation) αφορά τη


μοντελοποίηση ενός συστήματος καθώς αυτό εξελίσσεται με την πάροδο του χρόνου.

Στην αναπαράσταση ενός τέτοιου συστήματος οι μεταβλητές κατάστασης


μεταβάλλονται στιγμιαία σε διακεκριμένες χρονικές στιγμές. Χρησιμοποιώντας τη
μαθηματική ορολογία, θα μπορούσαμε να πούμε ότι το σύστημα μπορεί να αλλάζει
μόνον σε μετρητό αριθμό σημείων στο χρόνο.

Ενα γεγονός (event) μπορεί να συμβεί στα σημεία αυτά, όπου σαν γεγονός ορίζεται ένα
στιγμιαίο συμβάν το οποίο μπορεί να αλλάξει την κατάσταση του συστήματος.

Εξ αιτίας της δυναμικής φύσης των μοντέλων προσομοίωσης διακριτών γεγονότων, θα


πρέπει να παρακολουθούμε την τρέχουσα τιμή του χρόνου προσομοίωσης καθώς η
προσομοίωση προχωρά. Επίσης χρειαζόμαστε κάποιον μηχανισμό που να προχωρά το
χρόνο προσομοίωσης από τη μια τιμή στην άλλη.

Σε ένα μοντέλο προσομοίωσης, ονομάζουμε ρολόι προσομοίωσης (simulation clock) τη


μεταβλητή που δίνει την τρέχουσα τιμή του χρόνου προσομοίωσης. Η μονάδα χρόνου
για το ρολόι προσομοίωσης δεν ορίζεται ρητώς όταν το μοντέλο έχει γραφεί σε μια
γλώσσα γενικού σκοπού (όπως είναι η C) και θεωρείται ότι είναι η ίδια με τις μονάδες
των παραμέτρων εισόδου. Θα πρέπει να έχουμε υπ’ όψιν ότι γενικά ο χρόνος
προσομοίωσης δεν έχει καμία σχέση με το χρόνο που απαιτείται για να τρέξει το
μοντέλο προσομοίωσης στον υπολογιστή.

Η πιο γνωστή μέθοδος για να προχωρήσει το ρολόι προσομοίωσης είναι η μέθοδος: “να
προχωρήσει ο χρόνος στο επόμενο γεγονός” ( next-event time advance).

• Με τη μέθοδο αυτή το ρολόι προσομοίωσης παίρνει αρχική τιμή μηδέν και


υπολογίζονται οι χρόνοι που θα συμβούν τα μελλοντικά γεγονότα.
4 Μοντελοποίηση και Προσομοίωση
• Στη συνέχεια το ρολόι προχωράει και δείχνει το χρόνο του πιο επικείμενου
(πρώτου) μελλοντικού γεγονότος. Στο σημείο αυτό ενημερώνεται η κατάσταση
του συστήματος ότι έχει συμβεί κάποιο γεγονός, αλλά πρέπει και εμείς να
ενημερώσουμε τη γνώση μας για τον αριθμό των γεγονότων που πρόκειται να
συμβούν στο μέλλον.

• Τότε το ρολόι προσομοίωσης προχωράει και δείχνει το χρόνο του καινούργιου


πιο επικείμενου γεγονότος, ενημερώνεται η κατάσταση του συστήματος και
ορίζονται οι χρόνοι που θα συμβούν τα μελλοντικά γεγονότα.

• Η διαδικασία αυτή που προχωρά το ρολόι προσομοίωσης από το ένα γεγονός


στο άλλο συνεχίζεται έως ότου τελικά ικανοποιηθεί κάποια συνθήκη τέλους.

Παράγοντες και Οργάνωση ενός Μοντέλου Προσομοίωσης Διακριτών


Γεγονότων

Ολα τα μοντέλα προσομοίωσης διακριτών γεγονότων περιέχουν ορισμένους


παράγοντες οι οποίοι είναι οργανωμένοι με κάποια συγκεκριμένη λογική για την
εύκολη κωδικοποίηση, εύρεση λαθών και για μελλοντικές μεταβολές του
προγράμματος του μοντέλου προσομοίωσης.

Πιο συγκεκριμένα, σύμφωνα με Law and Kelton οι επόμενοι παράγοντες συναντώνται


στα περισσότερα μοντέλα προσομοίωσης διακριτών γεγονότων:

Κατάσταση συστήματος: Μια συλλογή μεταβλητών κατάστασης που είναι


απαραίτητες για την περιγραφή του συστήματος κάποια συγκεκριμένη χρονική
στιγμή.

Ρολόι προσομοίωσης: Μια μεταβλητή που δίνει την τρέχουσα τιμή του χρόνου
προσομοίωσης.
Βασικά στοιχεία Μοντελοποίησης και Προσομοίωσης 5
Λίστα γεγονότων: Μια λίστα που περιέχει τον επόμενο χρόνο που θα συμβεί ο κάθε
τύπος γεγονότος.

Στατιστικοί μετρητές: Είναι μεταβλητές που αποθηκεύουν στατιστικές πληροφορίες


σχετικά με την απόδοση του συστήματος.

Ρουτίνα έναρξης: Ενα υποπρόγραμμα το οποίο ξεκινάει το μοντέλο προσομοίωσης


στο χρόνο μηδέν.

Ρουτίνα χρόνου: Είναι ένα υποπρόγραμμα το οποίο καθορίζει ποιο θα είναι το


επόμενο γεγονός που θα συμβεί από την λίστα γεγονότων και το οποίο στη
συνέχεια προχωρά το ρολόι προσομοίωσης για να δείξει το χρόνο που θα συμβεί το
γεγονός αυτό.

Ρουτίνα γεγονότος: Ενα υποπρόγραμμα το οποίο ενημερώνει την κατάσταση του


συστήματος όταν συμβαίνει ένα γεγονός κάποιου συγκεκριμένου τύπου (υπάρχει
μια ρουτίνα γεγονότος για κάθε τύπο γεγονότος).

Ρουτίνες βιβλιοθηκών: Ενα σύνολο υποπρογραμμάτων τα οποία χρησιμοποιούνται


για την παραγωγή τυχαίων παρατηρήσεων από κατανομές πιθανοτήτων που έχουν
οριστεί σαν τμήμα του μοντέλου προσομοίωσης.

Ρουτίνα αποτελεσμάτων: Είναι ένα υποπρόγραμμα το οποίο υπολογίζει εκτιμήτριες


των παραμέτρων της απόδοσης που αποτελούν το στόχο της μελέτης (από τους
στατιστικούς μετρητές) και παράγει ένα σύνολο αποτελεσμάτων όταν τελειώσει η
προσομοίωση.

Κυρίως πρόγραμμα: Ενα υποπρόγραμμα το οποίο καλεί τη ρουτίνα χρόνου να


καθορίσει το επόμενο γεγονός και στη συνέχεια μεταφέρει τον έλεγχο στην
αντίστοιχη ρουτίνα γεγονότος για να ενημερωθεί κατάλληλα η κατάσταση του
συστήματος. Το κυρίως πρόγραμμα επίσης ελέγχει την συνθήκη τέλους και καλεί
τη ρουτίνα αποτελεσμάτων όταν τελειώσει η προσομοίωση.
6 Μοντελοποίηση και Προσομοίωση

Η ροή ελέγχου ανάμεσα στους παράγοντες αυτούς φαίνεται στο Σχήμα 1.4. Το
κυρίως πρόγραμμα καλεί τη ρουτίνα έναρξης. Στη ρουτίνα αυτή το ρολόι
προσομοίωσης παίρνει την τιμή μηδέν οπότε και η προσομοίωση ξεκινάει στο χρόνο 0,
και παίρνουν αρχικές τιμές οι στατιστικοί μετρητές καθώς και η λίστα γεγονότων.

• Mόλις επιστρέψει ο έλεγχος στο κυρίως πρόγραμμα, καλεί τη ρουτίνα χρόνου


για να αποφασιστεί ποιος είναι ο τύπος του πιο επικείμενου γεγονότος.
• Εάν το γεγονός που θα συμβεί είναι π.χ. τύπου i, τότε ο χρόνος προσομοίωσης
προχωράει και δείχνει το χρόνο που θα συμβεί το γεγονός του τύπου i, και ο
έλεγχος επιστρέφει στο κυρίως πρόγραμμα.
• Τότε το κυρίως πρόγραμμα καλεί τη ρουτίνα γεγονότος i, όπου συμβαίνουν τα
ακόλουθα:
1) η κατάσταση του συστήματος ενημερώνεται με το συμβάν του
γεγονότος τύπου i,
2) ενημερώνονται οι στατιστικοί μετρητές, και
3) υπολογίζονται οι χρόνοι που θα συμβούν τα μελλοντικά γεγονότα και
ενημερώνεται η λίστα γεγονότων.
Βασικά στοιχεία Μοντελοποίησης και Προσομοίωσης 7

Εναρξη

Ρουτίνα έναρξης
Κυρίως πρόγραμμα
0. Κάλεσε τη ρουτίνα
1. Θέσε το Ρουτίνα χρόνου
Εναρξης
ρολόϊ προσομοίωσης = 0
2. Θέσε αρχικές συνθήκες 0 1. Καθόρισε τον τύπο
Με επανάληψη τα 1
στην κατάσταση του του επόμενου
και 2: 1
συστήματος και γεγονότος, π.χ. i
1. Κάλεσε τη ρουτίνα
στους στατιστικούς 2. Προχώρησε το ρολόϊ
χρόνου
μετρητές i της προσομοίωσης
2. Κάλεσε τη ρουτίνα
3. Θέσε αρχικές τιμές
γεγονότος i
στη λίστα γεγονότων

1. Ενημέρωσε την Ρουτίνες βιβλιοθηκών


κατάσταση του
συστήματος
Ρουτίνα γεγονότος i 2. Ενημέρωσε τους Δημιούργησε τυχαίες
στατιστικούς μετρητές παρατηρήσεις
3. Δημιούργησε μελλοντικά
γεγονότα και πρόσθεσέ
τα στη λίστα γεγονότων

όχι
Τέλος
Προσομοίωσης;

ναι

1. Να υπολογισθούν οι
Ρουτίνα αποτελεσμάτων εκτιμήσεις
που ενδιαφέρουν
2. Να γραφούν τα
αποτελέσματα

Τέλος

Σχήμα 1.4
Μέθοδος “να προχωρήσει ο χρόνος στο επόμενο γεγονός”
8 Μοντελοποίηση και Προσομοίωση

Πολλές φορές πρέπει να δημιουργήσουμε τυχαίες παρατηρήσεις από κατανομές


πιθανοτήτων ούτως ώστε να καθοριστούν οι χρόνοι αυτών των μελλοντικών γεγονότων.
Μια τέτοια παρατήρηση που δημιουργείται ονομάζεται τυχαία παρατήρηση (random
variate).

Aφού εκτελεστεί η απαραίτητη λειτουργία, είτε στο κυρίως πρόγραμμα ή στη ρουτίνα
γεγονότος i, γίνεται έλεγχος εάν πληρείται κάποια συνθήκη τέλους ούτως ώστε να
σταματήσει η προσομοίωση.

Εάν πρέπει να σταματήσει η προσομοίωση αυτή τη χρονική στιγμή, καλείται από το


κυρίως πρόγραμμα η ρουτίνα αποτελεσμάτων για να υπολογίσει τις εκτιμήσεις (από
τους στατιστικούς μετρητές) εκείνων των παραμέτρων της απόδοσης που μας
ενδιαφέρουν και παράγει ένα σύνολο αποτελεσμάτων.

Εάν δεν πληρείται η συνθήκη τέλους της προσομοίωσης, ο έλεγχος επιστρέφεται στο
κυρίως πρόγραμμα και εκτελείται συνεχώς ο κύκλος “κυρίως πρόγραμμα - ρουτίνα
χρόνου - κυρίως πρόγραμμα - ρουτίνα γεγονότος - έλεγχος τέλους κύκλου” μέχρις ότου
ισχύσει η συνθήκη τέλους.

Στα προηγούμενα ορίσαμε ότι ένα σύστημα είναι μια συλλογή καλώς ορισμένων
οντοτήτων. Οι οντότητες χαρακτηρίζονται από τιμές δεδομένων που ονομάζονται
χαρακτηριστικά (attributes). Αυτά τα χαρακτηριστικά είναι μέρος της κατάστασης του
συστήματος για ένα μοντέλο προσομοίωσης διακριτών γεγονότων.

Οντότητες με κάποια κοινή ιδιότητα ομαδοποιούνται σε λίστες (lists) (ή αρχεία (files) ή


σύνολα (sets)). Για κάθε οντότητα υπάρχει μια εγγραφή (record) στη λίστα που
αποτελείται από τα χαρακτηριστικά της οντότητας. Η σειρά με την οποία οι εγγραφές
τοποθετούνται στη λίστα εξαρτάται από κάποιο συγκεκριμένο κανόνα.

Η οργάνωση ενός προγράμματος προσομοίωσης διακριτών γεγονότων που


χρησιμοποιεί το μηχανισμό “να προχωρήσει ο χρόνος στο επόμενο γεγονός”
Βασικά στοιχεία Μοντελοποίησης και Προσομοίωσης 9
χρησιμοποιείται όταν γράφουμε τον κώδικα για την προσομοίωση σε μια γλώσσα
προγραμματισμού γενικού σκοπού όπως είναι η C. Ο μηχανισμός αυτός στη
μοντελοποίηση και προσομοίωση ονομάζεται “τρόπος προσέγγισης με σχεδιασμό
γεγονότων” αφού ορίζονται πλήρως οι χρόνοι των μελλοντικών γεγονότων που
σχεδιάζονται να συμβούν στο μέλλον της προσομοίωσης.

Υπάρχει όμως και μια άλλη τεχνική στη μοντελοποίηση και προσομοίωση που
ονομάζεται “ τρόπος προσέγγισης με διεργασίες” η οποία βλέπει την προσομοίωση σε
σχέση με τις οντότητες που συνεπάγονται. Ο κώδικας προγράμματος που γράφεται
περιγράφει την εμπειρία μιας τυπικής οντότητας καθώς αυτή κινείται μέσα στο
σύστημα. Το να γραφεί κώδικας για μοντέλα προσομοίωσης με τη μέθοδο διεργασίας
απαιτείται λογισμικό ειδικού σκοπού (π.χ. GPSS/H). Παρ’ όλα αυτά όμως, ακόμη και
όταν ακολουθείται η τακτική της μεθόδου διεργασίας, η προσομοίωση διεξάγεται κατά
βάθος με τη λογική της μεθόδου σχεδιασμού γεγονότων.

1.7 Προσομοίωση ενός συστήματος ουρών με έναν εξυπηρέτη

Στην παράγραφο αυτή θα εξετάσουμε την προσομοίωση ενός συστήματος ουρών με


έναν εξυπηρέτη (Σχήμα 1.5). Εστω ότι το σύστημα αυτό παριστάνει τον επεξεργαστή
(processor) ενός υπολογιστικού συστήματος. Εστω για παράδειγμα ότι οι εργασίες
(jobs) ή προγράμματα φθάνουν στον επεξεργαστή και ζητούν εξυπηρέτηση
(επεξεργασία, processing).

Οι μεταξύ των αφίξεων χρόνοι των προγραμμάτων Α1, Α2, ....... είναι ανεξάρτητες και
όμοια κατανεμημένες τυχαίες μεταβλητές (independent and identically distributed
random variables, IID). Ο όρος “όμοια κατανεμημένες” σημαίνει ότι οι μεταξύ των
αφίξεων χρόνοι έχουν την ίδια κατανομή.

Ενα πρόγραμμα το οποίο φθάνει και βρίσκει τον εξυπηρέτη (τον επεξεργαστή)
ελεύθερo (idle) αρχίζει να εξυπηρετείται (εκτελείται) αμέσως. Οι χρόνοι εξυπηρέτησης
10 Μοντελοποίηση και Προσομοίωση
S1, S2, .......των διαδοχικών προγραμμάτων είναι IID τυχαίες μεταβλητές και είναι
ανεξάρτητες από τους μεταξύ των αφίξεων χρόνους.

Ενα πρόγραμμα το οποίο φθάνει και βρίσκει τον εξυπηρέτη απασχολημένο, μπαίνει στο
τέλος της ουράς. Μόλις ο εξυπηρέτης τελειώσει με την εξυπηρέτηση ενός
προγράμματος, διαλέγει ένα πρόγραμμα από αυτά που περιμένουν στην ουρά (εφ’ όσον
η ουρά δεν είναι άδεια) σύμφωνα με την αρχή “όποιος φθάνει πρώτος εξυπηρετείται
πρώτος” (first-come, first-served, FCFS).

H προσομοίωση ξεκινάει με άδεια ουρά και ελεύθερο εξυπηρέτη. Κανένα πρόγραμμα


δεν έχει φθάσει ακόμη. Στο χρόνο 0 θα αρχίσουμε να περιμένουμε την άφιξη του
πρώτου προγράμματος που θα συμβεί μετά από χρόνο Α1. Θα μπορούσαμε βέβαια να
υποθέσουμε ότι η πρώτη άφιξη συμβαίνει σε χρόνο 0.

εξυπηρέτης
ουρά

αφίξεις αναχωρήσεις

Σχήμα 1.5
Σύστημα ουράς με έναν εξυπηρέτη

Εστω ότι επιθυμούμε να προσομοιώσουμε το σύστημα αυτό έως ότου τελειώσουν οι


καθυστερήσεις (delays) στην ουρά ενός συγκεκριμένου αριθμού προγραμμάτων n,
δηλαδή η προσομοίωση θα σταματήσει όταν το n οστό πρόγραμμα αρχίσει να
εξυπηρετείται. Συνεπώς ο χρόνος (time) που τελειώνει η προσομοίωση είναι μια τυχαία
μεταβλητή που εξαρτάται από τις παρατηρηθείσες τιμές των τυχαίων μεταβλητών των
μεταξύ των αφίξεων χρόνων και των χρόνων εξυπηρέτησης.

Για να μετρήσουμε την απόδοση αυτού του συστήματος, θα βρούμε εκτιμήσεις τριών
ποσοτήτων. Πρώτα θα εκτιμήσουμε την αναμενόμενη (expected) μέση καθυστέρηση
Βασικά στοιχεία Μοντελοποίησης και Προσομοίωσης 11
στην ουρά των n προγραμμάτων και θα τη δηλώσουμε σαν d(n). O όρος “αναμενόμενη”
στον ορισμό του d(n) σημαίνει το εξής:

• Σε ένα τρέξιμο (run) της προσομοίωσης, η πραγματική παρατηρηθείσα μέση


καθυστέρηση των n προγραμμάτων εξαρτάται από τις παρατηρήσεις των
τυχαίων μεταβλητών των μεταξύ των αφίξεων χρόνων και των χρόνων
εξυπηρέτησης που έτυχε να σημειώσουμε.

• Σε ένα άλλο τρέξιμο της προσομοίωσης μπορεί να προκύψουν διαφορετικοί


χρόνοι αφίξεων και εξυπηρετήσεων οπότε και θα προκύψει διαφορετική τιμή
για τη μέση καθυστέρηση των n προγραμμάτων. Επομένως η μέση
καθυστέρηση για ένα τρέξιμο της προσομοίωσης θεωρείται και αυτή ως τυχαία
μεταβλητή. Αυτό που ζητάμε να εκτιμήσουμε, δηλαδή το d(n), είναι η
αναμενόμενη τιμή αυτής της τυχαίας μεταβλητής. Θα μπορούσαμε να πούμε ότι
d(n) είναι ο μέσος όρος από έναν μεγάλο αριθμό μέσων καθυστερήσεων n
προγραμμάτων. Εστω ότι από ένα τρέξιμο της προσομοίωσης προκύπτουν οι
καθυστερήσεις προγραμμάτων D1, D2, ..., Dn. Ενας προφανής εκτιμητής του
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

Για να εκτιμήσουμε το q(n) με την προσομοίωση, αντικαθιστούμε τα pi με εκτιμήσεις


τους και έχουμε

q$( n ) = ∑ i p$ i (1.3)
i =0

όπου p$ i είναι το παρατηρηθέν και όχι το αναμενόμενο τμήμα του χρόνου κατά τη
διάρκεια της προσομοίωσης που υπήρχαν i προγράμματα στην ουρά. Το q$( n ) μπορεί να
γραφεί και διαφορετικά. Αν Τi είναι ο συνολικός χρόνος κατά τη διάρκεια της
προσομοίωσης που η ουρά έχει μήκος i, τότε

T(n) = Τ0 + Τ1 + Τ2 + ..... και p$ i = Τi / T(n)

και συνεπώς η Εξίσωση (1.3) μπορεί να ξαναγραφεί ως εξής


Βασικά στοιχεία Μοντελοποίησης και Προσομοίωσης 13

∑ iT i
q$( n ) = i =0 (1.4)
T (n)

Tο άθροισμα στον αριθμητή της Εξίσωσης (1.4) είναι η περιοχή κάτω από την καμπύλη
Q(t) ανάμεσα από την αρχή και το τέλος της προσομοίωσης (Σχήμα 1.6). Συνεπώς
μπορούμε να γράψουμε

∞ T (n)
∑ iT i = ∫0 Q (t ) d ( t )
i =0

και ο εκτιμητής του q(n) μπορεί να γραφεί ως εξής

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))
που ο εξυπηρέτης είναι απασχολημένος.

Η χρησιμοποίηση είναι προφανώς ένας αριθμός μεταξύ 0 και 1 και τη συμβολίζουμε με


u(n). Aπό ένα τρέξιμο της προσομοίωσης, εκτιμητής του u(n) είναι u$ (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).

Για να ανακεφαλαιώσουμε, τα τρία μέτρα της απόδοσης είναι: η μέση


καθυστέρηση στην ουρά d$( n ) , ο μέσος αριθμός προγραμμάτων στην ουρά σε σχέση με
το χρόνο q$( n ) , και το τμήμα του χρόνου που ο εξυπηρέτης είναι απασχολημένος u$ (n).
Η μέση καθυστέρηση στην ουρά είναι ένα παράδειγμα στατιστικού στοιχείου διακριτού
χρόνου (discrete-time statistic), επειδή ορίζεται σε σχέση με τη συλλογή των τυχαίων
μεταβλητών Di, i=1,2,....

O μέσος αριθμός των προγραμμάτων στην ουρά σε σχέση με το χρόνο και το τμήμα
του χρόνου που ο εξυπηρέτης είναι απασχολημένος είναι παραδείγματα στατιστικών
στοιχείων συνεχούς χρόνου (continuous-time statistics) επειδή ορίζονται από τη
συλλογή των τυχαίων μεταβλητών {Q(t)} και {B(t)} αντίστοιχα, κάθε μια από τις
16 Μοντελοποίηση και Προσομοίωση
οποίες ορίζεται από την παράμετρο συνεχούς χρόνου t, όπου το t είναι πραγματικός και
ισχύει t∈[0, ∞).

Στη συνέχεια θα ακολουθήσει το πρόγραμμα σε γλώσσα C για την προσομοίωση του


συστήματος ουράς με έναν εξυπηρέτη (Παράγραφος 1.10, Σχήμα 1.15).

Στο πρόγραμμα αυτό η προσομοίωση θα σταματήσει όταν τελειώσουν στην ουρά


n=1000 καθυστερήσεις (συνθήκη τέλους).

Οι μεταξύ των αφίξεων χρόνοι και οι χρόνοι εξυπηρέτησης θα μοντελοποιηθούν σαν


ανεξάρτητες τυχαίες μεταβλητές από εκθετικές κατανομές με μέση τιμή 1 για τους
μεταξύ των αφίξεων χρόνους και μέση τιμή 0.5 για τους χρόνους εξυπηρέτησης. Στο
σημείο αυτό όμως θα πρέπει να περιγράψουμε την εκθετική κατανομή και τη μέθοδο με
την οποία μπορούν να δημιουργηθούν τυχαίες παρατηρήσεις με την εκθετική κατανομή.
Επίσης θα περιγράψουμε και άλλες χρήσιμες κατανομές.

1.8 Κατανομές Πιθανοτήτων

1.8.1 Εκθετικές Τυχαίες Μεταβλητές

Μια συνεχής τυχαία μεταβλητή Χ λέγεται ότι είναι μια εκθετική τυχαία μεταβλητή με
παράμετρο λ>0 ή ότι έχει μια εκθετική κατανομή με παράμετρο λ>0 (exponential
distribution with parameter λ) εάν η συνάρτηση πυκνότητας f ορίζεται από τον τύπο

⎧ λe− λx , x > 0
f (x ) = ⎨ (1.7)
⎪⎩0, x ≤0

Η συνάρτηση κατανομής F δίδεται από τον τύπο

⎧1 − e − λx = 1 − exp( − x / E [X ]), x > 0


F(x ) = ⎨ (1.8)
⎪⎩ 0, x ≤0
Βασικά στοιχεία Μοντελοποίησης και Προσομοίωσης 17

επειδή για κάθε συνεχή τυχαία μεταβλητή Χ ισχύει

x
F(x) = P(X≤ x) = ∫−∞ f (t ) dt για κάθε πραγματικό x

Επίσης, ως γνωστόν η μέση ή αναμενόμενη τιμή (mean or expected value) μιας


συνεχούς τυχαίας μεταβλητής Χ ορίζεται ως εξής


μ = Ε[Χ] = ∫−∞ x f ( x ) dx

η δε διασπορά (variance) ορίζεται ως ακολούθως


∫−∞ ( 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.

Η πιθανότητα μπορεί επίσης να υπολογιστεί χρησιμοποιώντας τη συνάρτηση


κατανομής F ( x ) = 1 − e −2 x όπως φαίνεται στο Σχήμα 1.8. Υπολογίζουμε

P[1 ≤ X ≤ 3] = F(3) − F(1) = (1− e−6 ) − (1− e−2 ) = e−2 − e−6 =


= 0.135335 - 0.002479=0.132856
Βασικά στοιχεία Μοντελοποίησης και Προσομοίωσης 19
1

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, ισχύει

P[a ≤ X ≤ b] = P[a < X ≤ b] = P[a ≤ X < b] = P[a < X < b],


επειδή
P[X = a] = P[X = b] = 0

(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.9 παριστάνεται η συνάρτηση πυκνότητας πιθανότητας μιας τυχαίας


μεταβλητής που είναι ομοιόμορφα κατανεμημένη στο διάστημα από a έως b, και στο
Σχήμα 1.10 παριστάνεται η αντίστοιχη συνάρτηση κατανομής. Ετσι η πιθανότητα ότι οι
τιμές της Χ θα βρίσκονται σε κάθε υποδιάστημα από το a έως b είναι απλώς ο λόγος
του μήκους του υποδιαστήματος προς το μήκος του συνολικού διαστήματος, δηλαδή η
πιθανότητα ότι η Χ θα βρίσκεται σε οποιοδήποτε υποδιάστημα μήκους δ είναι δ/(b- a).
Βασικά στοιχεία Μοντελοποίησης και Προσομοίωσης 21
f(x)

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.

Αποδεικνύεται εύκολα ότι

Ε[Χ] = ∫ab x f ( x ) dx = (a+b) /2

και ότι
Var[X] = ∫ab( x − E [ X ])2 f ( x ) dx = (b-a)2 /12
22 Μοντελοποίηση και Προσομοίωση

1.8.3 Κανονική κατανομή

Μια συνεχής τυχαία μεταβλητή Χ είναι κανονική τυχαία μεταβλητή (normal random
variable) με παραμέτρους μ και σ > 0 εάν έχει συνάρτηση πυκνότητας πιθανότητας

1 ⎡ 1 ⎤
f (x ) = exp ⎢− (( x − μ ) / σ )2 ⎥, x real (1.11)
σ 2π ⎣ 2 ⎦

Σε μια τέτοια περίπτωση έχουμε τον ακόλουθο συμβολισμό “Η Χ είναι Ν(μ, σ2)”. Στο
Σχήμα 1.11 φαίνεται η συνάρτηση πυκνότητας της κανονικής κατανομής για μ = 0 και
σ = 1.

Οταν είναι μ = 0 και σ = 1 τότε η Χ ονομάζεται τυπική κανονική τυχαία μεταβλητή


(standard normal random variable). Ετσι η τυπική κανονική πυκνότητα φ(.) ορίζεται
από τον τύπο

1 ⎡ 1 ⎤
φ( x ) = exp ⎢− x 2 ⎥, x real (1.12)
2π ⎣ 2 ⎦

H αντίστοιχη συνάρτηση τυπικής κανονικής κατανομής Φ(.) (standard normal


distribution function) ορίζεται ως εξής

⎡ 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.

Η κανονική κατανομή είναι η πιο σπουδαία κατανομή στην εφαρμοσμένη στατιστική


γιατί πολλές χρήσιμες τυχαίες μεταβλητές έχουν κανονική ή σχεδόν κανονική κατανομή
και κυρίως λόγω του κεντρικού οριακού θεωρήματος (central limit theorem) που θα
ακολουθήσει σε επόμενο κεφάλαιο.

1.8.4 Υπερεκθετική Κατανομή


24 Μοντελοποίηση και Προσομοίωση

Εάν ο χρόνος εξυπηρέτησης ενός συστήματος ουρών έχει μεγάλη τυπική απόκλιση σε
σχέση με τη μέση τιμή, τότε μπορεί να προσεγγιστεί από μια υπερεκθετική
(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 στάδια

Έτσι η συνάρτηση πυκνότητας πιθανότητας δίδεται από τον τύπο


Βασικά στοιχεία Μοντελοποίησης και Προσομοίωσης 25

f (t ) = α1 μ1e − μ1 t + α2 μ2 e − μ 2 t (1.15)

Ισχύει

Ε[S] = (α1 / μ1) + (α2 / μ2) (1.16)


και

Ε[S2] = (2α1 / μ12)+ (2α2 / μ22) (1.17)


και επομένως
2
2 2 2a1 2a2 ⎛a a ⎞
Var[S ] = E [S ] − E [S ] = + −⎜ 1 + 2⎟ (1.18)
μ12 μ2 2 ⎝ μ1 μ2 ⎠

Η συνάρτηση κατανομής ενός υπερεκθετικού χρόνου εξυπηρέτησης με 2 στάδια


μπορεί να υπολογιστεί από την ολοκλήρωση του τύπου 1.15 που δίδει

F(t) = P[S ≤ t] = 1 − α1e − μ1 t − α2 e − μ2 t (1.19)

1.8.5 Erlang-k Κατανομή

Ο Δανός μαθηματικός Α.Κ. Erlang χρησιμοποίησε μια ειδική τάξη τυχαίων


μεταβλητών, οι οποίες ονομάζονται Erlang-k μεταβλητές, στη μελέτη του σχετικά με
καθυστερήσεις στις τηλεφωνικές επικοινωνίες.
Το φυσικό μοντέλο που ο Erlang είχε σκεφτεί ήταν ένα μέσο εξυπηρέτησης
αποτελούμενο από k ταυτόσημες ανεξάρτητες φάσεις, όπου η κάθε φάση να έχει μια
εκθετική κατανομή για τον χρόνο εξυπηρέτησης. Ο Erlang ήθελε αυτό το ειδικό μέσο
εξυπηρέτησης να έχει την ίδια μέση τιμή χρόνου εξυπηρέτησης με ένα μέσο μοναδικής
εξυπηρέτησης του οποίου ο χρόνος εξυπηρέτησης ήταν εκθετικός με παράμετρο λ.
Ετσι αν η Χ είναι μια Erlang-k τυχαία μεταβλητή με παράμετρο λ, (ή η Χ έχει μια
Erlang κατανομή με παραμέτρους k και λ), τότε X = ∑i =1Y i όπου τα Υi είναι IID
k
26 Μοντελοποίηση και Προσομοίωση
εκθετικές τυχαίες μεταβλητές κάθε μια από τις οποίες έχει παράμετρο λk. Στο Σχήμα
1.13 παριστάνεται το μοντέλο μιας Erlang-k κατανομής για k = 2.
Ισχύει
Ε[Χ] = 1/λ, Var[Χ] = 1/kλ2 = Ε[Χ]2/k

Θα πρέπει να σημειωθεί ότι για συγκεκριμένη μέση τιμή Ε[Χ], η διακύμανση της Χ
ελαττώνεται καθώς αυξάνει το k και τείνει προς το μηδέν. Συνεπώς μια Erlang-k
κατανομή μπορεί να χρησιμοποιηθεί για την προσέγγιση οποιασδήποτε μη αρνητικής
τυχαίας μεταβλητής της οποίας η διακύμανση δεν υπερβαίνει το τετράγωνο της μέσης
τιμής.

λk λk

Stage 1 Stage 2

Σχήμα 1.13
Mοντέλο Erlang-k κατανομής με δύο φάσεις.

You might also like