ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΣΧΕΔΙΑΣΗΣ ΠΡΟΪΟΝΤΩΝ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ» ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΕΙΔΙΚΕΥΣΗΣ: «ΣΧΕΔΙΑΣΗ ΔΙΑΔΡΑΣΤΙΚΩΝ ΚΑΙ ΒΙΟΜΗΧΑΝΙΚΩΝ

Σχετικά έγγραφα
Βασικές Δομές μοντέλων Petri Nets. C.A. Petri

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Επαλήθευση Πρωτοκόλλων

ΠΡΟΣΟΜΟΙΩΣΗ. Προσομοίωση είναι η μίμηση της λειτουργίας ενός πραγματικού συστήματος και η παρακολούθηση της εξέλιξης του μέσα στο χρόνο.

Μοντελοποίηση και Προσοµοίωση. Χρωµατισµένα ίκτυα Petri

3. Προσομοίωση ενός Συστήματος Αναμονής.

Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή

ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΔΙΑΚΡΙΤΩΝ ΕΝΑΛΛΑΚΤΙΚΩΝ ΣΕ ΠΡΟΒΛΗΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΣΥΝΘΕΣΗΣ ΔΙΕΡΓΑΣΙΩΝ

Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής

Διαγράμματα UML στην Ανάλυση. Μέρος Γ Διαγράμματα Επικοινωνίας Διαγράμματα Ακολουθίας Διαγράμματα Μηχανής Καταστάσεων

ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΕΛΕΓΧΟΣ ΕΦΟΔΙΑΣΤΙΚΩΝ ΑΛΥΣΙΔΩΝ ΜΕ ΤΗ ΧΡΗΣΗ ΔΙΚΤΥΩΝ PETRI

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

Ασφαλή Συστήματα Μέθοδοι ελέγχου και εξακρίβωσης ορθής λειτουργίας

ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ. προγραμματισμός της γραμμής παραγωγής ενέσιμων προϊόντων της βιομηχανίας help pharmaceuticals ΕΙΡΗΛΕΝΑ ΓΙΑΝΝΗ

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Προηγμένα Συστήματα Πληροφορικής»

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Αναγνώριση Προτύπων Ι

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Περιεχόμενο του μαθήματος

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

215 Μηχανικών Η/Υ και Πληροφορικής Πάτρας

ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΝΟΗΤΙΚΩΝ ΔΙΑΔΙΚΑΣΙΩΝ ΚΑΙ ΑΝΘΡΩΠΙΝΩΝ ΛΑΘΩΝ ΓΙΑ ΤΟΝ ΣΧΕΔΙΑΣΜΟ ΚΑΙ ΑΣΦΑΛΗ ΔΙΑΧΕΙΡΙΣΗ ΡΟΩΝ ΕΡΓΑΣΙΑΣ

5. (Λειτουργικά) Δομικά Διαγράμματα

Κεφάλαιο 6: Προσομοίωση ενός συστήματος αναμονής

Κεφάλαιο 3: Εισαγωγή στους αλγορίθμους - διαγράμματα ροής

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Κεφάλαιο 8. Αριθμητική Λογική μονάδα

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΣΧΟΛΗ ΜΗΧΑΝΙΚΩΝ ΠΑΡΑΓΩΓΗΣ & ΔΙΟΙΚΗΣΗΣ

ΚΕΦΑΛΑΙΟ 8 Η ΓΛΩΣΣΑ PASCAL

ΠΡΟΓΡΑΜΜΑ ΕΠΑΝΑΛΗΠΤΙΚΩΝ ΕΞΕΤΑΣΕΩΝ

3 ο Εργαστήριο Μεταβλητές, Τελεστές

SNMP ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

ΚΕΦΑΛΑΙΟ 2ο ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΑΚΡΙΤΩΝ ΓΕΓΟΝΟΤΩΝ

Συνδυαστικά Κυκλώματα

ΠΡΟΓΡΑΜΜΑ ΕΠΑΝΑΛΗΠΤΙΚΩΝ ΕΞΕΤΑΣΕΩΝ

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

. Μεθοδολογία Προγραμματισμού. UML Διαγράμματα. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

Εκπαιδευτική Μονάδα 10.2: Εργαλεία χρονοπρογραμματισμού των δραστηριοτήτων.

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση

Πρόταση για Ανασχηματισμό του Προγράμματος Προπτυχιακών Σπουδών της ΣΗΜΜΥ

ΠΡΟΓΡΑΜΜΑ ΕΠΑΝΑΛΗΠΤΙΚΩΝ ΕΞΕΤΑΣΕΩΝ ΟΡΘΗ ΕΠΑΝΑΛΗΨΗ

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΕΩΝ. Εργαστηριακή και Βιομηχανική Ηλεκτρονική Ηλ. Αμφ. 2, 3. Γλώσσες Προγραμματισμού Ι. Ηλ. Αμφ. 1, 2, 3, 4, 5

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Προσομοίωση Συστημάτων

Δομές Δεδομένων και Αλγόριθμοι

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

ΜΑΘΗΜΑ: Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ. 1 η ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΕΩΝ. Εισαγωγή στα Συστήματα Ηλεκτρικής Ενέργειας (ΣΗΕ) Ηλ. Αμφ. 1, 2, 3. Ηλεκτρομαγνητικά Πεδία Β. Ηλ. Αμφ.

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2

Κεφάλαιο 3 ο Ακολουθιακά Κυκλώματα με ολοκληρωμένα ΤΤL

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

METROPOLIS. Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα

22/2/2014 ΑΡΧΕΣ ΟΡΓΑΝΩΣΗΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ. Επιστήμη Διοίκησης Επιχειρήσεων. Πότε εμφανίστηκε η ανάγκη της διοίκησης;

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΕΩΝ. Εισαγωγή στα Συστήματα Ηλεκτρικής Ενέργειας (ΣΗΕ) (επί πτυχίω) Ηλ. Αμφ. 1, 2, 3

ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΕΩΝ. Εισαγωγή στα Συστήματα Ηλεκτρικής Ενέργειας (ΣΗΕ) (επί πτυχίω) Ηλ. Αμφ. 1, 2, 3

Εισαγωγή στην Αριθμητική Ανάλυση

ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΕΩΝ. Αρχιτεκτονική Υπολογιστών Ηλ. Αιθ. 001, 002. Ηλ. Αιθ. 003, 004 Ηλεκτρονική ΙΙΙ Ηλ. αιθ. 003, 004. Θεωρία Δικτύων & Κυκλωμάτων

Σχεδιασμός Οικολογικού Διαμεσολαβητή για την εποπτεία και διαχείριση δικτύου διανομής ηλεκτρικής ενέργειας

UTECO ABEE ΒΙΟΜΗΧΑΝΙΚΟΣ & ΝΑΥΤΙΛΙΑΚΟΣ ΑΥΤΟΜΑΤΙΣΜΟΣ

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

HY Λογική Διδάσκων: Δ. Πλεξουσάκης Εαρινό Εξάμηνο. Φροντιστήριο 6

RobotArmy Περίληψη έργου

Τεχνολογία Λογισμικού

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Επιχειρηματική Μοντελοποίηση. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Περιεχόμενα. Visio / White paper 1

Αριθμητική Ανάλυση & Εφαρμογές

Σύστημα και Μαθηματικά μοντέλα συστημάτων

ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΕΩΝ. Ηλ. Αιθ. 003, 004 Ηλεκτρονική ΙΙΙ Ηλ. αιθ. 003, 004

Πληροφορική 2. Τεχνολογία Λογισμικού

ΠΡΟΒΛΗΜΑΤΑ ΜΕΤΑΦΟΡΑΣ

Δίκτυα Υπολογιστών Εργαστήρια

Δομές Δεδομένων. Λουκάς Γεωργιάδης.

ΠΡΟΓΡΑΜΜΑ ΕΠΑΝΑΛΗΠΤΙΚΩΝ ΕΞΕΤΑΣΕΩΝ

Κεφάλαιο 5: Εισαγωγή στην Προσομοίωση

Προγραμματισμός ΙI (Θ)

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Εισαγωγή στην επιστήμη των υπολογιστών. Υπολογιστές και Δεδομένα Κεφάλαιο 2ο Αναπαράσταση Δεδομένων

Αρχές Προγραμματισμού Η/Υ Μέθοδοι παρουσίασης του αλγόριθμου και Βασικές έννοιες

Λογική Δημήτρης Πλεξουσάκης Φροντιστήριο 6: Προτασιακός Λογισμός: Μέθοδος Επίλυσης Τμήμα Επιστήμης Υπολογιστών

ΣΥΝΘΕΣΗ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ ΟΜΑΔΩΝ ΠΑΡΑΓΩΓΗΣ ΕΦΑΡΜΟΓΩΝ ΠΟΛΥΜΕΣΩΝ

K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων

Ασκήσεις Φροντιστηρίου «Υπολογιστική Νοημοσύνη Ι» 5 o Φροντιστήριο

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

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 4: Εισαγωγή / Σύνολα

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Εφαρμοσμένη Βελτιστοποίηση

Γραφική Λύση & Πρότυπη Μορφή Μαθηματικού Μοντέλου

ΠΡΟΓΡΑΜΜΑ ΕΞΕΤΑΣΕΩΝ. Εφαρμοσμένος & Υπολογιστικός Ηλεκτρομαγνητισμός Ηλ. Αιθ. 012, 013. Στοχαστικά Συστήματα & Επικοινωνίες Ηλ. Αμφ.

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΣΧΕΔΙΑΣΗΣ ΠΡΟΪΟΝΤΩΝ & ΣΥΣΤΗΜΑΤΩΝ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΕΙΔΙΚΕΥΣΗΣ: «ΣΧΕΔΙΑΣΗ ΔΙΑΔΡΑΣΤΙΚΩΝ ΚΑΙ ΒΙΟΜΗΧΑΝΙΚΩΝ ΠΡΟΪΟΝΤΩΝ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ» ΣΕ ΣΥΜΠΡΑΞΗ ΜΕ ΤΟ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ ΤΟΥ ΑΤΕΙΘ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΤΙΤΛΟΣ: «ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΠΡΟΣΟΜΟΙΩΣΗ ΤΗΣ ΔΙΑΔΙΚΑΣΙΑΣ ΠΑΡΑΓΩΓΗΣ ΛΙΘΟΓΡΑΦΙΚΩΝ ΠΛΑΚΩΝ ΑΛΟΥΜΙΝΙΟΥ ΜΕ ΤΗ ΧΡΗΣΗ ΤΩΝ COLOURED PETRI NETS» ΟΝΟΜ/ΜΟ: ΞΑΝΘΟΠΟΥΛΟΣ ΧΡΗΣΤΟΣ ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΤΖΙΩΝΑΣ ΠΑΝΑΓΙΩΤΗΣ ΘΕΣΣΑΛΟΝΙΚΗ 2007

Αφιερώνεται στους γονείς μου 1

ΕΥΧΑΡΙΣΤΙΕΣ Αρχικά, θα ήθελα να ευχαριστήσω τον καθηγητή του τμήματος Αυτοματισμού του ΑΤΕΙ Θεσσαλονίκης κ. Τζιώνα Παναγιώτη για την επίβλεψη του στην ολοκλήρωση αυτής της διπλωματικής εργασίας, καθώς και για την καθοδήγησή του και την εποικοδομητική συνεργασία που είχαμε καθ όλη τη διάρκεια εκπόνησής της. Στη συνέχεια, θα ήθελα να ευχαριστήσω τον εργαστηριακό συνεργάτη του τμήματος Αυτοματισμού του ΑΤΕΙ Θεσσαλονίκης κ. Παπανάγνου Χρήστο, οι υποδείξεις του οποίου βοήθησαν σε σημαντικό βαθμό την πορεία και την ολοκλήρωση της παρούσας διπλωματικής εργασίας. Θα ήθελα επίσης να ευχαριστήσω τον καθηγητή του τμήματος Αυτοματισμού του ΑΤΕΙ Θεσσαλονίκης κ. Γωγούση Αριστείδη για το χρόνο που διέθεσε για την ανάγνωση της διπλωματικής μου εργασίας και τις παρατηρήσεις του πάνω σε αυτήν. Τέλος, θα ήθελα να ευχαριστήσω την οικογένειά μου για τη στήριξη και συμπαράσταση που μου παρείχαν καθ όλη τη διάρκεια σπουδών μου. Ξανθόπουλος Χρήστος Θεσσαλονίκη, 2007 2

ΠΕΡΙΛΗΨΗ Ο σχεδιασμός και ο προγραμματισμός της παραγωγής είναι απαραίτητα για την επίτευξη αποδοτικής κατανομής των πόρων, στην ικανοποίηση των τελικών απαιτήσεων των πελατών και στον καθορισμό του όγκου παραγωγής. Ο αποτελεσματικός προγραμματισμός είναι ένα βασικό ζήτημα για τα σύγχρονα συστήματα παραγωγής δεδομένου ότι μπορεί να βελτιώσει το ρυθμό παραγωγής προϊόντων και τη χρησιμοποίηση των μηχανών. Τα συστήματα παραγωγής παρουσιάζουν υψηλή πολυπλοκότητα και αναμένεται να χειριστούν τεράστια ποσά δεδομένων. Επομένως, η ανάγκη για κατάλληλα μοντέλα και αποδοτικά εργαλεία προσομοίωσης που να αναπαριστούν, να αναλύουν και να αξιολογούν τέτοια συστήματα έχει αναγνωριστεί από καιρό. Αυτή η εργασία παρουσιάζει τη μοντελοποίηση και την προσομοίωση μιας ολοκληρωμένης εγκατάστασης παραγωγής λιθογραφικών πλακών αλουμινίου, με τη χρήση των Hierarchical Coloured Timed Petri Nets (HCTPN). Αυτά τα δίκτυα παρέχουν μια αποδοτική αναπαράσταση για τέτοιες διαδικασίες παραγωγής και μπορούν να χρησιμοποιηθούν για εκτεταμένη ανάλυση αυτών καθώς και για αξιολόγηση της απόδοσής τους με την βοήθεια κατάλληλων χαρακτηριστικών μεγεθών (metrics). Πιο συγκεκριμένα, αυτή η εργασία εξετάζει την εφαρμογή ενός γενικού μοντέλου, ικανού να ενσωματώσει τις διάφορες ιδιότητες των διαδικασιών παραγωγής. Το προτεινόμενο HCTPN μοντέλο παρέχει πληροφορίες για throughput rates, makespans, machine occupancy και work in process inventory (οι όροι αυτοί εξηγούνται στο κεφάλαιο 6). Η αξιοπιστία του ελέγχθηκε επιτυχώς χρησιμοποιώντας πραγματικά δεδομένα παραγωγής και διαπιστώθηκε ότι τα CPN είναι κατάλληλα για τη μοντελοποίηση, την ανάλυση και την αξιολόγηση της απόδοσης της πολύπλοκης διαδικασίας παραγωγής των προϊόντων αλουμινίου που 3

αναφέρθηκαν παραπάνω. Με τη βοήθεια του μοντέλου, διάφορα σενάρια ερευνήθηκαν μέσω εκτενών προσομοιώσεων, όπως η εγκατάσταση πρόσθετων μηχανών, η αύξηση του μεγέθους των προσωρινών χώρων αποθήκευσης (buffers) και η μείωση των προκαθορισμένων χρόνων που τα προϊόντα παραμένουν στις ενδιάμεσες περιοχές αποθήκευσης. Τα αποτελέσματα δείχνουν ότι οι διευθυντές παραγωγής μπορούν να ωφεληθούν σημαντικά από το προτεινόμενο μοντέλο ώστε να αποκτήσουν σημαντική γνώση για το σύστημα καθώς και να γίνει καλύτερη λήψη αποφάσεων από την πλευρά τους. 4

ΠΕΡΙΕΧΟΜΕΝΑ 1. ΕΙΣΑΓΩΓΗ... 7 2. PETRI NETS... 12 2.1 Εισαγωγή... 12 2.2 Ιστορική αναδρομή... 12 2.3 Δομή και ορισμός των Petri nets... 14 2.4 Marking των Petri nets... 19 2.5 Εκτέλεση των Petri nets... 20 2.6 Βασικές δυναμικές καταστάσεις που μοντελοποιούνται με Petri nets... 23 2.7 Ιδιότητες των Petri nets... 25 2.7.1 Προσβασιμότητα (reachability)... 25 2.7.2 Περιοριστικότητα (Boundedness) και Ασφάλεια (Safety).26 2.7.3 Liveness (Ζωντάνια)... 27 2.7.4 Αντιστρεψιμότητα (Reversibility) και Αρχική Κατάσταση (Home State)... 27 2.7.5 Επιμονή (Persistence)... 28 2.8 Τεχνικές ανάλυσης των Petri nets... 29 2.9 Κατηγορίες των Petri nets... 29 2.10 Εφαρμογές των Petri nets... 30 3. COLOURED PETRI NETS... 32 3.1 Εισαγωγή... 32 3.2 Ανάπτυξη παραδείγματος χρήσης των CPN... 33 3.3 CPN Tools... 54 3.4 Προσομοίωση των CPN... 55 3.5 Ανάλυση της απόδοσης των CPN... 57 3.6 Ιεραρχικά CPN... 65 3.7 Εφαρμογές των CPN... 68 3.8 Συμπεράσματα... 68 4. ΠΕΡΙΓΡΑΦΗ ΤΗΣ ΠΑΡΑΓΩΓΙΚΗΣ ΔΙΑΔΙΚΑΣΙΑΣ... 72 4.1 Σταθμός 1: Hot-Line... 73 5

4.2 Σταθμός 2: High-Bay... 75 4.3 Σταθμός 3: LSDT και έλεγχος ποιότητας... 78 5. ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΚΑΙ ΣΧΕΔΙΑΣΜΟΣ ΤΗΣ ΠΑΡΑΓΩΓΙΚΗΣ ΔΙΑΔΙΚΑΣΙΑΣ ΜΕ HCTPN... 79 5.1 Top-page Production system... 79 5.2 Η υποσελίδα Arrival of slabs (b1)... 81 5.3 Η υποσελίδα Scalping and Furnace process (b2)... 82 5.4 Η υποσελίδα Hot-Rolling process (b3)... 84 5.5 Η υποσελίδα Tandem mill process & transport into the High- Bay area (b4)... 85 5.6 Η υποσελίδα Annealing and cold-rolling process (b5)... 87 5.7 Η υποσελίδα LSDT process (b6)... 91 5.8 Η υποσελίδα Inspection process and transport to the final storage area (b7)... 91 6. ΑΠΟΤΕΛΕΣΜΑΤΑ ΤΗΣ ΠΡΟΣΟΜΟΙΩΣΗΣ ΚΑΙ ΑΝΑΛΥΣΗ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ... 93 7. ΣΥΜΠΕΡΑΣΜΑΤΑ...101 ΑΝΑΦΟΡΕΣ...103 6

1. ΕΙΣΑΓΩΓΗ Η προσομοίωση της παραγωγής ειδικά σε ανταγωνιστικές αγορές αποτελεί έναν από τους βασικότερους παράγοντες, με τον οποίο οι διευθυντές μπορούν να καθορίσουν το σχέδιο φόρτωσης παραγωγής (production loading plan), να αποκριθούν άμεσα στις βλάβες των μηχανών και να βελτιώσουν την παραγωγικότητα με τη δημιουργία διαφορετικών σεναρίων και τη λήψη αποφάσεων. Η λειτουργία και η απόδοση της παραγωγής είναι αναγκαίο να βελτιώνονται συνεχώς, ενώ οι διευθυντές πρέπει να συνδέουν τα ατομικά προϊόντα με τους μεμονωμένους παραγωγικούς πόρους σε μικρότερους χρόνους. Οι διαδικασίες παραγωγής χαρακτηρίζονται συχνά από την παρουσία τεράστιων ποσών δεδομένων και παραμέτρων. Ο αποδοτικός χειρισμός όλων αυτών των δεδομένων και παραμέτρων μπορεί να είναι μια αρκετά δύσκολη εργασία και χρειάζεται ισχυρά εργαλεία με προηγμένες ικανότητες. Κίνητρο για αυτή την εργασία αποτέλεσαν τα προβλήματα που αντιμετωπίζουν οι βαριές βιομηχανίες παραγωγής λιθογραφικών πλακών αλουμινίου. Η διαχείριση παραγωγής σε αυτές τις βιομηχανίες έχει να κάνει με την ανάπτυξη ενός εβδομαδιαίου πλάνου παραγωγής, σύμφωνα με διαφορετικούς τύπους προϊόντων που ορίζονται από τους πελάτες, την ποσοτική ικανότητα παραγωγής, την προτεραιότητα παραγγελιών και άλλους παράγοντες. Τα τελικά προϊόντα αυτού του είδους παράγονται σε make-to-order (MTO) βιομηχανικό περιβάλλον όπου μαζί με τον πελάτη συμφωνείται μια ημερομηνία παράδοσης. Τα προϊόντα που έχουν παραγγελθεί από τους πελάτες τοποθετούνται στο κύριο εβδομαδιαίο πρόγραμμα και ο σχεδιασμός της παραγωγής κατόπιν διευκρινίζει την απαραίτητη παραγωγή [1]. Εφόσον το κύριο πρόγραμμα παραγωγής είναι βασισμένο στις τρέχουσες παραγγελίες, ο πελάτης καθορίζει (σε κάθε στιγμή) τον προγραμματισμό της 7

παραγωγής. Αυτό το σύστημα παραγωγής είναι γνωστό ως pull production και απαντάται συχνά στις βαριές βιομηχανίες. Η ανάγκη για μοντέλα και εργαλεία προσομοίωσης για την περιγραφή, την ανάλυση και την αξιολόγηση αυτών των βιομηχανικών περιβαλλόντων έχει αναγνωριστεί από καιρό ότι είναι απαραίτητη και έχει μελετηθεί εκτενώς. Κατά τη διάρκεια των προηγούμενων δεκαετιών, πολλές βιομηχανικές μονάδες έχουν προσπαθήσει να χρησιμοποιήσουν διάφορα μοντέλα και εργαλεία λογισμικού προκειμένου να προσομοιώσουν τα σύνθετα περιβάλλοντα παραγωγής τους και να προβλέψουν τη μελλοντική συμπεριφορά της διαδικασίας παραγωγής. Επίσης, από το χειρισμό του μοντέλου αναμένεται ότι η νέα γνώση για τη διαδικασία παραγωγής μπορεί να ληφθεί χωρίς τη δυσκολία ή το κόστος από τον χειρισμό της πραγματικής διαδικασίας. Επομένως, είναι ουσιαστικό να γίνει κατανοητή η συμπεριφορά των συστημάτων παραγωγής όπως για παράδειγμα οι παράμετροι που έχουν επιπτώσεις στην απόδοση των γραμμών παραγωγής. Αυτή η εργασία περιγράφει τεχνικές για την μοντελοποίηση και την προσομοίωση μιας παραγωγικής διαδικασίας μέσω των Hierarchical Coloured Timed Petri Nets (HCTPN). Γενικά η χρήση των Petri nets έχει προταθεί πολύ στην βιβλιογραφία που σχετίζεται με παραγωγικές διεργασίες. Ο Dicesare et al. [2] δίνει τις πιο σημαντικές ιδιότητες των Petri nets και τις εφαρμογές τους στη σχεδίαση και στην ανάλυση των παραγωγικών συστημάτων. Οι Xiaolan και Proth [3] καθώς και οι Silva και Valette [4] χρησιμοποιούν τα Petri nets για τον καθορισμό, την μοντελοποίηση και την αξιολόγηση της απόδοσης των παραγωγικών συστημάτων, ενώ οι Proth and Xie [5] παρουσιάζουν την θεωρία των Petri nets για την μοντελοποίηση και τη διαχείριση της μελλοντικής συμπεριφοράς των συστημάτων παραγωγής. Ο Recalde et al. [6] παρουσιάζει σε 8

ένα διδακτικό ύφος διάφορα παραδείγματα στα οποία τα Petri nets χρησιμοποιούνται για την μοντελοποίηση, την ανάλυση, την σύνθεση και την υλοποίηση των συστημάτων παραγωγής. Επίσης, τα Coloured Petri nets (CPN) χρησιμοποιούνται ευρέως στην βιομηχανία. Στο [7] ένα απλό CPN μοντέλο δημιουργείται για την περιγραφή και την επαλήθευση των διαδικασιών ελέγχου σε ένα χημικό σύστημα παραγωγής. Το CPN μοντέλο περιγράφει τα στοιχεία διεργασίας, την τεχνική τους λειτουργικότητα καθώς και την κατανομή των στοιχείων διεργασίας για τον έλεγχο συνταγών στις χημικές διεργασίες. Ο Zimmermann [8] χρησιμοποιεί τα CPN με σκοπό να διευκολύνει την ανεξάρτητη μοντελοποίηση της δομής ενός παραγωγικού συστήματος και τις διαδρομές παραγωγής των προς επεξεργασία προϊόντων. Οι Chincholkar και Chetty [9] χρησιμοποιούν τα Στοχαστικά Coloured Petri nets για τον προγραμματισμό των ευέλικτων συστημάτων παραγωγής, θεωρώντας στοχαστικές συμπεριφορές όπως η βλάβη και η επισκευή των μηχανών και οι αποκλίσεις στους χρόνους των διαδικασιών. Οι Nandula και Dutta [10] μελετούν ένα push-type παραγωγικό σύστημα αναφοράς που είναι ενσωματωμένο σε ένα σύστημα pull type με την βοήθεια των CPN και προτείνουν διάφορους κανόνες λήψης αποφάσεων για τις οντότητες με σκοπό να διασφαλίσουν την ομαλή ροή προϊόντων και να βελτιώσουν την απόδοση του συστήματος. Στο [11] ο Tsinarakis κ. ά. παρουσιάζουν τα Υβριδικά Timed Petri Nets για την μοντελοποίηση, την ανάλυση και την αξιολόγηση της απόδοσης των συστημάτων παραγωγής, ενώ οι Wu και Zhou [12] αναλύουν τα θέματα αδιεξόδου (deadlock) και ασιτίας (starvation) σε αυτοματοποιημένα βιομηχανικά συστήματα. Τα δέντρα κάλυψης (coverability trees) και οι γράφοι προσβασιμότητας (reachability graphs) έχουν προταθεί ως πολύτιμα εργαλεία για την ανάλυση στα Petri nets [13]. Όμως, δεν μπορούν 9

εύκολα να εφαρμοστούν σε πολύπλοκα συστήματα εξαιτίας κυρίως του προβλήματος μεγέθυνσης του χώρου κατάστασης, όπως αναφέρεται στη βιβλιογραφία [14] (η πολυπλοκότητα αυξάνεται εκθετικά με το μέγεθος του Petri net). Η σχεδίαση και η υλοποίηση του προτεινόμενου μοντέλου σε αυτή την εργασία βασίζεται στα CPN-Tools. Στη περίπτωσή μας, ο χώρος κατάστασης είναι πολύ μεγάλος (χρησιμοποιούνται 1250 διαφορετικά tokens ως αρχικό marking και περισσότερα από 34 transitions πρέπει να ενεργοποιηθούν) και για το λόγο αυτό δεν μπορεί να κατασκευαστεί. Παρόλα αυτά, όλα τα διαφορετικά σενάρια στη προσέγγισή μας εξερευνήθηκαν με τη βοήθεια κατάλληλων εργαλείων συλλογής δεδομένων (monitors) και βοηθητικών places που συγκεντρώνουν δεδομένα κατά τη διάρκεια προσομοίωσης στα CPN-Tools, επιτρέποντας την ανάλυση και την επεξεργασία των διαφόρων ιδιοτήτων που σχετίζονται με τον προγραμματισμό της παραγωγής. Η δομή της διπλωματικής εργασίας είναι η εξής: Το πρώτο κεφάλαιο αποτελεί την εισαγωγή της διπλωματικής εργασίας. Στο δεύτερο κεφάλαιο γίνεται μια πρώτη γνωριμία με τα Petri nets και περιγράφονται οι βασικές έννοιές τους. Στο τρίτο κεφάλαιο παρουσιάζονται αναλυτικά τα Coloured Petri nets με τη βοήθεια ενός παραδείγματος. Στο τέταρτο κεφάλαιο γίνεται περιγραφή της διαδικασίας παραγωγής λιθογραφικών πλακών αλουμινίου. Στο πέμπτο κεφάλαιο παρουσιάζεται η μοντελοποίηση και ο σχεδιασμός της παραγωγικής διαδικασίας που περιγράφτηκε στο τέταρτο κεφάλαιο. 10

Στο έκτο κεφάλαιο παρουσιάζονται και αναλύονται τα αποτελέσματα της προσομοίωσης. Στο έβδομο κεφάλαιο παρουσιάζονται τα συμπεράσματα που προέκυψαν από τη διπλωματική εργασία. 11

2. PETRI NETS 2.1 Εισαγωγή Τα Petri nets είναι ένα γραφικό και μαθηματικό εργαλείο μοντελοποίησης το οποίο μπορεί να εφαρμοστεί σε πολλά συστήματα. Θεωρούνται κατάλληλα για την περιγραφή και τη μελέτη συστημάτων που χαρακτηρίζονται ως ταυτόχρονα (concurrent), ασύγχρονα, κατανεμημένα (distributed), παράλληλα, μη ντετερμινιστικά και στοχαστικά [15]. Οι έννοιες, ιδιότητες, χαρακτηριστικά, εργαλεία ανάλυσης και τεχνικές που σχετίζονται με αυτά αναπτύχθηκαν στην προσπάθεια για εύρεση απλών, φυσικών κι αποτελεσματικών μεθόδων για περιγραφή και ανάλυση της ροής πληροφορίας και του ελέγχου συστημάτων [16]. Ως ένα γραφικό εργαλείο, τα Petri nets μπορούν να χρησιμοποιηθούν ώστε να βοηθήσουν την οπτική επικοινωνία με τρόπο παρόμοιο με αυτό των διαγραμμάτων ροής και των μπλοκ διαγραμμάτων. Ως μαθηματικό εργαλείο, είναι δυνατό να δημιουργηθούν εξισώσεις κατάστασης, αλγεβρικές εξισώσεις και άλλα μαθηματικά μοντέλα που καθορίζουν τη συμπεριφορά των συστημάτων[17]. Τα Petri nets μπορούν να χρησιμοποιηθούν τόσο από τους πρακτικούς όσο και από τους θεωρητικούς. Για το λόγο αυτό αποτελούν ένα ισχυρό μέσο επικοινωνίας μεταξύ τους. Από τη μια, οι πρακτικοί μπορούν να μάθουν από τους θεωρητικούς πως να κάνουν τα μοντέλα τους πιο μεθοδικά. Από την άλλη, οι θεωρητικοί μπορούν να μάθουν από τους πρακτικούς πως να κάνουν τα μοντέλα τους πιο ρεαλιστικά [18]. 2.2 Ιστορική αναδρομή Τα Petri nets γεννήθηκαν το 1962 από τον Carl Adam Petri στα πλαίσια της διδακτορικής του διατριβής που είχε ως αντικείμενο την επικοινωνία μεταξύ των αυτόματων μηχανών [19]. Σε αυτή τη 12

διατριβή, τα Petri nets χρησιμοποιήθηκαν ως μαθηματικό εργαλείο με σκοπό να αποτελέσουν τη βάση μιας θεωρίας επικοινωνίας (συσχετίσεων και γεγονότων) μεταξύ των συστατικών μερών ενός υπολογιστικού συστήματος. Η βασική ιδέα που παρουσιάστηκε από τον Petri ήταν πως ο καλύτερος τρόπος για την τυποποιημένη ανάλυση ενός συνόλου από επικοινωνούντα αυτόματα, ήταν να δηλωθούν με τον ίδιο τρόπο οι αλλαγές κατάστασης στα αυτόματα κι η μεταξύ τους επικοινωνία [20]. Αυτή η διατριβή του αποτέλεσε το θεμέλιο για τη θεωρητική ανάπτυξη των βασικών αρχών λειτουργίας των Petri nets. Αρχικά, ο A. W. Holt και άλλοι επιστήμονες από το Information System Theory Project of Applied Data Research στις Ηνωμένες Πολιτείες ήταν οι πρώτοι που έδειξαν μεγάλο ενδιαφέρον για τη διατριβή του Petri. Εκείνοι πρότειναν ότι τα δίκτυα Petri θα μπορούσαν να χρησιμοποιηθούν για την μοντελοποίηση και την ανάλυση συστημάτων με ταυτόχρονα γεγονότα. Επίσης, το Computational Structure Group του MIT, καθοδηγούμενο από τον καθηγητή J. B. Dennis, πρόσεξε την δουλειά του Petri, ενώ στην δεκαετία του '70 έγιναν και πολλές διδακτορικές διατριβές πάνω στο αντικείμενο. Από τα τέλη της δεκαετίας του '70, οι Ευρωπαίοι ήταν πολύ δραστήριοι στη διοργάνωση συνεδρίων και στη δημοσίευση εργασιών σχετικά με τα Petri nets. Το πρώτο βιβλίο με συλλογή μελετών και κειμένων γύρω από αυτά εκδόθηκε το 1981 [21]. Οι περισσότερες μελέτες αφορούσαν σε συστήματα επεξεργασίας δεδομένων που απασχολούσαν τους ανθρώπους της κοινωνίας των ηλεκτρονικών υπολογιστών. Αναλυτές με βάσεις μηχανικών άρχισαν στις αρχές της δεκαετίας του '80 να ασχολούνται με την χρήση των Petri nets σε εφαρμογές 13

μηχανικών, και κυρίως σε Αυτόματα Συστήματα Κατεργασιών. Στην πορεία ανακαλύφθηκε ότι τα Petri nets ήταν ένα ισχυρό εργαλείο στην περιγραφή συστημάτων που εξαρτώνται από γεγονότα (event driven systems). Αυτά τα συστήματα μπορεί να ήταν ασύγχρονα, να περιέχουν σειριακές ή παράλληλες εργασίες, να περιλαμβάνουν συγκρούσεις, αμοιβαίο αποκλεισμό και να μην είναι ντετερμινιστικά. Τέτοια συστήματα χαρακτηρίζονται ως συστήματα διακριτών γεγονότων ή Δυναμικά Συστήματα Διακριτών Γεγονότων (Discrete Event Dynamic Systems, DEDS). Πολλά βιβλία, κυρίως προς τα τέλη της δεκαετίας του '80, ασχολήθηκαν με εφαρμογές των Petri nets σε προβλήματα μηχανικών, είτε αυτά ήταν η μοντελοποίηση και η σύνθεση μεθόδων για τον έλεγχο συστημάτων κατεργασιών μέσω διακριτών γεγονότων, είτε η γενικότερη χρήση των Petri nets στην ανάλυση, την αξιολόγηση των επιδόσεων και τον έλεγχο συστημάτων παραγωγής. Γενικά, από τον αρχικό ορισμό των Petri nets μέχρι σήμερα που αποτελούν ένα από τα πλέον δημοφιλή εργαλεία μαθηματικής και γραφικής μοντελοποίησης, μεσολάβησε η παρουσίαση εκατοντάδων ορισμών, διευκρινίσεων, εργαλείων ανάλυσης κι επεκτάσεων του αρχικού μοντέλου, που πολλαπλασίασαν τις δυνατότητες αναπαράστασης και μελέτης συστημάτων. 2.3 Δομή και ορισμός των Petri nets Τα Petri nets είναι μια ειδική κατηγορία γράφων. Για το λόγο αυτό κρίθηκε σκόπιμο η παρουσίασή τους να αρχίσει με μια μικρή αναφορά στις βασικές έννοιες από τη θεωρία γράφων. Ένας γράφος αποτελείται από δυο τύπους στοιχείων, τους κόμβους και τις ακμές. Επίσης, χαρακτηριστικός για κάθε γράφο, είναι και ο τρόπος με τον οποίο συνδέονται οι κόμβοι και οι ακμές μεταξύ τους. Ορισμός των γράφων: Ένας γράφος G ορίζεται ως μια τριάδα G= (V, E, φ ) όπου V το μη κενό σύνολο των κόμβων του γράφου, Ε το 14

σύνολο των ακμών του γράφου και φ η συνάρτηση που συνδέει το σύνολο των ακμών Ε στο σύνολο των ζευγών των στοιχείων του V. Σε ένα γράφο G στον οποίον ανήκουν οι κόμβοι i και j συμβολίζουμε με το ζεύγος (i,j) την ακμή που ενώνει τα i και j. Αν το ζεύγος των κόμβων που συνδέονται μέσω μιας ακμής είναι διατεταγμένο, δηλαδή έχει οριστεί η σειρά των μελών του ζεύγους των ακμών (i,j), τότε η ακμή είναι κατευθυνόμενη και μπορεί να αντικατασταθεί από ένα βέλος το οποίο θα δείχνει την κατεύθυνση. Αν όλες οι ακμές του γράφου είναι κατευθυνόμενες, τότε ο γράφος ονομάζεται κατευθυνόμενος γράφος. Τρία παραδείγματα γράφων φαίνονται παρακάτω στο σχήμα 1. Ο πρώτος γράφος που αποτελείται μόνο από δύο ασύνδετους κόμβους, μπορεί να θεωρηθεί και ως κατευθυνόμενος και ως μη κατευθυνόμενος. Ο δεύτερος γράφος είναι μη κατευθυνόμενος, ενώ ο τρίτος είναι κατευθυνόμενος Σχήμα 1. Παραδείγματα γράφων Σε ένα γράφο, δύο κόμβοι που συνδέονται με μια ακμή ονομάζονται γειτονικοί κόμβοι. Όταν ένας γράφος περιέχει παράλληλες ακμές, δηλαδή ακμές που συνδέουν το ίδιο ζευγάρι κόμβων και που, εάν είναι κατευθυνόμενες, έχουν την ίδια κατεύθυνση, τότε ο γράφος ονομάζεται πολύγραφος (multigraph). Στο σχήμα 2 φαίνονται δύο γράφοι από τους οποίους, ο πρώτος είναι πολύγραφος ενώ ο 15

δεύτερος δεν είναι, γιατί οι πολλαπλές ακμές που συνδέουν τους κόμβους n1, n2 δεν έχουν την ίδια κατεύθυνση. πολύγραφος όχι πολύγραφος Σχήμα 2: Παραδείγματα πολυγράφων Ένα άλλο χαρακτηριστικό των Petri nets ως γράφων είναι ότι είναι διμερείς γράφοι. Αυτό σημαίνει ότι έχουν δύο τύπους κόμβων. Ο πρώτος τύπος κόμβων ονομάζεται place και ο δεύτερος transition. Τα places αναπαριστώνται με κύκλους ενώ τα transitions αναπαριστώνται με κατακόρυφες μπάρες. Οι ακμές ενός Petri net είναι πάντα κατευθυνόμενες και ονομάζονται arcs. Στο σχήμα 3 φαίνονται τα σύμβολα. place transition arc Σχήμα 3: Βασικά συστατικά των Petri nets Στους διμερείς γράφους μια ακμή μπορεί να συνδέσει μόνο δύο κόμβους που ανήκουν σε διαφορετικό τύπο. Έτσι, στα Petri nets τα arcs είτε ξεκινούν από ένα place και καταλήγουν σε ένα transition, ορίζοντας μια σχέση κατάληξης, είτε ξεκινούν από ένα transition και καταλήγουν σε ένα place, ορίζοντας μια σχέση επαναφοράς. Τα places που μέσω των arcs οδηγούν σε ένα transition, λέγονται input places για αυτό το transition, ενώ τα places στα οποία καταλήγουν τα arcs από ένα transition λέγονται output places για αυτό το transition. 16

Τα transitions έχουν την έννοια των γεγονότων και των ενεργειών που συμβαίνουν στο σύστημα κι η πραγματοποίηση τους μεταβάλει την κατάσταση του. Αποτελούν τα ενεργά στοιχεία του συστήματος. Ένα transition μπορεί να αντιπροσωπεύει μια ενέργεια, μια διαδικασία, μια επεξεργασία, μια δραστηριότητα, το υπολογιστικό βήμα ενός αλγορίθμου, μια λογική πρόταση ή ένα επεξεργαστή σήματος. Τα places περιγράφουν τις καταστάσεις και τους πόρους του συστήματος. Είναι τα παθητικά στοιχεία του δικτύου. Συγκεκριμένα, τα input places ενός transition αναπαριστούν τις προϋποθέσεις για το γεγονός που αντιστοιχεί στο transition ή απαραίτητα δεδομένα εισόδου, ενώ τα output places ενός transition αναπαριστούν τα αποτελέσματα του γεγονότος που αντιστοιχεί στο transition. Τα places μαζί με τα transition αναπαριστούν τη στατική δομή ενός Petri net. Τα arcs αναπαριστούν φυσική σύνδεση, δικαιώματα πρόσβασης, λογικές συνδέσεις μεταξύ places και transitions, απαίτηση σε πόρους και την εξαγωγή συμπερασμάτων. Επίσης, καθορίζουν την προτεραιότητα στην εκτέλεση ανταγωνιζόμενων εργασιών ή τη σειρά με την οποία κάποιες εργασίες θα εκτελεστούν. Ορισμός των Petri nets: Ένα Petri net είναι ένας διμερής κατευθυνόμενος γράφος και ορίζεται από τη διατεταγμένη τετράδα PN = (P, T, I, O), όπου : P = {p1, p2,, pn}, n>0, είναι το πεπερασμένο σύνολο όλων των places του Petri net. T = {t1, t2,, tm}, m>0, είναι το πεπερασμένο σύνολο όλων των transition του Petri net, όπου PUT 0 και P T = 0. 17

I : P x T N, είναι η συνάρτηση εισόδου που ορίζει το σύνολο των προσανατολισμένων arcs από τα P στα Τ, όπου Ν = {0, 1, 2, } Ο : P x T N, είναι η συνάρτηση εξόδου που ορίζει το σύνολο των προσανατολισμένων arcs από τα Τ στα Ρ. Στο παρακάτω σχήμα 4 φαίνεται ένα παράδειγμα ενός Petri net. Σχήμα 4. Παράδειγμα ενός Petri net Η δομή του παραπάνω Petri net δηλαδή η τετράδα που το ορίζει, μπορεί να παρουσιαστεί ως εξής : P = {p1, p2, p3, p4, p5} T = {t1, t2, t3, t4, t5} I(p1, t1) = 0 I(p2, t1) = 0 I(p3, t1) = 0 I(p4, t1) = 0 I(p5, t1) = 0 I(p1, t2) = 1 I(p2, t2) = 0 I(p3, t2) = 0 I(p4, t2) = 0 I(p5, t2) = 1 I(p1, t3) = 0 I(p2, t3) = 0 I(p3, t3) = 0 I(p4, t3) = 1 I(p5, t3) = 0 I(p1, t4) = 0 I(p2, t4) = 1 I(p3, t4) = 0 I(p4, t4) = 0 I(p5, t4) = 0 I(p1, t5) = 0 I(p2, t5) = 0 I(p3, t5) = 1 I(p4, t5) = 0 I(p5, t5) = 0 O(t1, p1) = 1 O(t2, p1) = 0 O(t3, p1) = 1 O(t4, p1) = 0 O(t5, p1) = 0 O(t1, p2) = 0 O(t2, p2) = 1 O(t3, p2) = 0 O(t4, p2) = 0 O(t5, p2) = 0 18

O(t1, p3) = 0 O(t2, p3) = 1 O(t3, p3) = 0 O(t4, p3) = 0 O(t5, p3) = 0 O(t1, p4) = 0 O(t2, p4) = 0 O(t3, p4) = 0 O(t4, p4) = 0 O(t5, p4) = 1 O(t1, p5) = 0 O(t2, p5) = 0 O(t3, p5) = 0 O(t4, p5) = 1 O(t5, p5) = 0 2.4 Marking των Petri nets Τα Petri nets δε θα ήταν πολύ χρήσιμα, αν ήταν απλώς διαγράμματα τα οποία θα περιέγραφαν τις σχέσεις μεταξύ των αντικειμένων που αναπαρίστανται από τους κόμβους. Ένα βασικό χαρακτηριστικό των Petri nets είναι ότι μπορούν να εκτελεστούν. Έτσι, μπορεί κάποιος να παρατηρήσει τις αλληλεπιδράσεις μεταξύ των συστατικών ενός Petri net και να μελετήσει τη δυναμικότητα του συστήματος που μοντελοποιείται από αυτό. Για να περιγραφεί η δυναμική του Petri net εισάγεται ένα τέταρτο αντικείμενο, το οποίο ονομάζεται token και αναπαρίσταται από μια μαύρη τελεία ( ). Κάθε place μπορεί να μην έχει κανένα token ή μπορεί να έχει ένα θετικό αριθμό από tokens. Τα tokens μέσα σε κάποιο place μπορούν να σημαίνουν τον αριθμό των πόρων, τη διαθεσιμότητα ενός πόρου, την κατάσταση του πόρου (π.χ. αν μια μηχανή είναι διαθέσιμη ή όχι), σήματα εισόδου κι εξόδου, να υποδηλώνουν αν μια συνθήκη είναι αληθής, ή να δηλώνουν αν μια εργασία είναι σε λειτουργία. Αυτό εξαρτάται από το τι υποδηλώνει το place μέσα στο οποίο βρίσκονται. Τα tokens αλληλεπιδρούν με τα places και τα transitions. Πιο συγκεκριμένα, αποθηκεύονται μέσα στα places, ενώ ταξιδεύουν μέσω των arcs και η ροή τους στο Petri net ρυθμίζεται από τα transitions που τίθενται σε ετοιμότητα από την παρουσία τους στα κατάλληλα places. Έτσι, τα places μαζί με τα transitions αναπαριστούν τη στατική δομή ενός Petri net ενώ τα tokens καθορίζουν τη δυναμική του κατάσταση. Το marking ενός Petri net συμβολίζεται με Μ και είναι μια συνάρτηση : Ρ Ν, όπου Ν={0, 1, 2, }, η οποία αναθέτει ένα μη- 19

αρνητικό ακέραιο αριθμό σε κάθε place του δικτύου. Ένα marking μπορεί να αναπαρασταθεί με ένα n-διάστατο ακέραιο διάνυσμα, του οποίου τα στοιχεία αντιστοιχούν στα places του δικτύου. Έτσι, ο i- οστός όρος του διανύσματος παριστάνει τον αριθμό των tokens στο i-οστό place. Το διάνυσμα του marking παριστάνει την κατάσταση του Petri net, δηλαδή τη διανομή από tokens στα places του δικτύου. Η κατάσταση του συστήματος αλλάζει όταν αλλάζει η διανομή των tokens. Το αρχικό marking του δικτύου συμβολίζεται με Μ 0. 2.5 Εκτέλεση των Petri nets Κατά την εκτέλεση των Petri nets αλλάζει η διανομή των tokens στα places. Με το τρόπο αυτό δηλώνεται η αλλαγή στην κατάσταση του συστήματος. Οι κανόνες εκτέλεσης των Petri nets παρατίθενται παρακάτω και είναι οι εξής: 1) Ένα transition t T ενεργοποιείται, όταν και μόνο όταν : M(p) I(p,t), p P, όπου Μ(p) είναι το marking του place p. 2) Το transition t που ενεργοποιείται σε ένα marking Μ, πυροδοτεί και ως αποτέλεσμα προκύπτει ένα νέο marking M, όπου: M (p) = M(p) I(p, t) + O(p, t,), p P. Ο πρώτος κανόνας, δηλαδή αυτός της ενεργοποίησης, λέει ότι αν όλα τα input places ενός transition t περιέχουν τον απαραίτητο αριθμό από tokens για την πυροδότηση του transition, τότε το transition ενεργοποιείται και ονομάζεται enabled. Μόνο enabled transitions μπορούν να πυροδοτήσουν. Αυτό σημαίνει ότι αν οι συνθήκες σχετικά με την πραγματοποίηση ενός γεγονότος ικανοποιούνται πλήρως, τότε το γεγονός λαμβάνει χώρα. 20

Ο δεύτερος κανόνας, δηλαδή αυτός της πυροδότησης, λέει ότι ένα enabled transition t πυροδοτεί (fires) ή ισοδύναμα ένα γεγονός συμβαίνει. Η πυροδότηση (firing) αυτή μπορεί να μελετηθεί σε δύο φάσεις. Σε πρώτη φάση, αφαιρείται ο αριθμός των tokens που χρειάζονται από το κάθε input place και ο αριθμός αυτός ισούται με το άθροισμα των arcs που συνδέουν το input place με το transition t. Στην παραπάνω εξίσωση, αυτό δηλώνεται από το Ι(p, t). Στη δεύτερη φάση, τοποθετούνται τα tokens στο κάθε ένα output place από το transition t και ο αριθμός των tokens ισούται με το άθροισμα των arcs από το t στα συνδεόμενα output places. Στην παραπάνω εξίσωση, αυτό δηλώνεται από το +Ο(p,t). Υπάρχουν περιπτώσεις που ένα enabled transition δεν πυροδοτεί, όπως για παράδειγμα όταν συμβαίνει περισσότερα από ένα transitions να έχουν ένα κοινό input place το οποίο περιέχει ένα μόνο token. Στην πράξη, το φαινόμενο αυτό είναι σύνηθες σε προβλήματα κατανομής κοινών πόρων σε ένα σύστημα και σε προβλήματα αμοιβαία αποκλειόμενων γεγονότων. Στη συνέχεια παρατίθεται ένα παράδειγμα με σκοπό να γίνουν κατανοητά όσα αναφέρθηκαν παραπάνω. Στο σχήμα 5, το Petri net βρίσκεται στην αρχική του κατάσταση. Το transition t1 είναι enabled, ενώ το t2 δεν είναι, γιατί ένα από τα input place δεν έχει token. Σχήμα 5. Αρχική κατάσταση του Petri net 21

Όταν το transition t1 πυροδοτεί, το token αφαιρείται από το place p1 και ένα καινούριο token εμφανίζεται στο place p2, όπως φαίνεται στο σχήμα 6. Σχήμα 6. Η κατάσταση του Petri net μετά τη πυροδότηση του t1 Το transition t2 είναι τώρα ενεργοποιημένο μια και υπάρχει ένα token σε κάθε ένα από τα input places p2 και p3. Όταν το transition t2 πυροδοτήσει, τα tokens στα places p2 και p3 αφαιρούνται και νέα tokens δημιουργούνται στα places p3 και p4, όπως φαίνεται στο σχήμα 7. Το marking του place p3 δεν μεταβάλλεται μετά την πυροδότηση του transition t2, αφού τα p3 και t2 σχηματίζουν ένα κλειστό βρόγχο. Σχήμα 7. Η κατάσταση του Petri net μετά από δύο πυροδοτήσεις Το transition t3 είναι ενεργοποιημένο τώρα και πυροδοτεί. Το token αφαιρείται από το place p4 και ένα νέο token δημιουργείται στο place p5, όπως φαίνεται στο σχήμα 8. 22

Σχήμα 8. Η κατάσταση του Petri net μετά από τρεις πυροδοτήσεις Κανένα άλλο transition δεν είναι enabled και η εκτέλεση του δικτύου ολοκληρώνεται. Η παραπάνω διαδικασία αναφέρεται ως token game [22]. 2.6 Βασικές δυναμικές καταστάσεις που μοντελοποιούνται με Petri nets Οι πιο βασικές καταστάσεις που εμφανίζονται κατά τη μελέτη συστημάτων διακριτών γεγονότων είναι η ακολουθία γεγονότων, η παραλληλία, ο αμοιβαίος αποκλεισμός και ο συγχρονισμός. Στο σημείο αυτό παρουσιάζεται ο τρόπος με τον οποίο τα Petri nets ανταποκρίνονται στις ανάγκες μοντελοποίησης τους. Δύο επιπλέον καταστάσεις συνήθεις για τα συστήματα διακριτών γεγονότων είναι το αδιέξοδο (deadlock) και η σύγκρουση. Η ακολουθία ή ακολουθιακή συμπεριφορά αναφέρεται σε ένα δίκτυο αποτελούμενο από δύο transitions, όπου το output place του πρώτου αποτελεί το input place του δεύτερου. Στην περίπτωση αυτή το δεύτερο transition δε μπορεί να πυροδοτήσει αν δεν προηγηθεί η πυροδότηση του πρώτου. Η παραλληλία ή ταυτοχρονισμός συμβαίνει όταν δύο transitions είναι enabled και δεν αλληλεπιδρούν μεταξύ τους (δεν έχουν κοινές εισόδους, ή τα output places του ενός δεν αποτελούν εισόδους στο άλλο), οπότε μπορούν να πραγματοποιηθούν ταυτόχρονα. 23

Ο αμοιβαίος αποκλεισμός συνδέεται με την ύπαρξη κοινών πόρων σε ένα σύστημα. Σε αυτόν, δύο transitions είναι παράλληλα enabled σε κάποιο marking, όμως δεν μπορούν να πυροδοτήσουν και τα δύο εξαιτίας της ύπαρξης κοινού input place το οποίο περιέχει ένα μόνο token. Ο αμοιβαίος αποκλεισμός αποτελεί περίπτωση σύγκρουσης. Σε περιπτώσεις συγκρούσεων, η επιλογή του transition που θα πυροδοτήσει, μπορεί να γίνει με διαφορετικά κριτήρια, όπως την ύπαρξη προτεραιοτήτων, τη συνολική κατάσταση του συστήματος, την απόδοση πιθανοτήτων, την ενεργοποίηση των transitions σε διαφορετικό χρόνο κτλ. Ο συγχρονισμός παρατηρείται όταν ένα transition έχει περισσότερα από ένα input places. Στην περίπτωση αυτή, το transition δεν μπορεί να ενεργοποιηθεί μέχρι να βρεθούν tokens σε όλα τα input places. Χαρακτηριστική περίπτωση κατεργασίας που είναι αναγκαίος ο συγχρονισμός αποτελούν οι συναρμολογήσεις στα συστήματα παραγωγής. Η αναπαράσταση με Petri nets των παραπάνω γεγονότων παρουσιάζεται στο σχήμα 9. Αδιέξοδο εμφανίζεται σε ένα Petri net όταν φτάσει σε μια κατάσταση όπου κανένα transition δεν μπορεί να ενεργοποιηθεί και να πυροδοτήσει και συνεπώς η εκτέλεση του δικτύου διακόπτεται. Με λίγες εξαιρέσεις (π.χ. όταν μελετάται η εξυπηρέτηση συγκεκριμένου αριθμού πελατών σε ένα σύστημα), πρόκειται για ανεπιθύμητη κατάσταση που οφείλεται σε λάθος σχεδιασμού, κι απαιτεί τον επανασχεδιασμό μέρους του συστήματος ή του μοντέλου του [23]. 24

Σχήμα 9. Αναπαράσταση με Petri nets α) ακολουθίας γεγονότων, β) παραλληλίας, γ) αμοιβαίου αποκλεισμού και δ) συγχρονισμού. 2.7 Ιδιότητες των Petri nets Τα Petri nets είναι ικανά για την μοντελοποίηση μιας μεγάλης ποικιλίας συστημάτων. Όμως, η μοντελοποίηση από μόνη της έχει μικρή χρησιμότητα. Είναι απαραίτητο να αναλυθεί το μοντελοποιημένο σύστημα. Τα Petri nets έχουν διάφορες ιδιότητες η ανάλυση των οποίων μπορεί να οδηγήσει σε μια βαθιά γνώση της συμπεριφοράς του συστήματος που έχει μοντελοποιηθεί. Οι ιδιότητες αυτές χωρίζονται σε δυο κατηγορίες, τις ιδιότητες συμπεριφοράς (behavioral properties) και τις δομικές ιδιότητες (structural properties). Οι ιδιότητες συμπεριφοράς εξαρτώνται από το αρχικό marking του δικτύου, ενώ οι δομικές ιδιότητες εξαρτώνται μόνο από την δομή ή την τοπολογία του δικτύου. Οι βασικότερες ιδιότητες συμπεριφοράς, οι οποίες αναλύονται παρακάτω και είναι πιο σημαντικές από πλευράς πρακτικότητας, είναι η προσβασιμότητα (reachability), η περιοριστικότητα (boundedness) και η ασφάλεια (safety), η liveness (ζωντάνια), η αντιστρεψιμότητα (reversibility) και η αρχική κατάσταση (home state). 2.7.1 Προσβασιμότητα (reachability) Δεδομένου ενός αρχικού marking Μ 0 ενός Petri net, το marking Μ είναι προσβάσιμο από το marking Μ 0, εφόσον υπάρχει κάποια 25

ακολουθία πυροδοτήσεων που οδηγεί από το Μ 0 στο Μ. Το σύνολο όλων των πιθανών προσβάσιμων marking από το Μ 0, ονομάζεται σύνολο προσβασιμότητας (reachability set) και συμβολίζεται με R(Μ 0 ). Επίσης, το marking Μ λέγεται ότι είναι άμεσα προσβάσιμο από το Μ, εφόσον η πυροδότηση ενός enabled transition στο marking Μ οδηγήσει στο marking Μ. Το πρόβλημα της προσβασιμότητας σε ένα Petri net σχετίζεται με την διαπίστωση εάν ένα δεδομένο marking m ανήκει στο σύνολο όλων εκείνων των marking που είναι προσβάσιμα από το αρχικό marking Μ 0. Έτσι, ένας σχεδιαστής μπορεί να ελέγξει εάν το σύστημα που μοντελοποίησε θα φτάσει ή όχι σε μια επιθυμητή ή και σε μια ανεπιθύμητη κατάσταση. Με τη χρήση δηλαδή της ιδιότητας της προσβασιμότητας μπορεί να γίνει επαλήθευση μιας καλής σχεδίασης ή και βελτίωση της ήδη υπάρχουσας. 2.7.2 Περιοριστικότητα (Boundedness) και Ασφάλεια (Safety) Σε ένα Petri net με ΡΝ = (P, T, I, O), με αρχικό marking Μ 0 και με σύνολο προσβασιμότητας το R(Μ 0 ), ένα place p P είναι k- περιορισμένο, αν Μ(p) k, για κάθε marking Μ που ανήκει στο R(M 0 ), όπου k είναι ένας θετικός ακέραιος. Δηλαδή ένα place p είναι k- περιορισμένο, αν ο αριθμός των tokens που περιέχει δεν ξεπερνά τον αριθμό k για οποιοδήποτε προσβάσιμο marking Μ από το Μ 0. Το ΡΝ είναι k- περιορισμένο (k-bounded) αν κάθε place p του δικτύου είναι k- περιορισμένο. Η ιδιότητα αυτή μπορεί να εξασφαλίσει ότι ο αριθμός των καταστάσεων που μπορεί να βρεθεί ένα σύστημα είναι πεπερασμένος. Για ένα Petri net που αποτελείται από N places κι είναι k- περιορισμένο, ο αριθμός των καταστάσεών του δεν υπερβαίνει τις (k+1) N. Η ασφάλεια είναι η ειδική περίπτωση της k- 26

περιοριστικότητας, όπου το k είναι ίσο με τη μονάδα. Η επιβεβαίωση της k- περιοριστικότητας σε ένα μοντέλο συστήματος παραγωγής εγγυάται εξάλειψη της περίπτωσης υπέρβασης της χωρητικότητας των πεπερασμένων αποθηκευτικών χώρων του. Η ασφάλεια έχει την επιπλέον έννοια διαθεσιμότητας ενός πόρου κάθε χρονική στιγμή, ειδικά για την περίπτωση κοινών πόρων. Στα συστήματα παραγωγής η έννοια της περιοριστικότητας συσχετίζεται στην πράξη με την έννοια της ευστάθειας. 2.7.3 Liveness (Ζωντάνια) Ένα transition t είναι live αν για ένα οποιοδήποτε marking M R(Μ 0 ), υπάρχει μια ακολουθία πυροδοτήσεων, η οποία συνεπάγεται ένα marking που ενεργοποιεί το t. Με άλλα λόγια, το t είναι live αν για ένα οποιοδήποτε marking M R(Μ 0 ), υπάρχει μια ακολουθία πυροδοτήσεων, η οποία συνεπάγεται ένα marking που συμπεριλαμβάνει το t. Ένα Petri net είναι live αν κάθε transition σε αυτό είναι live, δηλαδή αν κάθε transition μπορεί να πυροδοτήσει, ξεκινώντας από το αρχικό marking Μ 0. Η ιδιότητα liveness συνήθως σχετίζεται με την ανίχνευση πιθανών αδιεξόδων λειτουργίας. 2.7.4 Αντιστρεψιμότητα (Reversibility) και Αρχική Κατάσταση (Home State) Ένα Petri net με PN = (P, T, I, O) και αρχικό marking Μ 0 καλείται αντιστρέψιμο, εάν για κάθε marking Μ R(Μ 0 ), είναι δυνατό να επιστρέψουμε στο Μ 0, δηλαδή όταν το αρχικό marking είναι πάντοτε προσβάσιμο. Το marking M R(Μ 0 ) ονομάζεται αρχική κατάσταση αν για κάθε marking Μ R(Μ 0 ), το M είναι προσβάσιμο από το M. Ουσιαστικά, η αντιστρεψιμότητα αποτελεί ειδική περίπτωση της αρχικής 27

κατάστασης, αφού αν η ισχύει η αρχική κατάσταση Μ = Μ 0, τότε το δίκτυο είναι αντιστρέψιμο. Η απόδειξη της αντιστρεψιμότητας συνεισφέρει στο να ανιχνευτεί εάν ένα σύστημα επιστρέφει πάντα σε μια ασφαλή κατάσταση, από οποιαδήποτε άλλη κατάσταση εάν βρεθεί. Επειδή πολλά συστήματα απαιτείται να επιστρέφουν από μια κατάσταση αποτυχίας στις επερχόμενες σωστές καταστάσεις, η συγκεκριμένη ιδιότητα είναι πολύ σημαντική για την ανάκαμψη από λάθος ενός συστήματος. Επιπλέον, τα συστήματα πραγματικού χρόνου ανήκουν στη γενικότερη κατηγορία που περιλαμβάνει ταυτόχρονα συστήματα. Η αναπαράσταση ενός ταυτόχρονου συστήματος απαιτεί, για να επιτευχθεί ικανοποιητικά, τη συνεχή παρατήρηση των ταυτόχρονων δράσεων, καθώς και της εκτέλεσής τους, πάντα με γνώμονα το εάν μία δράση επηρεάζει μια άλλη. Τέλος, η ιδιότητα εγγυάται την κυκλική συμπεριφορά του συστήματος, κάτι το οποίο απαιτείται για όλα τα επαναληπτικά συστήματα. 2.7.5 Επιμονή (Persistence) Ένα Petri net με PN = (P, T, I, O), ονομάζεται επίμονο αν για δύο οποιαδήποτε ενεργοποιημένα transitions, η πυροδότηση του ενός δεν απενεργοποιεί το άλλο. Όταν ένα transition ενεργοποιείται, παραμένει ενεργοποιημένο μέχρι να πυροδοτήσει. Η ιδιότητα της επιμονής, εάν αυτή ερμηνευτεί αντίστροφα, εάν δηλαδή για οποιαδήποτε δύο ενεργοποιημένα transitions, η πυροδότηση του ενός απενεργοποιεί το άλλο, μπορεί να χρησιμοποιηθεί ώστε να ελεγχθεί ότι διατηρείται ο αμοιβαίος αποκλεισμός για τους διαμοιραζόμενους πόρους ενός συστήματος. 28

2.8 Τεχνικές ανάλυσης των Petri nets Σε ό,τι αφορά τις μεθόδους ανάλυσης που συνοδεύουν τον τυπικό φορμαλισμό των Petri nets, μπορεί να εφαρμοστεί η προσομοίωση (simulation) και η παρατήρηση της δυναμικής συμπεριφοράς του μοντέλου. H εφαρμογή της προσομοίωσης μπορεί να συντελέσει στη μελέτη και στην ανίχνευση εσφαλμένης συμπεριφοράς. Γενικά όμως, ως μέθοδος, η προσομοίωση δεν είναι πάντοτε αποτελεσματική στο να βοηθήσει στην πλήρη επαλήθευση και απόδειξη των ιδιοτήτων ενός συστήματος, είτε πρόκειται για ιδιότητες συμπεριφοράς (δυναμικές ιδιότητες), είτε για ιδιότητες δομής (στατικές ιδιότητες). Αποτελεί όμως αποδοτική λύση όταν παρατηρείται αυξημένη πολυπλοκότητα του χώρου καταστάσεων, δηλαδή μεγάλος αριθμός πιθανών markings του δικτύου. Επιπρόσθετα, έχουν αναπτυχθεί τυπικές τεχνικές, που έχουν ως κύριο στόχο την ανάλυση και επαλήθευση της ορθότητας των προδιαγραφών ενός συστήματος που περιγράφεται με όρους των Petri nets. Οι βασικές αυτές τεχνικές είναι: το reachability tree τα invariants οι τεχνικές της απλοποίησης (reduction) και της σύνθεσης (synthesis) 2.9 Κατηγορίες των Petri nets Η θεωρία των αρχικών απλών Petri nets δε μπορεί να εφαρμοστεί με επιτυχία σε όλα τα είδη συστημάτων. Για το λόγο αυτό, η θεωρία αυτή επεκτάθηκε και δημιουργήθηκαν διάφορες κατηγορίες Petri nets. Έτσι, μπορεί να επιλεγεί, ανάλογα με την ιδιαιτερότητα του συστήματος, η κατάλληλη κατηγορία Petri nets ώστε να προκύψουν τα καλύτερα δυνατά αποτελέσματα. Οι βασικές κατηγορίες Petri nets είναι οι παρακάτω: 29

Continuous Petri nets [24] Timed Petri nets [25] Coloured Petri nets [7, 13, 26-29] Stochastic Petri nets [30, 31] Hybrid Petri Nets [32, 33] 2.10 Εφαρμογές των Petri nets Οι επιστημονικοί τομείς στους οποίους έχουν μέχρι σήμερα χρησιμοποιηθεί τα Petri nets προέρχονται από χώρους με εντελώς διαφορετικά χαρακτηριστικά. Ένας από τους τομείς στον οποίο παρατηρείται μεγάλος αριθμός και ποικιλία εφαρμογών των Petri nets είναι οι ηλεκτρονικοί υπολογιστές και τα συστήματα επεξεργασίας πληροφορίας. Προβλήματα σχετικά με ηλεκτρονικούς υπολογιστές στα οποία χρησιμοποιούνται Petri nets αναφέρονται σε πρωτοκόλλα επικοινωνίας και κατανεμημένα συστήματα, συστήματα πολυμέσων, επεξεργασία δεδομένων, μεταγλωττιστές, τοπικά δίκτυα, ψηφιακά κυκλώματα, υπολογιστικά συστήματα ροής δεδομένων, πληροφοριακά συστήματα γραφείου, ηλεκτρονικές υπηρεσίες και κατανεμημένες ηλεκτρονικές επιχειρήσεις, μοντελοποίηση υλικού (hardware), ψηφιακά φίλτρα, συστήματα μνήμης πολλαπλών επεξεργαστών, αναζήτηση κι επαλήθευση γνώσης, συστήματα πολλαπλών πρακτόρων, τηλεπικοινωνιακά δίκτυα και κέντρα, VLSI, αλγοριθμικά συστατικά, παράλληλα προγράμματα και βάσεις δεδομένων. Τα Petri nets έχουν χρησιμοποιηθεί σε πολλούς ακόμα τομείς, συμπεριλαμβανομένης της μοντελοποίησης κι αξιολόγησης αποδοτικότητας συστημάτων πολλών εξυπηρετητών -πολλαπλών ουρών, μοντελοποίησης και μελέτης συστημάτων παραγωγής, εφοδιαστικών αλυσίδων, χημικών εργοστασίων, ενεργειακών συστημάτων, αυτοματοποίησης εργοστασίων, συστημάτων ελέγχου 30

κυκλοφορίας (εναέριας ή επίγειας), προβλήματα χρονοπρογραμματισμού κι ελέγχου σιδηροδρομικών δικτύων, συστήματα στρατιωτικών εντολών κι ελέγχου, επιλογή συμπεριφοράς πλοήγησης, εφαρμογές ρομποτικού ελέγχου, προσομοίωση πολλαπλών μη επανδρωμένων αεροσκαφών και διαχείριση έργων. Τα τελευταία χρόνια παρατηρείται επέκταση στη χρήση των Petri nets σε εφαρμογές που απέχουν σημαντικά από τις παραδοσιακές εφαρμογές μηχανικών. Τέτοια παραδείγματα περιλαμβάνουν τη μελέτη συμπεριφοράς κι αντίδρασης ομάδων ή ατόμων κάτω από δεδομένες συνθήκες, μοντέλα αποφάσεων, διαδικασιών εξέλιξης και νευρωνικών δικτύων, εφαρμογές προερχόμενες από την εργονομία (π.χ. διάγνωση σφαλμάτων [34]), εφαρμογές στην ιατρική και τη βιοτεχνολογία [35], μοντελοποίηση βιολογικών διαδικασιών (μεταβολικών διαδικασιών) και βιοχημεία, μοντελοποίηση οικολογικών διαδικασιών και περιβαλλοντικών θεμάτων [36]. 31

3. COLOURED PETRI NETS 3.1 Εισαγωγή Τα Coloured Petri Nets (CPN) είναι μια γραφική γλώσσα μοντελοποίησης και αποτελούν μια από τις επεκτάσεις των Petri nets. Είναι κατάλληλα για τη μοντελοποίηση του ταυτοχρονισμού, του συγχρονισμού και της επικοινωνίας στα διάφορα είδη συστημάτων. Η δημιουργία των CPN οδηγήθηκε από την επιθυμία ύπαρξης μιας βιομηχανικής ισχυρής γλώσσας μοντελοποίησης που θα συνδυάζει μια καλή θεωρητική θεμελίωση και αρκετή ευπροσαρμοστικότητα ώστε να μπορεί να χρησιμοποιηθεί στην πράξη για συστήματα μεγέθους και πολυπλοκότητας που βρίσκονται στη βιομηχανία. Για το λόγο αυτό συνδυάστηκε η δύναμη των Petri nets με τη δύναμη των γλωσσών προγραμματισμού και συγκεκριμένα της Standard ML [37, 38]. Τα Petri nets παρέχουν τη βάση για τη περιγραφή του συγχρονισμού των ταυτόχρονων διεργασιών ενώ μια γλώσσα προγραμματισμού παρέχει τη βάση για τον καθορισμό τύπων δεδομένων καθώς και για τον χειρισμό των τιμών αυτών των δεδομένων. Τα CPN έχουν αναπτυχθεί τα τελευταία 30 περίπου χρόνια. Ο δημιουργός τους ήταν η CPN ομάδα στο πανεπιστήμιο Aarhus στη Δανία με επικεφαλή τον Kurt Jensen. Αυτή η ομάδα ανέπτυξε το βασικό μοντέλο συμπεριλαμβανομένης της χρήσης των τύπων δεδομένων και των ιεραρχικών περιορισμών. Επίσης, καθόρισε τις βασικές έννοιες όπως οι δυναμικές ιδιότητες και ανέπτυξε τη θεωρία πίσω από πολλές από τις υπάρχουσες μεθόδους ανάλυσης. Μαζί με τη Meta Software Corporation [39] έχουν διαδραματίσει ένα βασικό ρόλο στην ανάπτυξη υψηλής ποιότητας εργαλείων που υποστηρίζουν τη χρήση των CPN. Για περισσότερες πληροφορίες για την CPN 32

ομάδα και τη δουλειά της, ο αναγνώστης μπορεί να απευθυνθεί εδώ [40]. Δύο υπολογιστικά εργαλεία υποστηρίζουν τα CPN: το CPN Tools και το Design/ CPN. Το Design/CPN αναπτύχθηκε το 1989 [41] και τώρα έχει αντικατασταθεί από το CPN Tools που αποτελεί την εξέλιξη του Design/CPN. Το CPN Tools υποστηρίζει τη δημιουργία των CPN μοντέλων συμπεριλαμβανομένου του συντακτικού ελέγχου, του ελέγχου των τύπων δεδομένων και της προσομοίωσης των CPN μοντέλων. Οι αλλαγές και η προσομοίωση των CPN μοντέλων γίνονται απευθείας στο γραφικό περιβάλλον αναπαράστασης των CPN. 3.2 Ανάπτυξη παραδείγματος χρήσης των CPN Η ενότητα αυτή αποτελεί μια εισαγωγή στη χρήση των CPN. Προκειμένου να αποφευχθεί η συνεχής θεωρητική επεξήγηση εννοιών και όρων που θα κούραζαν τον αναγνώστη, η εισαγωγή θα γίνει παράλληλα με την παράθεση ενός τυπικού παραδείγματος στο οποίο γίνεται η μοντελοποίηση ενός απλού πρωτοκόλλου επικοινωνίας (σχήμα 10). Το παράδειγμα ίσως δε δύναται να καλύψει το ευρύτατο πεδίο εφαρμογών των CΡΝ, αλλά είναι αρκετό για να αναλυθούν οι θεμελιώδεις αρχές και οι απαραίτητοι ορισμοί της γλώσσας μοντελοποίησης των CΡΝ καθώς και οι βασικές ιδέες που κρύβονται πίσω από τις μεθόδους ανάλυσης, όπως είναι η προσομοίωση (simulation) και οι χώροι καταστάσεων (state spaces). Από αρχή μέχρι τέλους του παραδείγματος θα γίνει ανάπτυξη ενός αριθμού από διαμορφωμένα πρωτόκολλα, τα οποία θα χρησιμοποιηθούν για να καλυφθούν οι διαφορετικές μορφές των CΡΝ. Σίγουρα βέβαια δεν απαιτείται η περιγραφή των πρωτοκόλλων να είναι η καταλληλότερη, αλλά είναι εξαιρετικά ενδιαφέρον ότι μπορούν να χρησιμοποιηθούν από οποιονδήποτε που ασχολείται με την έρευνα ακόμα και σε προχωρημένα θέματα. 33

Σε αντίθεση με τις περισσότερες περιγραφικές γλώσσες, τα CPN μπορούν να περιγράψουν ταυτόχρονα καταστάσεις και δράσεις, εξασφαλίζοντας κατ' αυτόν τον τρόπο μια σαφή περιγραφή και των δυο. Αυτό σημαίνει ότι με την μοντελοποίηση αυτή, μπορεί να καθοριστεί ελεύθερα - οποιαδήποτε χρονική στιγμή επιθυμεί ο χρήστης - αν θα εργαστεί με τις καταστάσεις ή με τις δράσεις. Οι καταστάσεις ενός CΡΝ, όπως και στα απλά Petri nets, ονομάζονται places τα οποία σχεδιάζονται σαν ελλείψεις ή κύκλοι. Στο συγκεκριμένο σύστημα πρωτοκόλλου υπάρχουν δέκα διαφορετικά places. Κατά σύμβαση τα ονόματα των places γράφονται μέσα στις ελλείψεις. Τα ονόματα δεν έχουν επίσημη ονομασία, αλλά έχουν μεγάλο πρακτικό ενδιαφέρον για την αναγνωσιμότητα ενός CΡΝ (όπως η χρήση των μνημονικών ονομάτων στον παραδοσιακό προγραμματισμό). Μια αντίστοιχη δήλωση χρησιμοποιείται και για την γραφική απεικόνιση των places όπως για παράδειγμα το πάχος γραμμής, το χρώμα, η γραμματοσειρά, η θέση κτλ. 34

Σχήμα 10. Ένα CPN που περιγράφει το απλό πρωτόκολλο Κάθε place έχει ένα προσαρτημένο type το οποίο καθορίζει το είδος των δεδομένων που μπορεί να περιέχει το place (κατά σύμβαση το όνομα του type γράφεται με πλάγια γράμματα, δίπλα στο place). Στο σύστημα πρωτοκόλλου χρησιμοποιούνται τέσσερα διαφορετικά types. Τα places Send, A και B έχουν τον τύπο ΙΝΤxDΑΤΑ. Αυτός ο τύπος αποτελεί το καρτεσιανό αποτέλεσμα των ΙΝΤegers και των DAΤΑ. Τα στοιχεία των type αναπαριστάνουν τα πακέτα που θα μεταφερθούν στο Νetwork. Κάθε πακέτο αποτελεί ένα ζεύγος, όπου στο πρώτο στοιχείο δηλώνεται ο αριθμός των πακέτων (του type ΙΝΤ), ενώ στο δεύτερο στοιχείο δηλώνονται τα περιεχόμενα δεδομένων όπως για παράδειγμα ένα κείμενο (του type DATA). Κατά τη διάρκεια της εκτέλεσης ενός CΡΝ κάθε place περιέχει έναν αριθμό από tokens. Κάθε ένα από αυτά τα tokens μεταφέρει μια τιμή δεδομένων, η οποία ανήκει στο type που σχετίζεται με το place. 35

Παραδείγματος χάριν, το σχήμα 10 δείχνει ότι το place Send ξεκινάει με τις παρακάτω οκτώ τιμές token, που η καθεμία αναπαριστά το πακέτο το οποίο έχει σειρά να μεταφερθεί στο Νetwork: (1, Modellin ) (2, g and An ) (3, alysis b ) (4, y Means ) (5, of Colou ) (6, red Petr ) (7, i Nets ) (8, ### ). Στο σχήμα 10 υπάρχει ένα 1` μπροστά από κάθε τιμή token, που υποδεικνύει ότι υπάρχει ακριβώς ένα token που φέρει τη συγκεκριμένη τιμή. Γενικά, περισσότερα από ένα token μπορεί να έχουν την ίδια τιμή. Τα tokens αυτά σχηματίζουν ένα πολλαπλό σύνολο (multi-set) από τιμές token, όπως το : 1`(2, g and An ) + 2` (3, alysis b ) + 1` (5, of Colou ) Το παραπάνω πολλαπλό σύνολο αποτελείται από ένα token με τιμή (2, g and An ), δύο tokens με τιμή (3, alysis b ) και ένα token με τιμή (5, of Colou ). Ένα πολλαπλό σύνολο είναι παρόμοιο με ένα σύνολο, στο οποίο μπορεί να υπάρχουν πολλαπλές εμφανίσεις του ίδιου στοιχείου. Αν προστεθεί το στοιχείο (3, alysis b ) στο σύνολο : {(2, g and An ), (3, alysis b ), (5, of Colou )} δεν συμβαίνει τίποτα, γιατί το στοιχείο (3, alysis b ) υπάρχει ήδη στο σύνολο. Αν όμως, προστεθεί το στοιχείο (3, alysis b ) στο πολλαπλό σύνολο : 36

1` (2, g and An ) + 1` (3, alysis b ) + 1` (5, of Colou ) τότε θα είναι ένα πολλαπλό σύνολο με τέσσερα στοιχεία αντί για τρία : 1` (2, g and An ) + 2` (3, alysis b ) + 1` (5, of Colou ). Οι ακέραιοι αριθμοί μπροστά από τον τελεστή ` ονομάζονται συντελεστές (coefficients). Στο παράδειγμα το (2, g and An ) και το (5, of Colou ) έχουν ως συντελεστή τη μονάδα, ενώ το (3, alysis b ) έχει ως συντελεστή το δύο. Όλες οι άλλες τιμές αυτού του τύπου (του τύπου INTxDATA), έχουν ως συντελεστή το μηδέν και για το λόγο αυτό παραλείπονται. Για τα πολλαπλά σύνολα, ορίζονται πράξεις όπως η πρόσθεση (addition), ο πολλαπλασιασμός (scalar multiplication), η σύγκριση (comparison), ο υπολογισμός του μεγέθους ενός πολλαπλού συνόλου (size) και η αφαίρεση (subtraction). Η αφαίρεση δύο πολλαπλών συνόλων m2 m1 ορίζεται, μόνο όταν ισχύει m2 m1 Στο σχήμα 11 απεικονίζονται οι πράξεις μεταξύ πολλαπλών συνόλων που έχουν στοιχεία από το σύνολο {a, b, c, d, e}. 37

Σχήμα 11. Μερικές πράξεις πάνω στα πολλαπλά σύνολα Το place Α αναπαριστά πακέτα που έχουν αποσταλεί στο δίκτυο Network από τον αποστολέα Sender, άλλα δεν έχουν ακόμα μεταδοθεί από το δίκτυο Network. Ανάλογα, το place Β παριστάνει πακέτα που έχουν μεταδοθεί από το δίκτυο Network, αλλά δεν έχουν ακόμα παραληφθεί από τον αποστολέα Receiver. Τα δύο αυτά places έχουν τον ίδιο τύπο με το place Send, και αρχικά δεν περιέχουν κανένα token. Ένα μόνο token στο place Received αναπαριστά τα δεδομένα των πακέτων που έχουν παραληφθεί, αγνοώντας τα περιεχόμενα πακέτων που έχουν ήδη παραληφθεί ή έχουν παραληφθεί με λάθος σειρά. Αρχικά, δεν έχουν παραληφθεί δεδομένα κι έτσι το token του place Received, που είναι τύπου DATA, είναι μια κενή συμβολοσειρά κειμένου. Στο τέλος της μετάδοσης, το place Received θα πρέπει να περιέχει τη συμβολοσειρά κειμένου : Modelling and Analysis by Means of Coloured Petri Nets 38

Τα places C και D είναι παρόμοια με τα places Α και Β, με τη διαφορά ότι αναπαριστούν επιβεβαιώσεις λήψης πακέτων (acknowledgements), που αποστέλλονται από τον Receiver στο Sender. Κάθε επιβεβαίωση λήψης πακέτου φέρει έναν αριθμό και κανένα άλλο δεδομένο. Έτσι, τα places C και D είναι τύπου INT. Τα places NextSend και NextRec παριστάνουν μετρητές, που κρατάνε τον αριθμό του επόμενου πακέτου που είναι να αποσταλεί ή να παραληφθεί. Έχουν τύπο INT και κάθε ένα από αυτά έχουν αρχικά ένα token με τιμή 1. Τα δύο τελευταία places SP και SA έχουν τον τύπο Ten0, ο οποίος περιέχει όλους τους ακέραιους αριθμούς από το μηδέν ως το δέκα. Ο ρόλος των places αυτών θα εξηγηθεί αργότερα. Η κατάσταση ενός CPN ονομάζεται marking και αποτελείται από έναν αριθμό από tokens που είναι κατανεμημένα στα places του δικτύου. Τα tokens που υπάρχουν σε ένα συγκεκριμένο place αποτελούν το marking αυτού του place. Το αρχικό marking κάθε place αναγράφεται υπογεγραμμένο, δίπλα από τo place. Όταν η επιγραφή του αρχικού marking έχει μεγάλο μήκος, μπορεί να παραλειφθεί η υπογράμμιση, όπως έγινε για το place Send στο σχήμα 10. Για ιστορικούς λόγους, κάποιες φορές γίνεται αναφορά στις τιμές που έχουν τα tokens ως χρώματα (colours) και στους τύπους δεδομένων ως σύνολα χρωμάτων (colour sets). Αυτή είναι μια μεταφορική εικόνα, όπου θεωρείται ότι τα tokens σε ένα CPN είναι ευδιάκριτα και ως εκ τούτου χρωματισμένα σε αντίθεση με τα χαμηλού επιπέδου Petri nets που έχουν μαύρα tokens και δεν μπορούν να διακριθούν μεταξύ τους. Οι τύποι ενός CPN μπορεί να είναι σύνθετοι σε αυθαίρετο βαθμό, παραδείγματος χάριν μια εγγραφή (record), όπου το ένα πεδίο (field) είναι ένας πραγματικός αριθμός, το άλλο πεδίο μια συμβολοσειρά κειμένου και το τρίτο πεδίο μια λίστα ακεραίων αριθμών. Έτσι, είναι πιο σωστό να φαντάζεται 39

κάποιος μια συνέχεια χρωμάτων, όπως το χρωματικό φάσμα στη φυσική, αντί για μερικές διακριτές τιμές χρωμάτων, όπως το κόκκινο, το πράσινο και το μπλε. Οι δράσεις σε ένα CPN παριστάνονται, όπως και στα χαμηλού επιπέδου Petri nets μέσω των transitions, που σχεδιάζονται ως ορθογώνια. Στο πρωτόκολλο επικοινωνίας υπάρχουν πέντε διαφορετικά transitions. Σε ένα transition, ένα εισερχόμενο τόξο υποδεικνύει ότι το transition μπορεί να αφαιρέσει tokens από το αντίστοιχο place, ενώ ένα εξερχόμενο τόξο υποδεικνύει ότι μπορεί να προσθέσει tokens στο αντίστοιχο place. Ο ακριβής αριθμός των tokens, καθώς και οι τιμές τους, ορίζονται από τα arc expressions, τα οποία τοποθετούνται δίπλα από τα τόξα. Το transition SendPacket έχει τρία τόξα που το περιβάλλουν, με δύο διαφορετικά arc expressions: (n, p) και n. Δύο από αυτά τα τόξα είναι διπλά. Κάθε διπλό τόξο είναι μια συντομογραφία δύο τόξων με αντίθετη κατεύθυνση και με ίδιο arc expression. Δηλαδή, υπάρχουν στην πραγματικότητα πέντε διαφορετικά τόξα, δύο εισερχόμενα και τρία εξερχόμενα. Τα συγκεκριμένα arc expressions περιέχουν δύο μεταβλητές χωρίς τιμή : τη μεταβλητή n που είναι τύπου INT και τη μεταβλητή p που είναι τύπου DATA. Για να υπάρξει εκτέλεση (occurrence) του transition SendPacket, πρέπει να καταχωρηθεί (bind) στη μεταβλητή n μία τιμή τύπου INT (δηλαδή μία τιμή από το σύνολο των ακεραίων αριθμών) και στη μεταβλητή p μία τιμή τύπου DATA. Αλλιώς δεν μπορούν να υπολογίστουν τα arc expressions (n, p) και n. Έστω ότι καταχωρείται στη μεταβλητή n του transition SendPacket η τιμή 1, ενώ στη μεταβλητή p του ίδιου transition η τιμή Modellin. Αυτό δίνει την καταχώρηση (binding) : < n = 1, p = Modellin > 40