ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητα Ενδιάμεση Εξέταση Ημερομηνία : Κυριακή, 15 Μαρτίου 2015 Διάρκεια : 15.00 17.00 Διδάσκουσα : Άννα Φιλίππου Ονοματεπώνυμο: Αριθμός Ταυτότητας: Οδηγίες: Να διαβάσετε προσεχτικά και να απαντήσετε σε όλες τις ερωτήσεις. Να γράψετε τις απαντήσεις σας (καθαρά) στον χώρο που σας δίνεται στο εξεταστικό δοκίμιο. Αν χρειάζεστε επιπρόσθετο χώρο μπορείτε να χρησιμοποιήσετε τις τελευταίες σελίδες του δοκιμίου. Σε τέτοια περίπτωση δηλώστε καθαρά το σημείο στο οποίο βρίσκεται η συνέχεια της άσκησης. Αν βρεθείτε σε αδιέξοδο εξηγήστε τι προσπαθείτε να κάνετε ώστε, ενδεχομένως, να κερδίσετε κάποιες μονάδες. Ο πιο κάτω πίνακας δηλώνει την κατανομή των μονάδων στα θέματα. Το πλήθος των μονάδων δεν αποτελεί μέτρο δυσκολίας: είναι δυνατό δυσκολότερο πρόβλημα να αποφέρει λιγότερες μονάδες. Καλή Επιτυχία! Πρόβλημα Μονάδες Βαθμός 1 30 2 20 3 14 4 26 5 10 Σύνολο 100
Πρόβλημα 1 [30 μονάδες] Να βάλετε σε κύκλο τη σωστή απάντηση στις πιο κάτω ερωτήσεις πολλαπλής επιλογής. 1. Ποια είναι η γλώσσα που αναγνωρίζεται από το αυτόματο που ακολουθεί; a q q 1 a q 2 q 3 a 4 a, α. { w {a,} * η λέξη w δεν τελειώνει σε a } β. { w {a,} * μετά από κάθε a στη w υπάρχουν 2 συνεχόμενα } γ. { w {a,} * η λέξη w δεν περιέχει το aa } δ. Καμία από τις πιο πάνω 2. Ποια από τις πιο κάτω γλώσσες δεν είναι κανονική; α. { w w {0,1} * και το τρίτο στοιχείο από το τέλος είναι 0 } β. { w1w rev w (10) * } γ. { a k k mod 2 = 0 } δ. Καμιά από τις πιο πάνω 3. Θεωρήστε το πιο κάτω DFA: a q 1 a q q 3 2 a a q 4 q 5 a Ποια από τις πιο κάτω κανονικές εκφράσεις περιγράφει τη γλώσσα του αυτομάτου. α. [a (a ) * a] [ (a ) * ] a β. a ( * a * ) * (a * * ) * γ. (a * * ) * δ. (a + + a + ) * ( + a + + ) * a
4. Θεωρήστε το μη ντετερμινιστικό αυτόματο (Q, Σ, δ, q 0, F) με Q = {q 0, q 1, q 2, q 3 }, Σ = {a,}, F={q 1 }, και συνάρτηση μεταβάσεων δ όπως ορίζεται στον πίνακα που ακολουθεί: Ποια από τις πιο κάτω λέξεις δεν είναι αποδεκτή από το αυτόματο; α. aa β. a γ. aa δ. aa δ a ε q 0 {q 1 } {q 2 } {q 1 } q 1 {q 3 } q 2 {q 3 } q 3 {q 1,q 3 } {q 2 } 5. Έστω κανονικές γλώσσες L 1 και L 2. Ποια από τις πιο κάτω προτάσεις είναι ψευδής; α. Υπάρχει DFA που αναγνωρίζει τη γλώσσα L 1 L rev 1. β. Υπάρχει ασυμφραστική γραμματική που αναγνωρίζει τη γλώσσα L 1 L 2. γ. Κάθε PDA που αναγνωρίζει τη γλώσσα L 1 αναγνωρίζει και τη γλώσσα L 2. δ. Η γλώσσα L 1 L 1 L 1 L 2 L 2 L 2 είναι απαραίτητα κανονική. 6. Θεωρήστε την πιο κάτω ασυμφραστική γραμματική με εναρκτήρια μεταβλητή S. S SSS S S a Ποιο από τα πιο κάτω σύνολα περιγράφει τη γλώσσα που παράγει η γραμματική; α. { w {a,} * η λέξη w περιέχει τουλάχιστον ένα a } β. { w {a,} * η λέξη w έχει περιττό μήκος } γ. { w {a,} * η λέξη w περιέχει περιττό αριθμό από a } δ. Κανένα από τα πιο πάνω 7. Θεωρήστε την ασυμφραστική γλώσσα L 1 = { w {a,,c} * το πλήθος των a είναι διάφορο από το πλήθος των }. Ποια από τις πιο κάτω επιλογές αποτελεί ασυμφραστική γλώσσα τέτοια ώστε η γλώσσα L 1 L 2 να μην είναι ασυμφραστική. α. L 2 = { a k k c 2k k 0, m 0 } β. L 2 = { a k m c k k 0, m 0 } γ. L 2 = { a k 2k c 2k k 0, m 0 } δ. Καμιά από τις πιο πάνω
8. Θέλουμε να δείξουμε ότι η γλώσσα { w {a,,c} * το πλήθος των a είναι ίσο με το πλήθος των και αυστηρά μικρότερο από το πλήθος των c } δεν είναι ασυμφραστική χρησιμοποιώντας το Λήμμα της Άντλησης για Ασυμφραστικές Γλώσσες. Ποια από τις πιο κάτω λέξεις θα ήταν κατάλληλη επιλογή για να χρησιμοποιηθεί ως η λέξη που θα μας οδηγήσει στην επιδιωκόμενη αντίφαση; α. (acc) p β. a p p c 2p γ. a p p c p+1 δ. a p p 9. H γλώσσα (a * * * a * ) * a : α. Δεν αναγνωρίζει καμιά λέξη. β. Αναγνωρίζει τη λέξη aa a. γ. Αναγνωρίζει τη λέξη aaa. δ. Αναγνωρίζει τη λέξη ε. 10. Θεωρήστε την πιο κάτω ασυμφραστική γραμματική με εναρκτήρια μεταβλητή S. S SSS S S a Ποιο από τα πιο κάτω ισχύει για τη γραμματική; α. Η γραμματική είναι μονότροπη. β. Η γραμματική είναι πολύτροπη αφού παράγει τη λέξη aaa μέσω δύο διαφορετικών συντακτικών δέντρων. γ. Η γραμματική είναι πολύτροπη αφού παράγει τη λέξη a μέσω δύο διαφορετικών συντακτικών δέντρων. δ. Η γραμματική είναι πολύτροπη αφού παράγει τη λέξη aa μέσω δύο διαφορετικών συντακτικών δέντρων.
Πρόβλημα 2 [20 μονάδες] Θεωρήστε το μη ντετερμινιστικό αυτόματο (Q, Σ, δ, q 1, F) με σύνολο καταστάσεων το Q = {q 0, q 1, q 2, q 3 }, αλφάβητο το Σ = {a,}, σύνολο τελικών καταστάσεων το F = {q 3 }, και συνάρτηση μεταβάσεων δ όπως ορίζεται στον πίνακα που ακολουθεί: δ a ε q 1 {q 3 } {q 2 } q 2 {q 1 } {q 4 } q 3 {q 2 } {q 3 } q 4 {q 2 } (α) [5 μονάδες] Να παρουσιάσετε το αυτόματο γραφικά μέσω ενός διαγράμματος μεταβάσεων και να δείξετε ότι το αυτόματο αποδέχεται τη λέξη aaaa παρουσιάζοντας τη σχετική ακολουθία καταστάσεων που οδηγεί σε αποδοχή.
(β) [10 μονάδες] Να μετατρέψετε το NFA αυτόματο από το μέρος (α) σε ένα ισοδύναμο ντετερμινιστικό αυτόματο χρησιμοποιώντας την κατασκευή που μελετήσαμε στο μάθημα. (γ) [5 μονάδες] Να μετατρέψετε το αυτόματο που κατασκευάσατε στο μέρος (β) σε ένα καινούριο αυτόματο που να αποδέχεται τη σώρευση της γλώσσας του αυτομάτου από το μέρος (β).
Πρόβλημα 3 [14 μονάδες] Να μετατρέψετε την πιο κάτω γραμματική σε Κανονική Μορφή Chomsky παρουσιάζοντας όλα τα στάδια της εργασίας σας. S P Ta acp TPS T R RR R Rc ε
Πρόβλημα 4 [26 μονάδες] Θεωρήστε τη γλώσσα L = { 1 n #1 m #1 m+n n 0, m+n πολλαπλάσιο του 3 και m > 0 }. Για παράδειγμα 11#1111#111111 L, #111#111 L αλλά #11#11 L και 111##111 L. (α) [13 μονάδες] Να αποδείξετε ότι η γλώσσα L δεν είναι κανονική.
(β) [13 μονάδες] Να αποδείξετε ότι η γλώσσα L είναι ασυμφραστική επιδεικνύοντας ένα αυτόματο στοίβας που να την παράγει. Να εξηγήσετε τη λειτουργία του αυτομάτου σας άτυπα αλλά με σαφήνεια.
Πρόβλημα 5 [10 μονάδες] Έστω δύο λέξεις w 1 και w 2. H λέξη w 1 ονομάζεται τραύλισμα της λέξης w 2 αν η w 1 επαναλαμβάνει κάθε σύμβολο της w 2 μία ή περισσότερες φορές. Για παράδειγμα, οι λέξεις 110, 11000 και 1000 αποτελούν τραυλίσματα της λέξης 10. Με βάση αυτή τη σχέση, δοσμένης μιας γλώσσας Λ ορίζουμε Τραύλισμα(Λ) = {w η λέξη w αποτελεί τραύλισμα μιας λέξης v όπου v Λ} (α) [3 μονάδες] Έστω η κανονική έκφραση Χ = (10) * 01. Δώστε κανονική έκφραση η οποία να περιγράφει τη γλώσσα που περιέχει όλες τις λέξεις επί του αλφάβητου {0,1} * οι οποίες αποτελούν τραυλίσματα των λέξεων που περιγράφει η Χ. (β) [3 μονάδες] Θεωρήστε το πιο κάτω αυτόματο: 0 1 1 q 0 0 q Έστω Λ η γλώσσα του αυτομάτου. Κατασκευάστε ένα καινούριο αυτόματο το οποίο να αποδέχεται τη γλώσσα Τραύλισμα(Λ).
(γ) [4 μονάδες] Γενικεύστε τις παρατηρήσεις σας από τα σκέλη (α) και (β) για να επιχειρηματολογήσετε ότι η κλάση των κανονικών γλωσσών είναι κλειστή ως προς την πράξη Τραύλισμα.
ΕΠΙΠΡΟΣΘΕΤΟΣ ΧΩΡΟΣ