ΜΕΡΟΣ Α Άσκηση 1 Σειρά Προβλημάτων 3 Ημερομηνία Παράδοσης: 04/04/16 Δύο ιδιότητες φ και ψ είναι ισοδύναμες μεταξύ τους, φ ψ, αν, για κάθε δομή Kripke M, M φ αν και μόνο αν M ψ. Να αποφασίσετε ποια από τα πιο κάτω ζεύγη προτάσεων περιέχουν ισοδύναμες προτάσεις. Αν δύο προτάσεις είναι ισοδύναμες να δώσετε απόδειξη χρησιμοποιώντας τη σημασιολογία, διαφορετικά, να παρουσιάσετε δομή Kripke στην οποία να ικανοποιείται η μία ιδιότητα αλλά όχι η άλλη. i. AG p p AX AG p ii. A [ p U A(q U r) ] A [ p U (q A(q U r)) ] iii. A [ p U A(q U r) ] A [ (A p U q) U r ] Άσκηση 2 Θεωρήστε την ακόλουθη δομή Kripke. {} 1 2 {p,q} {t,r} 3 4 {q,r} Να αποφασίσετε κατά πόσο οι πιο κάτω CTL ιδιότητες ικανοποιούνται από τη δομή. Να εξηγήσετε τις απαντήσεις σας χρησιμοποιώντας τον αλγόριθμο μοντελοελέγχου της CTL. i. AG EF p EF A (q U EX t)) ii. E (t U q) EG AF (t q) Άσκηση 3 Θεωρήστε το πιο κάτω χρονικό αυτόματο. (α) Να αποφασίσετε κατά πόσο το αυτόματο περιέχει κάποιο μονοπάτι με συμπεριφορά Zeno. (β) Να αποφασίσετε κατά πόσο το αυτόματο περιέχει κάποιο μονοπάτι που οδηγεί σε χρονικό αδιέξοδο (κλείδωμα χρόνου/timelock). Σημείωση: Στο αυτόματο ο συμβολισμός reset(x) αντιστοιχεί τον μηδενισμό του ρολογιού x. Σειρά Προβλημάτων 3 Εαρινό Εξάμηνο 2016 Σελίδα 1
Άσκηση 4 Θεωρήστε τα αυτόματα που ακολουθούν: (α) Αυτόματο Τ 1 (β) Αυτόματο Τ 2 (α) Να αποφασίσετε τα πιο κάτω σχετικά με το αυτόματο Τ 1. (ι) Είναι δυνατό το αυτόματο να βρεθεί στην κατάσταση C; (ιι) Κάθε φορά που το αυτόματο θα βρεθεί στην κατάσταση Β το ρολόι x θα έχει τιμή μεγαλύτερη ή ίση του 1; (ιιι) Είναι δυνατό το ρολόι x να πάρει την τιμή 5; (β) Προσθέστε την ετικέτα tick? στην ακμή από το Α στο Β και την ετικέτα tock? στην ακμή από το Β στο Α έτσι ώστε το αυτόματο Τ 1 να μετατραπεί σε ένα αυτόματο Τ 1 και κατασκευάστε την παράλληλη σύνθεση Τ 1 Τ 2. (γ) Απαντήστε τα ερωτήματα από το σκέλος (α) για την παράλληλη σύνθεση Τ 1 Τ 2. Σειρά Προβλημάτων 3 Εαρινό Εξάμηνο 2016 Σελίδα 2
ΜΕΡΟΣ Β Eίστε υπεύθυνος ενός τμήματος σε μια εταιρεία και έχετε υπό την επίβλεψή σας δύο υπαλλήλους. Στο τμήμα σας έχει ανατεθεί ένα σύνολο από εργασίες οι οποίες, όπως έχετε ενημερωθεί, θα πρέπει να διεκπεραιωθούν όσο το δυνατόν γρηγορότερα. Συγκεκριμένα οι εργασίες θα ολοκληρωθούν από τους δύο υπάλληλους του τμήματός σας. Κάθε υπάλληλος μπορεί να εκτελεί το πολύ μια εργασία κάθε χρονική στιγμή και αφού ξεκινήσει να εκτελεί μια εργασία δεν θα διακόψει την εκτέλεσή της μέχρι να την ολοκληρώσει. Στόχος σας είναι να πετύχετε μια ανάθεση των εργασιών στους υπαλλήλους που να ελαχιστοποιεί τον χρόνο ολοκλήρωσης του συνόλου των εργασιών. Ως καλός προϊστάμενος, έχετε παρακολουθήσει αρκετές φορές τους υπαλλήλους σας να εργάζονται και έχετε τη δυνατότητα να πείτε (κατά προσέγγιση) πόσο χρόνο θα σπαταλήσει ο κάθε ένας από αυτούς για τη διεκπεραίωση της κάθε εργασίας που σας έχει δοθεί. Για παράδειγμα, ο πιο κάτω πίνακας δείχνει το χρόνο διεκπεραίωσης σε ώρες για πέντε διαφορετικές εργασίες από τους υπαλλήλους: Εργασία Υπάλληλος Α Υπάλληλος Β A 3 4 B 3 2 Γ 6 5 Δ 3 3 Ε 2 1 Όσον αφορά τις διάφορες εργασίες, γνωρίζετε ότι διαθέτουν αλληλεξαρτήσεις υπό τη μορφή προαπαιτούμενων με την έννοια ότι για να ξεκινήσουν κάποιες εργασίες πρέπει να ολοκληρωθεί ένα σύνολο από προαπαιτούμενες εργασίες. Σε συνέχεια του προηγούμενου παραδείγματος, ο πιο κάτω πίνακας δείχνει ένα παράδειγμα με πιθανά προαπαιτούμενα για τις εργασίες Α Ε. Εργασία Προαπαιτούμενα A B Γ Δ Ε Α, Β Β Δ Δεδομένων των πιο πάνω περιορισμών, υπάρχουν διάφορες αναθέσεις εργασιών στους υπαλλήλους, οι οποίες οδηγούν σε διαφορετικούς χρόνους περάτωσης του συνόλου των εργασιών, όπως για παράδειγμα οι ακόλουθες: Σειρά Προβλημάτων 3 Εαρινό Εξάμηνο 2016 Σελίδα 3
Η πρώτη ανάθεση έχει συνολικό χρόνο διεκπεραίωσης 10 ώρες ενώ η δεύτερη ανάθεση έχει συνολικό χρόνο διεκπεραίωσης 8 ώρες (αποτελεί και τη βέλτιστη λύση του συγκεκριμένου στιγμιότυπου). Δεδομένου ότι αντιμετωπίζετε σε τακτά χρονικά διαστήματα αυτό το πρόβλημα αποφασίσατε να αξιοποιήσετε την εμπειρία σας στο εργαλείο Uppaal, μοντελοποιώντας το πρόβλημα στο εργαλείο αυτό. Συγκεκριμένα, το σύστημα που επιθυμείτε να φτιάξετε θα παίρνει ως είσοδο (α) το σύνολο των εργασιών που πρέπει να υλοποιηθούν, (β) τους χρόνους που (προσεγγιστικά) χρειάζεται κάθε υπάλληλος για να εκτελέσει κάθε εργασία και (γ) το σύνολο των προαπαιτούμενων που έχει η κάθε διεργασία, και θα σας επιτρέπει να υπολογίσετε τον ελάχιστο χρόνο περάτωσης των εργασιών. Για να το πετύχετε, θα πρέπει να υλοποιήσετε δύο τύπους αυτομάτων: (1) αυτόματα που να μοντελοποιούν τις εργασίες και (2) αυτόματα που να μοντελοποιούν τους υπαλλήλους. Τα αυτόματα τύπου εργασία πρέπει να επικοινωνούν με τα αυτόματα τύπου υπάλληλος έτσι ώστε, αν τα προαπαιτούμενα της διεργασίας έχουν ολοκληρωθεί και ο υπάλληλος είναι διαθέσιμος, τότε να δεσμεύεται ο υπάλληλος για εκτέλεση της εργασίας και να αποδεσμεύεται με την πάροδο κατάλληλης ποσότητας χρόνου. Πιο πάνω φαίνεται μια πιθανή υλοποίηση του αυτομάτου υπάλληλος. Το αυτόματο αυτό έχει δύο καταστάσεις. Στην κατάσταση Idle αναμένει να επικοινωνήσει μαζί του ένα αυτόματο τύπου εργασία στο κανάλι use και θα μεταβεί στην κατάσταση InUse όπου θα παραμείνει μέχρι να περάσει η κατάλληλη ποσότητα χρόνου οπόταν θα ενημερώσει την εργασία για την ολοκλήρωσή της μέσω του καναλιού done. Σημειώστε ότι τα κανάλια use και done και η τιμή C αποτελούν παραμέτρους του συγκεκριμένου template και θα πρέπει να πάρουν πραγματικές τιμές ανάλογα με το μοντέλο που θέλουμε να τρέξουμε. Όσον αφορά την υλοποίηση των αυτομάτων τύπου εργασία, προσέξτε ότι θα πρέπει να δηλωθούν με τέτοιο τρόπο έτσι ώστε η κάθε εργασία να μπορεί να επιλέξει μηντετερμινιστικά ανάμεσα στους δύο υπαλλήλους κάτι που θα επιτρέψει τη διερεύνηση όλων των δυνατών αναθέσεων των εργασιών σε υπαλλήλους. Επίσης σημειώστε ότι για να επιτευχθούν οι διάφοροι έλεγχοι είναι δυνατό να χρησιμοποιηθούν καθολικές μεταβλητές. Με την ολοκλήρωση της εργασίας θα πρέπει να παραδώσετε μια αναφορά η οποία θα περιέχει τα ακόλουθα: Σειρά Προβλημάτων 3 Εαρινό Εξάμηνο 2016 Σελίδα 4
1. Τα μοντέλα * του πρωτοκόλλου που έχετε δημιουργήσει στο UPPAAL και την επεξήγησή τους. 2. Τη μεθοδολογία (ερωτήματα) που θα πρέπει να θέσει κάποιος στο εργαλείο για να εντοπίσει τον ελάχιστο χρόνο περάτωσης ενός στιγμιότυπου του προβλήματος. 3. Τον ελάχιστο χρόνος περάτωσης του πιο κάτω στιγμιότυπου: Εργασία Υπάλληλος Α Υπάλληλος Β Αναμένει τον τερματισμό A 1 2 B 4 2 Γ 5 5 Α Δ 2 4 Α, Β Ε 3 7 Β Ζ 7 8 Γ Η 1 1 Γ, Δ Θ 5 2 Ε, Η Ι 3 1 Ε * Τα μοντέλα σας θα πρέπει να είναι επεκτάσιμα, δηλαδή, θα πρέπει να είναι εύκολα προσαρμόσιμα για εφαρμογή σε διαφορετικά (άσχετα με το μέγεθος) στιγμιότυπα του προβλήματος. Λύσεις οι οποίες δεν είναι εύκολα προσαρμόσιμες (δηλαδή προσπαθούν να λύσουν μόνο το συγκεκριμένο στιγμιότυπο) θα έχουν μέγιστη βαθμολογία το 75/100. Σειρά Προβλημάτων 3 Εαρινό Εξάμηνο 2016 Σελίδα 5