Ανάπτυξη Μοντέλων Διακριτών Συστημάτων Μέρος Α
Βασικά Στοιχεία Ανάπτυξης Διακριτών Μοντέλων – Ορισμοί Ορίζονται τρεις μεθοδολογίες προσομοίωσης: Προσομοίωση Γεγονότων: Γεγονός είναι η χρονική στιγμή κατά την οποία συμβαίνει μία αλλαγή στο σύστημα Προσομοίωση Δραστηριοτήτων: Δραστηριότητα είναι μία λειτουργία η οποία μεταβάλλει την κατάσταση μίας οντότητας Προσομοίωση Διεργασιών: Διεργασία είναι μία σειρά από γεγονότα τα οποία συμβαίνουν με κάποια χρονική σειρά Το κοινό χαρακτηριστικό αυτών είναι ότι δημιουργούν προγράμματα προσομοίωσης τα οποία έχουν μια ιεραρχική δομή τριών επιπέδων Διαχειριστής (πρόγραμμα ελέγχου) Ρουτίνες υλοποίησης Λεπτομερείς ρουτίνες
Ο διαχειριστής (επίπεδο 1) είναι υπεύθυνος για τη σωστή αλληλουχία των λειτουργιών του επιπέδου 2 (π.χ. διαχείριση του ρολογιού της προσομοίωσης) Οι ρουτίνες υλοποίησης (επίπεδο 2) αποτελούν την προγραμματιστική έκφραση των αλληλεπιδράσεων ανάμεσα στις οντότητες Το επίπεδο 3 αποτελείται από τις ρουτίνες που χρησιμοποιούνται από το δεύτερο επίπεδο για την υλοποίηση των λεπτομερειών του συστήματος που μοντελοποιείται
Pt+1 = Ρt + rPt ή Pt+1 - Pt = rPt, t = 0, 1, 2...... Παράδειγμα Θέλουμε να μελετήσουμε το πρόβλημα της αύξησης, έστω, ομοιογενούς πληθυσμού Θα χρησιμοποιήσουμε ένα διακριτό μοντέλο, σχεδιασμένο με το εργαλείο SIMULINK του πακέτου MATLAB Θεωρούμε ότι ο πληθυσμός μεταβάλλεται μέσα στην πορεία του χρόνου σε διακριτά χρονικά διαστήματα t0, t1, t2, ...tn, tn+1,.. Ο πληθυσμός Ρ προσδιορίζεται πλήρως, αν γνωρίζουμε μία αρχική τιμή του πληθυσμού και τον τρόπο μεταβολής (αιτιοκρατικό μοντέλο) Έστω ότι η αρχική τιμή του πληθυσμού είναι Ρ0, ενώ τη χρονική στιγμή t είναι Pt Η σχέση μεταξύ των μεταβλητών είναι: Pt+1 = Ρt + rPt ή Pt+1 - Pt = rPt, t = 0, 1, 2...... Η μεταβλητή r είναι η διαφορά ανάμεσα στο ρυθμό γεννήσεων και το ρυθμό θανάτων
Μοντέλο αύξησης πληθυσμού με χρήση του SIMULINK
Τα τμήματα από τα οποία απαρτίζεται το μοντέλο είναι τα ακόλουθα: Gain: Η απολαβή (gain) χρησιμοποιείται ως παράγοντας με τον οποίο πολλαπλασιάζεται η τιμή ενός σήματος Add: Υπάρχουν δύο τμήματα που εκτελούν προσθέσεις Το κάτω αριστερό μέρος εκτελεί αρχικά την πρόσθεση, P0 + 0. Έπειτα εκτελεί διαδοχικά την πράξη Pt+0 Το δεύτερο τμήμα στο πάνω δεξιά μέρος εκτελεί την πρόσθεση Pt + rPt Unit Delay: Διατηρεί μία τιμή για το χρονικό διάστημα το οποίο ορίζεται από την παράμετρο Sample time που ορίζει ο χρήστης Pulse Generator: Το τμήμα γεννήτριας παλμών παράγει παλμούς ανά σταθερά διαστήματα Display: Δείχνει την τιμή του αποτελέσματος Υπολογισμοί των Pt, rPt, Ρt+1 σε κάθε διακριτή χρονική μονάδα t, αν r=2
Προσομοίωση Γεγονότων Εξαρτημένα και ανεξάρτητα γεγονότα Το βασικό στοιχείο της μεθοδολογίας αυτής είναι ο ορισμός και χρονοδρομολόγηση των γεγονότων του μοντέλου Τα γεγονότα που μπορεί να συμβούν χωρίζονται σε δύο κατηγορίες: τα ανεξάρτητα και τα εξαρτημένα γεγονότα Ανεξάρτητο ονομάζεται το γεγονός που πρόκειται να συμβεί σε κάποια προκαθορισμένη χρονική στιγμή, ανεξάρτητα από την εμφάνιση άλλων γεγονότων Εξαρτημένο ονομάζονται το γεγονός που συμβαίνει όταν εμφανιστεί κάποιο άλλο ανεξάρτητο ή εξαρτημένο γεγονός
Παράδειγμα Έστω ένα απλό σύστημα με μία ουρά Πελάτες έρχονται στο σύστημα, περιμένουν στην ουρά, αρχίζει η εξυπηρέτηση τους, τελειώνει η εξυπηρέτηση τους και αποχωρούν από το σύστημα Ορίζουμε τα ανεξάρτητα γεγονότα: Άφιξη ενός πελάτη στην ουρά Τέλος εξυπηρέτησης ενός πελάτη Σε σχέση με τα ανεξάρτητα γεγονότα, ορίζονται και δύο εξαρτημένα γεγονότα: Έναρξη εξυπηρέτησης ενός πελάτη Αποχώρηση ενός πελάτη από το σύστημα
Διαχειριστής της προσομοίωσης γεγονότων Ο διαχειριστής είναι υπεύθυνος για τις ακόλουθες λειτουργίες: Έλεγχο του χρόνου Προσδιορισμό των προς εκτέλεση γεγονότων Εκτέλεση των γεγονότων Ο έλεγχος του χρόνου εγγυάται ότι όλα τα γεγονότα λαμβάνουν χώρα με τη σωστή χρονολογική σειρά (ρολόι της προσομοίωσης) Ο μηχανισμός αυτός υλοποιείται με τη βοήθεια μίας χρονικής λίστας γεγονότων (λίστα μελλοντικών γεγονότων) Ο χρόνος διάρκειας ενός γεγονότος συνήθως λαμβάνεται τυχαία μέσα από μία στατιστική κατανομή Το ρολόι της προσομοίωσης δείχνει σε κάθε χρονική στιγμή το χρόνο της προσομοίωσης, ο οποίος αντιστοιχεί στα γεγονότα που εκτελούνται αυτή τη χρονική στιγμή Η διαχείρισή του γίνεται από το πρόγραμμα ελέγχου, σύμφωνα με το μηχανισμό ροής επόμενου γεγονότος
Διάγραμμα του προγράμματος ελέγχου προσομοίωσης γεγονότων
Ρουτίνες υλοποίησης Οι ρουτίνες υλοποίησης εκφράζουν τις σχέσεις αλληλεπίδρασης ανάμεσα στις οντότητες Κάθε ρουτίνα πρέπει να προσδιορίζει ποιές ακριβώς ενέργειες θα πρέπει να γίνουν όταν εμφανίζεται ένα γεγονός Μεταξύ διαφορετικών προγραμμάτων προσομοίωσης, υπάρχουν διαφορετικές ρουτίνες υλοποίησης Ωστόσο, σε κάθε πρόγραμμα υπάρχει και μία ρουτίνα χρονισμού, η οποία διαχειρίζεται τα στοιχεία της λίστας μελλοντικών γεγονότων, προκειμένου αυτά να εκτελούνται με τη σωστή χρονολογική σειρά
Λογικό διάγραμμα υλοποίησης μίας ρουτίνας χρονισμού
Παράδειγμα Έστω ότι οι χρόνοι άφιξης και εξυπηρέτησης 5 πελατών μίας τράπεζας είναι οι ακόλουθοι: Με βάση τις τιμές αυτές, η λίστα μελλοντικών γεγονότων θα έχει την ακόλουθη μορφή:
Αρχικά, ο χρόνος της προσομοίωσης λαμβάνει τιμή t = 1 (βήμα 1) Ο έλεγχος περνάει στη ρουτίνα χρονισμού, η οποία επιλέγει τα γεγονότα εκείνης της χρονικής στιγμής για να τα εκτελέσει (βήμα 2) Η εκτέλεση των δύο γεγονότων της χρονικής στιγμής t = 1 είναι αντικείμενο μίας ρουτίνας υλοποίησης (βήμα 3) Όταν ολοκληρωθεί η εκτέλεση, ο έλεγχος θα περάσει στη ρουτίνα χρονισμού, η οποία με τη σειρά της θα διαγράψει την πρώτη καταχώρηση (βήμα 4) και θα περάσει τον έλεγχο στο διαχειριστή, ώστε να διαχειριστεί το ρολόι της προσομοίωσης Αυτό σημαίνει ότι η τιμή του ρολογιού θα αυξηθεί σε t = 4, ο έλεγχος θα περάσει στη ρουτίνα χρονισμού και η διαδικασία θα επαναληφθεί, μέχρι η λίστα μελλοντικών γεγονότων να μείνει κενή
Διάγραμμα του προγράμματος ελέγχου προσομοίωσης γεγονότων βάσει των κλήσεων σε ρουτίνες
Λογικό διάγραμμα της ρουτίνας υλοποίησης αφίξεων σε ένα σύστημα απλής ουράς
Λογικό διάγραμμα της ρουτίνας υλοποίησης του τέλους εξυπηρέτησης σε ένα σύστημα απλής ουράς
Ευχαριστώ !