Εργαστήριο Διοίκησης Παραγωγής & Έργων Εισαγωγή στην προσομοίωση διεργασιών χρησιμοποιώντας το λογισμικό Extend
ΕΠΙΣΚΟΠΗΣΗ ΤΟΥ EXTEND Το Extend είναι ένα λογισμικό εικονικής προσομοίωσης που μπορεί να χρησιμοποιηθεί για την ανάπτυξη δυναμικών μοντέλων που απεικονίζουν διεργασίες της πραγματικότητας. Ο ιστότοπος του Extend είναι: http://www.extendsim.com. Ξεκινώντας το Extend, ανοίγει αυτόματα ένα παράθυρο που περιέχει επιλεγμένα έτοιμα μοντέλα επίδειξης. Σας προτείνουμε να κλείνετε αυτό το παράθυρο διότι η έκδοση Extend που χρησιμοποιούμε στο εργαστήριο έχει ένα περιορισμό στον αριθμό των δομικών στοιχείων (blocks) που πρέπει να υπάρχουν στο μοντέλο (έως 75).
ΕΠΙΣΚΟΠΗΣΗ ΤΟΥ EXTEND Ξεκινάμε την περιήγησή μας στο λογισμικό με μια σύντομη περιγραφή της δομής των blocks του Extend. Για λόγους ευχρηστίας, θα διατηρήσουμε τις ονομασίες ορισμένων στοιχείων στα αγγλικά. Τα Blocks καθορίζουν κάποια δράση ή διεργασία. Διάφορες πληροφορίες εισέρχονται στο block και διεκπεραιώνονται από το πρόγραμμα που υπάρχει μέσα σε κάθε block. Στη συνέχεια το ένα block στέλνει πληροφορίες στο επόμενο block. Τα Blocks συνδέονται μεταξύ τους και σχηματίζουν ένα μοντέλο!
ΕΠΙΣΚΟΠΗΣΗ ΤΟΥ EXTEND Τα Blocks βρίσκονται σε βιβλιοθήκες (libraries), στο φάκελο LIBS του Extend. Όταν ανοίγουμε κάποιο μοντέλο στο Extend, οι απαιτούμενες βιβλιοθήκες του μοντέλου ανοίγουν αυτόματα. Όταν δημιουργούμε ένα νέο μοντέλο, πρέπει να ανοίξουμε εμείς τις απαιτούμενες βιβλιοθήκες επιλέγοντας Library, Open Library από το μενού.
ΕΠΙΣΚΟΠΗΣΗ ΤΟΥ EXTEND Σας προτείνουμε να ρυθμίσετε το Extend, έτσι ώστε να ανοίγει αυτόματα βιβλιοθήκες που χρησιμοποιούνται συχνά στα μοντέλα, ως ακολούθως: Πρώτα επιλέγετε Edit και έπειτα Preferences. Στη συνέχεια στο παράθυρο διαλόγου στην καρτέλα Libraries εισάγουμε τις ακόλουθες βιβλιοθήκες στο πεδίο Preload libraries : Discrete Event.lix, Generic.lix, Mfg.lix, Plotter.lix, Statistics.lix.
ΕΠΙΣΚΟΠΗΣΗ ΤΟΥ EXTEND Όπως αναφέραμε, τα μοντέλα στο Extend συντίθενται από συνδεδεμένα blocks. Υπάρχουν 4 ειδών σύνδεσμοι (connectors): είσοδος οντότητας, έξοδος οντότητας, είσοδος τιμών, έξοδος τιμών (item input, item output, value input, and value output). Οι είσοδοι έξοδοι οντοτήτων χρησιμοποιούνται για να μεταφέρουν τις οντότητες από το ένα block στο άλλο. Οι είσοδοι έξοδοι τιμών χρησιμοποιούνται για να μεταφέρουν πληροφορίες (παραμέτρους) μεταξύ των blocks.
ΕΠΙΣΚΟΠΗΣΗ ΤΟΥ EXTEND Το block Activity, Delay που εμφανίζεται παρακάτω παρουσιάζει όλους τους δυνατούς τύπους συνδέσεων (4 connectors). Value output Item input Item output Value input
ΕΠΙΣΚΟΠΗΣΗ ΤΟΥ EXTEND Με διπλό κλικ σε οποιοδήποτε block ανοίγει ένα παράθυρο διαλόγου. Ένα τυπικό παράθυρο διαλόγου που αντιστοιχεί στο Activity, Delay block παρουσιάζεται στην επόμενη διαφάνεια. Οι καρτέλες χρησιμοποιούνται για την οργάνωση των στοιχείων στο παράθυρο διαλόγου. Στην καρτέλα Activity ο χρήστης έχει τη δυνατότητα να θέσει το χρόνο καθυστέρησης (Delay (service time)) μιας διεργασίας.
ΕΠΙΣΚΟΠΗΣΗ ΤΟΥ EXTEND
ΕΠΙΣΚΟΠΗΣΗ ΤΟΥ EXTEND Χρησιμοποιούμε το παράδειγμα ενός τραπεζικού καταστήματος για να δούμε τα βασικά σημεία του Extend. Παραδοχές: Οι πελάτες φθάνουν τυχαία στο κατάστημα, έστω με ρυθμό 20 πελάτες/ώρα Εξυπηρετούνται κατά σειρά άφιξης (first in first out (FIFO) queue), Υπάρχει ένας υπάλληλος, και Ο χρόνος εξυπηρέτησης είναι τυχαίος, έστω ότι ακολουθεί κανονική κατανομή Ν(6,1) σε λεπτά
ΕΠΙΣΚΟΠΗΣΗ ΤΟΥ EXTEND Χρησιμοποιώντας τα block του Extend μπορούμε να αναπαραστήσουμε τις 4 βασικές λειτουργίες του προβλήματός μας: Ένας πελάτης φθάνει στο κατάστημα, Μπαίνει στην ουρά, Εξυπηρετείται, και μετά αποχωρεί. Τώρα χαρτογραφούμε κάθε μια από τις παραπάνω δραστηριότητες προκειμένου να χτίσουμε το μοντέλο μας στο Extend.
ΕΠΙΣΚΟΠΗΣΗ ΤΟΥ EXTEND Άφιξη πελατών Αναμονή στην ουρά Εξυπηρέτηση Έξοδος
ΕΠΙΣΚΟΠΗΣΗ EXTEND: ΑΦΙΞΕΙΣ 1. Ο πελάτης φθάνει: Generator (DE.LIX, Generators): V 1 2 3 Ο χρόνος μεταξύ των αφίξεων (interarrival time) των οντοτήτων στο σύστημα, όπως οι πελάτες στο παράδειγμά μας, είναι συχνά τυχαίος και δύναται να περιγραφεί από μια στατιστική κατανομή. Συχνά, δεδομένα χρόνου μεταξύ των αφίξεων συλλέγονται και στη συνέχεια «ταυτίζονται» (fitted) με υπάρχουσες γνωστές συνεχείς στατιστικές κατανομές.
ΕΠΙΣΚΟΠΗΣΗ EXTEND: ΑΦΙΞΕΙΣ Στο Generator block υπάρχει ένα πλήθος τέτοιων συνεχούς χρόνου στατιστικών κατανομών. Για λόγους απλότητας, στο παράδειγμά μας θα χρησιμοποιήσουμε την εκθετική κατανομή με μέσο χρόνο μεταξύ των αφίξεων 3 χρονικές μονάδες.
ΕΠΙΣΚΟΠΗΣΗ EXTEND: ΑΦΙΞΕΙΣ Είναι πολύ σημαντικό να κατανοήσουμε τη σχέση του μέσου χρόνου μεταξύ των αφίξεων (1/ ) και του μέσου ρυθμού αφίξεων ( ). Αν ο μέσος χρόνος μεταξύ των αφίξεων είναι 3 λεπτά, τότε αναμένουμε 20 αφίξεις ανά ώρα. Για παράδειγμα, αν (1/ ) = 3 λεπτά / άφιξη, τότε = 1/3 αφίξεις / λεπτό, ή = [1/3 αφίξεις / λεπτό]* 60 λεπτά/ώρα = 20 αφίξεις/ώρα.
ΕΠΙΣΚΟΠΗΣΗ EXTEND: ΟΥΡΑ 2. Πελάτης εισέρχεται στην ουρά: Queue, FIFO (DE.LIX, Queues): F L W Ενώνουμε το σύνδεσμο εξαγωγής οντοτήτων (item output connector) του Generator block, με το σύνδεσμο εισαγωγής οντοτήτων (item input connector) του Queue, FIFO block.
ΕΠΙΣΚΟΠΗΣΗ EXTEND: ΟΥΡΑ Είναι σύνηθες, όταν αναφερόμαστε σε ανθρώπους, να χρησιμοποιούμε αυτό το block στην προσομοίωση. Το Extend ορίζει by default το μέγιστο μήκος ουράς στις 1000 οντότητες (βλέπε στην καρτέλα Queue ). Για εμάς, το μέγιστο μήκος ουράς θα τίθεται σε κάποια τιμή με μοναδικό σκοπό την αποφυγή εξαιρετικά μεγάλων ουρών στο μοντέλο μας.
ΕΠΙΣΚΟΠΗΣΗ EXTEND: ΟΥΡΑ Επιπροσθέτως, δύο βασικές παράμετροι στατιστικής περιλαμβάνονται σε αυτό το block. Στην καρτέλα Results : μήκος ουράς (queue length) και χρόνος αναμονής (waiting time). Συγκεκριμένα, οι μέσες τιμές και οι μέγιστες τιμές αυτών των στατιστικών αναγράφονται.
ΕΠΙΣΚΟΠΗΣΗ EXTEND: ΟΥΡΑ Ορίζουμε ως LQ το μέσο μήκος ουράς και ως WQ το μέσο χρόνο αναμονής στην ουρά. (Το Extend απλά χρησιμοποιεί τους δείκτες L και W όταν αναφέρεται στα δικά μας LQ και WQ.) Utilization > «αξιοποίηση» Queue utilization είναι η αξιοποίηση του block queue. Δηλαδή μας δείχνει το ποσοστό (ή την αναλογία) του χρόνου που υπάρχει ουρά ως προς το συνολικό χρόνο προσομοίωσης.
ΕΠΙΣΚΟΠΗΣΗ EXTEND: ΔΙΕΡΓΑΣΙΑ 3. Ο πελάτης εξυπηρετείται από τον υπάλληλο: Activity, Delay (DE.LIX, Activities): Συνδέστε το Queue, FIFO block στο Activity, Delay block.
ΕΠΙΣΚΟΠΗΣΗ EXTEND: ΔΙΕΡΓΑΣΙΑ Αν ο χρόνος εξυπηρέτησης είναι σταθερός, τότε απλά θέτουμε μια τιμή στο πεδίο Delay. Αντίστοιχα με ότι προαναφέραμε σχετικά με τις αφίξεις πελατών, οι χρόνοι εξυπηρέτησης είναι συνήθως τυχαίοι και περιγράφονται από μια στατιστική κατανομή.
ΕΠΙΣΚΟΠΗΣΗ EXTEND: ΔΙΕΡΓΑΣΙΑ Τυχαίοι χρόνοι εξυπηρέτησης δεν δύναται να τεθούν στο πεδίο του Activity, Delay. Χρησιμοποιούμε ένα επιπλέον block που ονομάζεται Input Random Number (GENERIC.LIX, Inputs/Outputs) προκειμένου να εισάγουμε στατιστικές κατανομές σε οποιοδήποτε block χρειαστεί. Rand 1 2 3
ΕΠΙΣΚΟΠΗΣΗ EXTEND: ΔΙΕΡΓΑΣΙΑ Οι παράμετροι της κατανομής εισάγονται από την καρτέλα Distributions. Κλικάρουμε στο πεδίο Distribution για να επιλέξουμε την επιθυμητή στατιστική κατανομή και θέτουμε τις τιμές που επιθυμούμε στα ανάλογα πεδία. Έτσι, ένας τυχαίος χρόνος εξυπηρέτησης παράγεται για κάθε πελάτη καθώς εισέρχεται στο Activity, Delay block. Η τιμή αυτή αντικαθιστά οποιαδήποτε τιμή (Delay value) έχει τεθεί από το χρήστη στο αντίστοιχο πεδίο διαλόγου του Activity, Delay block.
ΕΠΙΣΚΟΠΗΣΗ EXTEND: ΔΙΕΡΓΑΣΙΑ Ενώνουμε το σύνδεσμο εξαγωγής τιμών του Input Random Number block με το σύνδεσμο εισαγωγής τιμών D (that is, Delay) του Activity, Delay block.
ΕΠΙΣΚΟΠΗΣΗ EXTEND: ΕΞΟΔΟΣ 4. Ο πελάτης αποχωρεί από το σύστημα. Χρησιμοποιούμε το block Exit (DE.LIX, Routing): Exit # Συνδέουμε το Activity, Delay block με το Exit block. Αυτό το block απλά αφαιρεί τον πελάτη (οντότητα) από το σύστημα και καταγράφει τον αριθμό των ατόμων (οντοτήτων) που έφυγαν κατά τη διάρκεια της προσομοίωσης( Exit tab).
ΕΠΙΣΚΟΠΗΣΗ EXTEND: ΓΡΑΦΙΚΗ ΑΠΕΙΚΟΝΙΣΗ Έχουμε τη δυνατότητα να εξάγουμε γραφικές παραστάσεις διαφόρων μεταβλητών που μας ενδιαφέρουν. Χρησιμοποιούμε το block Plotter, Discrete Event (PLOTTER.LIX): Συνδέουμε τη μεταβλητή που μας ενδιαφέρει (π.χ. μήκος ουράς) με μια από τις εισόδους του block και λαμβάνουμε οπτικά σε πραγματικό χρόνο τιμές της μεταβλητής.
ΕΡΩΤΗΣΕΙΣ ΙΣΤΟΤΟΠΟΣ ΕΡΓΑΣΤΗΡΙΟΥ http://www.mech.upatras.gr/~adamides/dpe