ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Τελικές εξετάσεις 3 Ιανουαρίου 27 Διάρκεια εξέτασης: 3 ώρες (2:-5:) ΘΕΜΑ ο (2.5) Σχεδιάστε τα ντετερμινιστικά πεπερασμένα αυτόματα και γράψτε τις αντίστοιχες κανονικές εκφράσεις για τις ακόλουθες γλώσσες. Σε όλες τις περιπτώσεις το αλφάβητο είναι το Σ={,}. α) L = {w Κάθε ακολουθεί έναν }. Προσοχή: Με βάση τον ορισμό της L, οι λέξεις της δεν μπορούν να ξεκινούν με. (.25) β) L 2 = {w Το τρίτο από το τέλος ψηφίο της w είναι }. Υπόδειξη: Κατασκευάστε μια κατάσταση για κάθε διαφορετική ακολουθία τριών τελευταίων ψηφίων του αυτομάτου. Η αρχική κατάσταση αντιστοιχεί στην ακολουθία. (.25) Απάντηση α) Α Β L = (+)* β) Στο παρακάτω σχήμα, δίπλα στο όνομα κάθε κατάστασης φαίνεται και η ακολουθία των τριών τελευταίων ψηφίων στην οποία αυτή αντιστοιχεί. Όπως αναμενόταν το αυτόματο έχει 8 καταστάσεις. Η Α Β Γ Δ Ε Ζ Θ L 2 = (+)*(+)(+) 76
ΘΕΜΑ 2 ο (2.5) Προτείνετε μια σχεδίαση για ένα ντετερμινιστικό πεπερασμένο αυτόματο το οποίο να προσομοιώνει τη λειτουργία μιας αυτόματης μηχανής πώλησης εισιτηρίων αστικών λεωφορείων. Η μηχανή εκδίδει εισιτήρια κανονικά και φοιτητικά με κόστος,6 και,3 αντίστοιχα. Η μηχανή μπορεί να δέχεται κέρματα των, 2 και 5 λεπτών. Ως είσοδο της μηχανής θεωρείστε τα διάφορα κέρματα που ρίχνει ο χρήστης και τα κουμπιά που πατάει. Η μηχανή έχει τρία κουμπιά, δύο για κάθε τύπο εισιτηρίου και ένα για ακύρωση της διαδικασίας και επιστροφή των κερμάτων που έριξε ο χρήστης. Κάντε τις εξής παραδοχές: Ο χρήστης δεν μπορεί να ρίξει κέρματα πριν επιλέξει τον τύπο του εισιτηρίου. Αφού επιλέξει τύπο, δεν μπορεί να τον αλλάξει παρά μόνο αν ολοκληρώσει ή ακυρώσει ολόκληρη τη διαδικασία. Η μηχανή δεν δίνει ρέστα. Κάθε φορά που ο χρήστης ρίχνει ένα κέρμα με το οποίο υπερβαίνει το αντίτιμο του εισιτηρίου, αυτό το κέρμα επιστρέφεται αμέσως. Θεωρείστε ότι κάθε κατάσταση χαρακτηρίζεται από εμφάνιση συγκεκριμένων μηνυμάτων στην οθόνη της μηχανής, ενώ κάθε μετάβαση μπορεί να συνοδεύεται από εκτέλεση συγκεκριμένων ενεργειών από την πλευρά της μηχανής, όπως επιστροφή τελευταίου κέρματος, επιστροφή όλων των κερμάτων ή έκδοση εισιτηρίου. α) Δώστε σε έναν πίνακα τις καταστάσεις της μηχανής, δηλαδή ποιες καταστάσεις αυτή έχει (ονομάστε τες όπως θέλετε) και τι εμφανίζεται στην οθόνη της μηχανής σε κάθε κατάσταση. () β) Δώστε τον πίνακα μεταβάσεων της μηχανής, δηλαδή για κάθε συνδυασμό κατάστασης της μηχανής και ενέργειας του χρήστη, ποια ενέργεια εκτελεί η μηχανή (εφόσον εκτελεί κάποια ενέργεια) και σε ποια νέα κατάσταση μεταβαίνει. (.5) Σημείωση: Η μηχανή λειτουργεί ανελλιπώς. Θεωρείστε ότι η αρχική και η τελική κατάστασή της είναι κοινές και είναι η κατάσταση αναμονής έως ότου ο χρήστης επιλέξει τύπο εισιτηρίου. Οι καταστάσεις του αυτομάτου είναι οι εξής: # Κατάσταση Περιγραφή Α Αρχική κατάσταση. Το αυτόματο περιμένει το χρήστη να επιλέξει είδος εισιτηρίου. Στην οθόνη εμφανίζεται σχετικό μήνυμα που ζητά από το χρήστη να πατήσει ένα κουμπί επιλογής τύπου εισιτηρίου. 2 Κ6 Ο χρήστης έχει επιλέξει κανονικό εισιτήριο και απομένει να δώσει 6 λεπτά. Στην οθόνη 3 Κ5 Ο χρήστης έχει επιλέξει κανονικό εισιτήριο και απομένει να δώσει 5 λεπτά. Στην οθόνη 4 Κ4 Ο χρήστης έχει επιλέξει κανονικό εισιτήριο και απομένει να δώσει 4 λεπτά. Στην οθόνη 5 Κ3 Ο χρήστης έχει επιλέξει κανονικό εισιτήριο και απομένει να δώσει 3 λεπτά. Στην οθόνη 6 Κ2 Ο χρήστης έχει επιλέξει κανονικό εισιτήριο και απομένει να δώσει 2 λεπτά. Στην οθόνη 7 Κ Ο χρήστης έχει επιλέξει κανονικό εισιτήριο και απομένει να δώσει λεπτά. Στην οθόνη 8 Φ3 Ο χρήστης έχει επιλέξει φοιτητικό εισιτήριο και απομένει να δώσει 3 λεπτά. Στην οθόνη 9 Φ2 Ο χρήστης έχει επιλέξει φοιτητικό εισιτήριο και απομένει να δώσει 2 λεπτά. Στην οθόνη Φ Ο χρήστης έχει επιλέξει φοιτητικό εισιτήριο και απομένει να δώσει λεπτά. Στην οθόνη Οι δυνατές ενέργειες του χρήστη είναι οι εξής: Κ: Ο χρήστης πατά το κουμπί επιλογής κανονικού εισιτηρίου. Φ: Ο χρήστης πατά το κουμπί επιλογής φοιτητικού εισιτηρίου. C: Ο χρήστης πατά το κουμπί ακύρωσης αγοράς εισιτηρίου. : Ο χρήστης ρίχνει ένα κέρμα των λεπτών. 2: Ο χρήστης ρίχνει ένα κέρμα των 2 λεπτών. 5: Ο χρήστης ρίχνει ένα κέρμα των 5 λεπτών. 77
Στον παρακάτω πίνακα φαίνονται όλες οι δυνατές μεταβάσεις. Σε όσες περιπτώσεις απαιτείται αναφέρεται και η ενέργεια που συνοδεύει τη μετάβαση. Κατάσταση Είσοδος Νέα κατάσταση Ενέργεια μηχανής Α Κ K6 Α Φ Φ3 Α C Α Α Α Επιστροφή κέρματος Α 2 Α Επιστροφή κέρματος Α 5 Α Επιστροφή κέρματος Κ6 Κ Κ6 Κ6 Φ Κ6 Κ6 C Α Κ6 Κ5 Κ6 2 Κ4 Κ6 5 Κ Κ5 Κ Κ5 Κ5 Φ Κ5 Κ5 C Α Επιστροφή κερμάτων Κ5 Κ4 Κ5 2 Κ3 Κ5 5 Α Έκδοση εισιτηρίου Κ4 Κ Κ4 Κ4 Φ Κ4 Κ4 C Α Επιστροφή κερμάτων Κ4 Κ3 Κ4 2 Κ2 Κ4 5 Κ4 Επιστροφή κέρματος Κ3 Κ Κ3Σ Κ3 Φ Κ3 Κ3 C Α Επιστροφή κερμάτων Κ3 Κ2 Κ3 2 Κ Κ3 5 Κ3 Επιστροφή κέρματος Κ2 Κ Κ2 Κ2 Φ Κ2 Κ2 C Α Επιστροφή κερμάτων Κ2 Κ Κ2 2 Α Έκδοση εισιτηρίου Κ2 5 Κ2 Επιστροφή κέρματος Κ Κ Κ Κ Φ Κ Κ C Α Επιστροφή κερμάτων Κ Α Έκδοση εισιτηρίου Κ 2 Κ Επιστροφή κέρματος Κ 5 Κ Επιστροφή κέρματος Φ3 Κ Κ Φ3 Φ Φ Φ3 C Α Φ3 Φ2 Φ3 2 Φ Φ3 5 Φ3 Επιστροφή κέρματος Φ2 Κ Φ2 Φ2 Φ Φ2 Φ2 C Α Επιστροφή κερμάτων Φ2 Φ Φ2 2 Α Έκδοση εισιτηρίου 78
Φ2 5 Φ2 Επιστροφή κέρματος Φ Κ Φ Φ Φ Φ Φ C Α Επιστροφή κερμάτων Φ Α Έκδοση εισιτηρίου Φ 2 Φ Επιστροφή κέρματος Φ 5 Φ Επιστροφή κέρματος ΘΕΜΑ 3 ο Σχεδιάστε μια γραμματική χωρίς συμφραζόμενα για προγράμματα της γλώσσας προγραμματισμού Pascal, η οποία να δημιουργεί σκελετούς προγραμμάτων με δομές τύπου if, for και while. Απάντηση Η γραμματική ορίζεται ως G=(V,Σ,R,P), όπου: V={P,, If-structure, For-structure, While-structure, program, var,, end, for, do, while, if, then, else, ;,.} το σύνολο των συμβόλων, Σ={program, var,, end, for, do, while, if, then, else, ;,.} το σύνολο των τερματικών συμβόλων. R={ P program ; var ; end. If-structure For-structure While-structure ε If-structure if then end else While-structure while do For-structure for do P το αρχικό σύμβολο. 79
ΘΕΜΑ 4 ο (2.5) Χρησιμοποιείστε το θεώρημα άντλησης για γραμματικές χωρίς συμφραζόμενα για να δείξετε ότι η γλώσσα L={ n c n c n n } δεν είναι γλώσσα χωρίς συμφραζόμενα. Αν η L ήταν γλώσσα χωρίς συμφραζόμενα, τότε κάθε επαρκώς μεγάλη λέξη w της παραπάνω γλώσσας θα μπορούσε να σπάσει σε 5 κομμάτια, w=xyzrs, y + r >, έτσι ώστε για οποιοδήποτε αριθμό επαναλήψεων των r και s, η νέα λέξη να ανήκει στη γλώσσα. Έστω λοιπόν ότι έχουμε μια λέξη w= n c n c n =xyzrs με y + r >. Θέλουμε κάθε λέξη της μορφής xy k zr k s, για κάθε k, να ανήκει στην L. Θα αποδείξουμε ότι κάτι τέτοιο είναι αδύνατο. Πράγματι, καταρχήν παρατηρούμε ότι οι υπολέξεις y και r δεν μπορούν να περιέχουν τον χαρακτήρα c. Εάν συνέβαινε κάτι τέτοιο, τότε οι λέξεις xy k zr k s για k> θα περιλάμβαναν περισσότερους από δύο χαρακτήρες c, οπότε δεν θα ανήκαν στην L. Αφού λοιπόν οι υπολέξεις y και r δεν περιλαμβάνουν τον χαρακτήρα c, τότε περιλαμβάνουν μόνο μηδενικά. Τα μηδενικά αυτά όμως ανήκουν σε δύο το πολύ ομάδες από τις τρεις ομάδες μηδενικών της αρχικής λέξης. Άρα, για k> είναι σίγουρο ότι μία από τις τρεις ομάδες μηδενικών της αρχικής λέξης θα έχει λιγότερα μηδενικά από τις άλλες δύο ομάδες μηδενικών, άρα οι νέες λέξεις, για k>, δεν μπορούν ποτέ να ανήκουν στην L. Αποδείχθηκε λοιπόν ότι το θεώρημα άντλησης για γλώσσες χωρίς συμφραζόμενα δεν ισχύει για την L, άρα η L δεν είναι χωρίς συμφραζόμενα. ΘΕΜΑ 5 ο (2.5) Σχεδιάστε μια μηχανή Turing η οποία να υλοποιεί τη συνάρτηση f(w)=w, όπου w λέξεις του αλφαβήτου Σ={,} και w το συμπλήρωμα της λέξης w. Για παράδειγμα, εάν q είναι η αρχική κατάσταση της μηχανής, θα πρέπει να κάνει υπολογισμούς της μορφής: (q,##) (h,##). Η λογική λειτουργίας της μηχανής είναι η εξής: Η μηχανή μετακινεί την κεφαλή συνεχώς προς τα αριστερά, αντικαθιστώντας κάθε με και κάθε με. Μόλις συναντήσει κενό, αρχίζει να μετακινεί την κεφαλή προς τα δεξιά, μέχρι να συναντήσει το κενό από το οποίο ξεκίνησε. Το διάγραμμα μεταβάσεων της μηχανής φαίνεται στο παρακάτω σχήμα: #/L q q #/R /L /L / / q 2 h #/# q 3 /R /R ΑΠΑΝΤΗΣΤΕ 4 ΑΠΟ ΤΑ ΠΑΡΑΠΑΝΩ 5 ΘΕΜΑΤΑ (Ενδεικτικές λύσεις των θεμάτων θα αναρτηθούν μετά την εξέταση στο site του μαθήματος) 8