ΛΟΓΙΣΜΙΚΟ ΠΡΟΣΟΜΟΙΩΣΗΣ ANYLOGIC Χρησιμοποιούμε την δωρεάν έκδοση του λογισμικού προσομοίωσης Anylogic. Για εκπαιδευτική χρήση μπορείτε να «κατεβάσετε» και να εγκαταστήσετε στον υπολογιστή σας την Personal Learning Edition (PLE) από τη σελίδα http://www.anylogic.com/downloads Επειδή συμπεριλαμβάνει πολλά παραδείγματα το μέγεθος του αρχείου που θα κατεβάσετε είναι μεγαλύτερο από 500 MB! Χρησιμοποιεί τη γλώσσα java και θα πρέπει να την εγκαταστήσετε στον υπολογιστή σας (αν δεν είναι ήδη εγκατεστημένη). 1 ΟΔΗΓΟΣ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΣΟΜΟΙΩΣΗΣ AnyLogic Γ.Δ. 2016
ΑΝΟΙΓΜΑ ΑΡΧΕΙΟΥ ΠΡΟΣΟΜΟΙΩΣΗΣ AnyLogic Στην αρχική οθόνη του προγράμματος μας δίνει πρόσβαση σε διάφορες επιλογές Όπως σε όλα τα προγράμματα από το μενού File/Open μπορούμε να φορτώσουμε ένα αρχείο, που στο anylogic είναι αρχείο προσομοίωσης ενός συστήματος. Επιλέγουμε από τον φάκελο basicmodels/bank-office-phase 1 το αρχείο Bank Office-Phase 1, που είναι ένα πολύ απλό σύστημα. 2 ΟΔΗΓΟΣ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΣΟΜΟΙΩΣΗΣ AnyLogic Γ.Δ. 2016
Με το «φόρτωμα» του αρχείου η οθόνη του προγράμματος χωρίζεται σε 3 παράθυρα: Projects: κάθε αρχείο προσομοίωσης είναι ένα project (έργο), μπορούμε να έχουμε «ανοιχτά» περισσότερα από 1 project. Για κάθε project υπάρχει μια δομή δέντρου που μας επιτρέπει να δούμε τα αντικείμενα που αποτελούν το project (>Main, >Simulation Main, Database). Main: Το κεντρικό παράθυρο που παρουσιάζει ένα διάγραμμα ροής με τα αντικείμενα που αποτελούν το μοντέλο της προσομοίωσης. Τα 4 αντικείμενα Source-queue-delay-sink είναι το απλούστερο μοντέλο προσομοίωσης. Properties: το δεξιό παράθυρο στην οθόνη που παρουσιάζει τις ιδιότητες (properties) του επιλεγμένου αντικειμένου. Όπως φαίνεται στο αριστερό παράθυρο είναι επιλεγμένο το Bank Office-Phase 1 δηλ. το project και επομένως στο παράθυρο ιδιότητες μας δείχνει ποιες είναι αυτές (Name, Model time units, κλπ) 3 ΟΔΗΓΟΣ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΣΟΜΟΙΩΣΗΣ AnyLogic Γ.Δ. 2016
Αν με το ποντίκι κάνουμε κλικ σε ένα από τα αντικείμενα του διαγράμματος ροής στο κεντρικό παράθυρο Main (αυτό με το όνομα delay), θα δούμε στο αριστερό παράθυρο τη θέση του αντικειμένου που επιλέξαμε, στο κεντρικό με γαλάζιο πλαίσιο το επιλεγμένο αντικείμενο, στο δεξιό παράθυρο τις ιδιότητες του επιλεγμένου αντικειμένου. Αν επιλέξουμε («κλικ») το αντικείμενο queue, τα 3 παράθυρα ενημερώνονται αντίστοιχα. 4 ΟΔΗΓΟΣ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΣΟΜΟΙΩΣΗΣ AnyLogic Γ.Δ. 2016
ΤΡΕΞΙΜΟ (RUN) ΠΡΟΣΟΜΟΙΩΣΗΣ Αν έχουμε κατασκευάσει ένα μοντέλο προσομοίωσης μπορούμε να το τρέξουμε από το μενού Model/Run είτε από το αντίστοιχο εικονίδιο της εργαλειοθήκης (βλέπε εικόνα παρακάτω) Εμφανίζεται το παράθυρο με τίτλο το όνομα του project Bank Office: Simulation, στο παράθυρο υπάρχει ένα πλήκτρο για να ξεκινήσει το τρέξιμο και μια εργαλειοθήκη που ελέγχει την προσομοίωση. Αν πατήσουμε το πλήκτρο Run θα αρχίσει να «τρέχει» η προσομοίωση στη μορφή της επόμενης εικόνας. Στη «γραμμή κατάστασης» του παραθύρου (στο κάτω μέρος) παρουσιάζεται η τρέχουσα κατάσταση του μοντέλου (δεν έχει ξεκινήσει το τρέξιμο-idle). 5 ΟΔΗΓΟΣ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΣΟΜΟΙΩΣΗΣ AnyLogic Γ.Δ. 2016
Αν πατήσουμε το πλήκτρο Run (βλέπε στην προηγούμενη εικόνα), ξεκινά η προσομοίωση του μοντέλου, εμφανίζεται το διάγραμμα των αντικειμένων που αποτελούν το μοντέλο, σε κάθε αντικείμενο εμφανίζεται ο αριθμός των input-output (Εισόδων-Εξόδων) δηλ. ο αριθμός των πελατών για το σύστημά μας. Π.χ. το source έχει στην έξοδο 3 πελάτες, το αντικείμενο source δημιουργεί» τους νέους πελάτες. Καθώς τρέχει η προσομοίωση οι αριθμοί αλλάζουν Στην εργαλειοθήκη έχουμε τη δυνατότητα pause (προσωρινή διακοπή-παύση), Stop (Τέλος τρεξίματος), στην επόμενη ενότητα της εργαλειοθήκης τον έλεγχο του χρόνου (Χ1 σημαίνει ότι τρέχει με ταχύτητα 1, σε κανονικό χρόνο!), στην επόμενη ενότητα τρόπους εμφάνισης. Στη «γραμμή κατάστασης» του παραθύρου (στο κάτω μέρος) παρουσιάζεται η τρέχουσα κατάσταση του μοντέλου. Run: Το μοντέλο είναι σε κατάσταση τρεξίματος (Running). Time: O χρόνος (Time) την τρέχουσα στιγμή είναι 18.89. Simulation: ο χρόνος τέλους δεν έχει οριστεί (επομένως δεν θα σταματήσει η προσομοίωση!) Date: Επειδή μπορούμε να ορίσουμε το τρέξιμο της προσομοίωσης από συγκεκριμένη χρονική στιγμή μας δείχνει ότι το 18.89 αντιστοιχεί στο χρόνο μήνας, ημέρα, έτος, ώρα 6 ΟΔΗΓΟΣ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΣΟΜΟΙΩΣΗΣ AnyLogic Γ.Δ. 2016
ΕΜΦΑΝΙΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΠΡΟΣΟΜΟΙΩΣΗΣ Καθώς «τρέχει» η προσομοίωση μπορούμε με κλικ σε ένα από τα αντικείμενα του μοντέλου να εμφανίζουμε τις πληροφορίες για την κατάστασή του σε ένα κίτρινο πλαίσιο (μπαλονάκι!). Για το αντικείμενο source αναφέρει το όνομά του, ότι είναι τύπου αφίξεων rate (ρυθμό) με τιμή 0.005 πελάτες/δευτερόλεπτο, στην επόμενη γραμμή το out έχει τιμή 23 έχουν δημιουργηθεί μέχρι τι στιγμή αυτή 23 πελάτες. Όπως αναφέρει στη γραμμή κατάστασης η προσομοίωση δεν θα σταματήσει γιατί αναφέρει Stop time not set μπορούμε να σταματήσουμε την προσομοίωση με το πλήκτρο stop στην εργαλειοθήκη του παραθύρου. Διαφορετικά η προσομοίωση θα σταματήσει στους 50000 πελάτες που είναι ο μέγιστος επιτρεπόμενος αριθμός πελατών για την εκπαιδευτική έκδοση (Anylogic PLe) 7 ΟΔΗΓΟΣ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΣΟΜΟΙΩΣΗΣ AnyLogic Γ.Δ. 2016
ΑΝΟΙΓΜΑ ΑΛΛΟΥ ΜΟΝΤΕΛΟΥ Κάθε αρχείο στο λογισμικό anylogic είναι ένα μοντέλο προσομοίωσης κάποιου συστήματος. Επειδή το πρόγραμμα επιτρέπει να έχουμε ανοικτά περισσότερα από ένα αρχεία (μοντέλα) όταν ολοκληρώσουμε την εργασία μας με κάποιο μοντέλο πρέπει να το κλείνουμε με την εντολή του μενού File/Close. Ανοίγουμε τώρα το αρχείο Bank Office-Phase 2 το οποίο είναι ίδιο με το προηγούμενο αλλά τώρα το αντικείμενο delay έχει μετονομαστεί σε ATM γιατί «αναπαριστά» τη λειτουργία ενός ΑΤΜ εξυπηρέτησης πελατών σε μια τράπεζα. Αντίστοιχα το αρχείο Bank Office-Phase 3 το οποίο είναι ίδιο με το προηγούμενο αλλά έχει προστεθεί και ένα σύνολο ταμείων που μπορούν να εξυπηρετούν τους πελάτες 8 ΟΔΗΓΟΣ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΣΟΜΟΙΩΣΗΣ AnyLogic Γ.Δ. 2016
Η τελική μορφή του συστήματος μας (μοντέλου) είναι στο αρχείο Αντίστοιχα το αρχείο Bank Office- Phase 4, που περιλαμβάνει και διαγράμματα (ιστόγραμμα κατανομής χρόνου στην ουρά και μεγέθους ουράς) 9 ΟΔΗΓΟΣ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΣΟΜΟΙΩΣΗΣ AnyLogic Γ.Δ. 2016
Εκτός από τη δυνατότητα να παρακολουθήσουμε την προσομοίωση στο διάγραμμα ροής των αντικειμένων της έχει γίνει προγραμματισμός στο anylogic για να έχουμε animation της προσομοίωσης! Καθώς τρέχει η προσομοίωση μπορούμε να δούμε και το animation του συστήματος (που έχει δημιουργηθεί από τον προγραμματιστή με τα εργαλεία του anylogic!) 10 ΟΔΗΓΟΣ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΣΟΜΟΙΩΣΗΣ AnyLogic Γ.Δ. 2016
Ο στόχος της προσομοίωσης είναι να δημιουργήσουμε στατιστικά στοιχεία για το σύστημα που μας ενδιαφέρει, στο anylogic για να μεταφέρουμε τα δεδομένα του ιστογράμματος Time in system distribution (κατανομή του χρόνου παραμονής στο σύστημα), μπορούμε με copy από το κίτρινο πλαίσιο να αντιγράψουμε όλα τα νούμερα σε άλλο πρόγραμμα (π.χ. excel) ώστε στη συνέχεια να κάνουμε την στατιστική ανάλυση. Count 320 Mean 4.406 Min 0.876 Max 10.598 Deviation 2.499 Mean confidence 0.274 Sum 1,409.993 From To PDF(hits) CDF(cum hits) 0.66 0.9 4 4 0.9 1.14 3 7 1.14 1.38 15 22 1.38 1.62 16 38 1.62 1.86 23 61 1.86 2.1 13 74 2.1 2.34 16 90 2.34 2.58 10 100 2.58 2.82 14 114 2.82 3.06 16 130 3.06 3.3 9 139 3.3 3.54 13 152 3.54 3.78 8 160 3.78 4.02 4 164 4.02 4.26 7 171 4.26 4.5 6 177 4.5 4.74 9 186 4.74 4.98 5 191 4.98 5.22 5 196 5.22 5.46 8 204 5.46 5.7 7 211 5.7 5.94 14 225 5.94 6.18 10 235 6.18 6.42 7 242 6.42 6.66 10 252 6.66 6.9 8 260 6.9 7.14 6 266 7.14 7.38 4 270 7.38 7.62 10 280 7.62 7.86 6 286 7.86 8.1 2 288 8.1 8.34 8 296 8.34 8.58 5 301 8.58 8.82 2 303 8.82 9.06 3 306 9.06 9.3 0 306 9.3 9.54 4 310 9.54 9.78 4 314 9.78 10.02 3 317 10.02 10.26 0 317 10.26 10.5 2 319 10.5 10.74 1 320 Τα παραπάνω είναι τα δεδομένα του ιστογράμματος Time in system distribution, που είναι τα σημαντικότερα για την ανάλυση του συγκεκριμένου συστήματος. Για να τα μεταφέρουμε από το anylogic σε οποιοδήποτε άλλο πρόγραμμα κάναμε αντιγραφή (copy) στο κίτρινο πλαίσιο στη συνέχεια επικόλληση paste στο word. 11 ΟΔΗΓΟΣ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΣΟΜΟΙΩΣΗΣ AnyLogic Γ.Δ. 2016
ΧΡΟΝΟΣ ΚΑΙ ΤΥΧΑΙΟΤΗΤΑ ΠΡΟΣΟΜΟΙΩΣΗΣ Για οποιαδήποτε προσομοίωση είναι σημαντική η έννοια του χρόνου (το ρολόι της προσομοίωσης) Model time και η τυχαιότητα (Randomness). Οι αντίστοιχες ιδιότητες του Simulation Main Model time: Μπορούμε να θέσουμε για το μοντέλο Virtual time (εικονικός χρόνος) οπότε η προσομοίωση θα τρέχει με την ταχύτητα του υπολογιστή και θα παράγει τα αποτελέσματα πολύ γρήγορα. Αν θέσουμε Real Time ο χρόνος μπορεί να τρέχει με την ταχύτητα που θα ορίσουμε ως προς τον πραγματικό (1 για κανονική ταχύτητα, <1 για επιβράδυνση, >1 για επιτάχυνση του χρόνου) Μπορούμε να επιλέξουμε πότε θα σταματά η προσομοίωση είτε σαν τιμή αν έχουμε εικονικό χρόνο, είτε στα πραγματική χρονική στιγμή του ρολογιού της προσομοίωσης. Randomness: Καθορίζει τον τρόπο δημιουργίας τυχαίων αριθμών Random seed (unique simulation runs): Δημιουργεί διαφορετικούς τυχαίους κάθε φορά που τρέχει η προσομοίωση, ώστε αν κάνουμε πολλές επαναλήψεις της προσομοίωσης να έχουμε διαφορετικά αποτελέσματα και να υπολογίσουμε στατιστικά για το μοντέλο και σύστημα. Fixed seed (reproducible simulation runs): Δημιουργεί τους ίδιους τυχαίους κάθε φορά που τρέχει η προσομοίωση, αυτό είναι χρήσιμο όταν κάνουμε δοκιμές κατά την κατασκευή του μοντέλου, ώστε να μπορούμε να ελέγξουμε αν το μοντέλο λειτουργεί όπως επιθυμούμε. ΔΕΝ δημιουργεί διαφορετικά αποτελέσματα σε κάθε «τρέξιμο» οπότε μόνο κατά την κατασκευή είναι χρήσιμη αυτή η επιλογή! 12 ΟΔΗΓΟΣ ΛΟΓΙΣΜΙΚΟΥ ΠΡΟΣΟΜΟΙΩΣΗΣ AnyLogic Γ.Δ. 2016