Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει τη γλώσσα { n 3 } (α) H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την επτάδα Q, Σ, Γ, δ,,, όπου 1. Το σύνολο καταστάσεων Q αποτελείται από τις καταστάσεις που εμφανίζονται στο πιο κάτω σχήμα 2. Το αλφάβητο εισόδου Σ είναι το {a, b, c} 3. Το αλφάβητο ταινίας Γ είναι το Σ {Α,Β,C,c,C, } 4. Η συνάρτηση μετάβασης δ είναι όπως απεικονίζεται στο πιο κάτω σχήμα 5. q o Q είναι η εναρκτήρια κατάσταση 6. q acc Q είναι η κατάσταση αποδοχής 7. q rej Q είναι η κατάσταση απόρριψης a a, Δ b b, Δ c c, Δ a a, A b b, A c c, A a a, Δ b b, Δ B B, Δ c c, Δ a A, Δ c, Δ c, Δ c, Δ A A, Δ a A, Δ q 0 c c,a a A, Δ c c, A q acc c c,δ c c,δ B B,Δ B B,Δ A A, Δ a a, A b b, A B B, A C c, Α C c, A b b, Δ B B, Δ b B,Δ Β Β,Δ C C,Δ C C,Δ c C,A c C,A q rej Ότι λείπει C C, A C C, A B B, A Περιγραφή μηχανής: 1. Στην πρώτη φάση, η μηχανή διαγράφει το πρώτο a (το μετατρέπει σε Α) και γράφει 3 c στο τέλος της ταινίας. Με αυτό τον τρόπο μετατρέπει το πρόβλημα στη διάγνωση λέξεων που έχουν τη μορφή, n 3. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2014 Σελίδα 1
2. Επιστρέψει την κεφαλή στην αρχή της ταινίας. 3. Διαγράφει ακόμα ένα a (το μετατρέπει σε Α). 4. Προχωρεί δεξιά μέχρι να βρει το πρώτο c και το μετατρέπει σε c. 5. Επιστρέφει στην αρχή των c και εισέρχεται σε ένα βρόχο κατά τον οποίο διαγράφει ένα c/c (το μετατρέπει σε C/C) και στη συνέχεια ένα b. 6. Όταν διαβαστούν όλα τα c τα επαναφέρει από C/C σε c/c και μετακινείται αριστερά στην ταινία μέχρι να συναντήσει το πρώτο a το οποίο και διαγράφει. 7. Συνεχίζει από το βήμα 3. 8. Αν με αυτό τον τρόπο διαγραφούν όλα τα a, b και c, τότε η μηχανή προχωρεί στην κατάσταση αποδοχής. (β) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing η οποία, με δεδομένο εισόδου μια ακολουθία από n επαναλήψεις του αριθμού 1, n 0, να μετασχηματίζει κατάλληλα το περιεχόμενο της ταινίας έτσι ώστε κατά τον τερματισμό της μηχανής να παραμείνουν στην ταινία n mod 4 επαναλήψεις του αριθμού 1. : (α) H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την επτάδα Q, Σ, Γ, δ,,, όπου 1. Το σύνολο καταστάσεων Q αποτελείται από τις καταστάσεις που εμφανίζονται στο πιο κάτω σχήμα 2. Το αλφάβητο εισόδου Σ είναι το {1} 3. Το αλφάβητο ταινίας Γ είναι το Σ {1, 1, } 4. Η συνάρτηση μετάβασης δ είναι όπως απεικονίζεται στο πιο κάτω σχήμα 5. q o Q είναι η εναρκτήρια κατάσταση 6. q acc Q είναι η κατάσταση αποδοχής 7. q rej Q είναι η κατάσταση απόρριψης q 0 1, A 1,Α 1,Α 1,Α 1, Δ, Δ q acc, Δ, Δ Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2014 Σελίδα 2
Περιγραφή μηχανής: Στην πρώτη φάση, η μηχανή εκτελεί τον κύκλο που βρίσκεται στην ψηλότερη γραμμή μέχρι να συναντήσει το πρώτο κενό. Τότε, σύμφωνα με την κατάσταση στην οποία θα βρεθεί θα αδειάσει την ταινία και θα γράψει 0, 1, 2, ή 3 φορές το σύμβολο 1 ανάλογα με την κατάσταση στην οποία βρίσκεται και θα τερματίσει. Άσκηση 2 Θεωρείστε τη γλώσσα {w 1 w 2 w 1 {0,1} * και w 2 = 0 k 1 m όπου k και m είναι το πλήθος των εμφανίσεων του 0 και 1, αντίστοιχα, στη λέξη w 1 }. Να παρουσιάσετε λεπτομερείς περιγραφές (i) μιας απλής μηχανή Turing και (ii) μιας πολυταινιακής μηχανής Turing που να διαγιγνώσκουν τη γλώσσα και να συγκρίνετε τις δύο μηχανές ως προς τη χρονική τους πολυπλοκότητα. (i) Η πιο κάτω μηχανή Turing λειτουργεί ως εξής. Αν η λέξη εισόδου περιέχει μόνο 0 ή μόνο 1 τότε αποδέχεται μόνο εάν το μήκος της είναι άρτιο. Διαφορετικά, θεωρεί την είσοδο της σε δύο φάσεις. Στην πρώτη φάση για κάθε 1 στην αρχή της ταινίας (πριν από το τελικό μπλοκ από 0), εντοπίζει ένα 1 στο τέλος της ταινίας και το αντικαθιστά με το σύμβολο του κενού. Εάν δεν υπάρχει 1 στο τέλος της ταινίας τότε απορρίπτει. Στη συνέχεια επαναλαμβάνει παρόμοια διαδικασία για τα 0. 1_Tape = Με δεδομένο εισόδου μια λέξη x 1. Αν x = ε, τότε αποδέξου. 2. Αν η λέξη περιέχει μόνο 0 τότε αποδέξου εφόσον το πλήθος των 0 είναι άρτιο. 3. Αν η λέξη περιέχει μόνο 1 τότε αποδέξου εφόσον το πλήθος των 1 είναι άρτιο. 4. Διαφορετικά, σημάδεψε την πρώτη θέση. 5. Όσο υπάρχουν 1 a. Εντόπισε το πρώτο 1 και διάγραψέ το. b. Μετακινήσου στο τέλος της εισόδου. Αν δεν έχεις προσπεράσει κανένα 0 τότε απόρριψε. Διαφορετικά διάβασε το τελευταίο στοιχείο. Αν είναι 1 τότε διάγραψε το στοιχείο και επέστρεψε στην αρχή της ταινίας. Διαφορετικά απόρριψε τη λέξη. 6. Όσο υπάρχουν 0 a. Εντόπισε το πρώτο 0 και διάγραψέ το. b. Μετακινήσουμε στο τέλος της εισόδου. Αν είναι 0 τότε διάγραψε το στοιχείο και επέστρεψε στην αρχή της ταινίας. Διαφορετικά απόρριψε τη λέξη. Η ΤΜ 1_Tape θα κάνει Ο(n) επαναλήψεις του βήματος 5 όπως επίσης και του βήματος 6, όπου n = x. Σε κάθε επανάληψη θα χρειαστεί να διασχίσει τη λέξη. Αφού κάθε διάσχιση απαιτεί Ο(n) βήματα, τα βήματα 5 και 6 απαιτούν χρόνο Ο(n 2 ). Συνεπώς η χρονική πολυπλοκότητας της 1_Tape ανήκει στην τάξη Ο(n 2 ). (ii) Η πιο κάτω διταινιακή μηχανή Turing λειτουργεί παρόμοια με την 1_Tape. Έχοντας όμως στη διάθεσή της και δεύτερη ταινία, μπορεί να συγκρίνει τα δύο τμήματα της λέξης αποφεύγοντας την επαναλαμβανόμενη μετακίνηση μέσα στην ταινία. 2_Tape = Με δεδομένο εισόδου μια λέξη x 1. Αν x = ε, τότε αποδέξου. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2014 Σελίδα 3
2. Αν η λέξη περιέχει μόνο 0 τότε αποδέξου εφόσον το πλήθος των 0 είναι άρτιο. 3. Αν η λέξη περιέχει μόνο 1 τότε αποδέξου εφόσον το πλήθος των 1 είναι άρτιο. 4. Μετακινήσου στο τέλος της ταινίας. 5. Αντέγραψε όλα τα συνεχόμενα τελικά 1 (αν υπάρχουν) στη δεύτερη ταινία και σβήσε τα από την πρώτη ταινία. 6. Αντέγραψε όλα τα συνεχόμενα, τελικά 0 (αν υπάρχουν) στη δεύτερη ταινία και σβήσε τα από την πρώτη ταινία. 7. Επέστρεψε στην αρχή της πρώτης ταινίας. 8. Διάβασε 1 1 τα σύμβολα της πρώτης ταινίας και για κάθε 0 που συναντάς διάγραψέ το από την πρώτη ταινία και αφαίρεσε ένα 0 από τη δεύτερη ταινία. Αν δεν υπάρχουν άλλα 0 τότε απόρριψε. 9. Αν εξακολουθούν να υπάρχουν 0 στη δεύτερη ταινία απόρριψε αν το πλήθος τους είναι περιττό. Αν είναι ζυγό, τότε προχώρησε στο βήμα 8. 10. Επέστρεψε στην αρχή της πρώτης ταινίας. 11. Διάβασε 1 1 τα σύμβολα της πρώτης ταινίας και για κάθε 1 που συναντάς διάγραψέ το από την πρώτη ταινία και αφαίρεσε ένα 1 από τη δεύτερη ταινία. Αν δεν υπάρχουν άλλα 1 τότε απόρριψε. Οι χρόνοι εκτέλεσης των βημάτων έχουν ως εξής: Βήμα 1: Ο(1) Βήμα 2,3,4: Ο(n) Βήματα 5 7: Ο(n) Βήμα 8: Ο(n) Βήμα 9: Ο(n) Βήμα 10: Ο(n) Βήμα 11: Ο(n) Επομένως ο συνολικός χρόνος εκτέλεσης της ΤΜ είναι Ο(n). Άσκηση 3 Μια μηχανή Turing με δυσδιάστατη ταινία, TM ΔΤ, είναι μια επτάδα Μ = (Q, Σ, Γ, δ, q 0, q acc, q rej ) η οποία ορίζεται με παρόμοιο τρόπο με μια συνήθη ΤΜ με τη διαφορά ότι η ταινία της είναι δυσδιάστατη. Συγκεκριμένα, η συνάρτηση μεταβάσεων δ ορίζεται ως δ:q Σ Q Σ {Α,Δ,Π,Κ}, όπου το δ(q, x) = (q, y, i) ερμηνεύεται ως: αν η μηχανή βρίσκεται στην κατάσταση q και η κεφαλή της διαβάζει το σύμβολο x, τότε η μηχανή θα μεταβεί στην κατάσταση q θα γράψει y στη θέση της κεφαλής ενώ η κεφαλή θα κινηθεί σε μια από τις κατευθύνσεις αριστερά (Α), δεξιά, (Δ), πάνω (Π) και κάτω (Κ). Κατά την εκκίνηση της εκτέλεσης της μηχανής, η ταινία βρίσκεται στην ψηλότερη και αριστερότερη θέση και το δεδομένο εισόδου βρίσκεται στην αρχή της ψηλότερης γραμμής όπως φαίνεται στο πιο κάτω σχήμα. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2014 Σελίδα 4
Κεφαλή 2 1 1 (α) Να δείξετε ότι αυτή η παραλλαγή των ΤΜ είναι ισοδύναμη με την αυθεντική ΤΜ. (β) Να προτείνετε παράδειγμα γλώσσας η οποία να διαγιγνώσκεται πιο αποδοτικά από μια ΤΜ ΔΤ από ότι από μια απλή μηχανή Turing. Είναι εύκολο να δούμε ότι κάθε μηχανή Turing μπορεί να τύχει προσομοίωσης από μια μηχανή Turing με δυσδιάστατη ταινία απλά η ισοδύναμη μηχανή δεν θα χρησιμοποιεί τις μετακινήσεις στις κατευθύνσεις Π και Κ. Για την αντίθετη κατεύθυνση, ας υποθέσουμε ότι Μ 2 είναι μια ΜΤ ΔΤ. ΘΑ δείξουμε ότι η λειτουργία της Μ 2 μπορεί να τύχει προσομοίωσης από μια αυθεντική μηχανή Turing Μ 1. Κατ αρχή θα πρέπει να επινοήσουμε μια μέθοδο μέσω της οποίας να αρχικοποιείται η ταινία της μηχανής Μ 1. Για να το πετύχουμε μπορούμε απλά να τοποθετήσουμε τα στοιχεία της δυσδιάστατης ταινίας στην μονοδιάστατη ταινία διαχωρισμένα μεταξύ τους με κάποιο ειδικό σύμβολο, π.χ. #. Στη συνέχεια πρέπει να ορίσουμε τον τρόπο με τον οποίο κάθε δυνατή μετάβαση της ΤΜ Μ 2 μπορεί να προσομοιωθεί από την ΤΜ Μ 1. Ξεχωρίζουμε τις πιο κάτω περιπτώσεις: Η μηχανή δυσδιάστατης ταινίας βρίσκεται στο τέλος μιας γραμμής και εγγράφει ένα στοιχείο στην πρώτη κενή θέση. Σε αυτή την περίπτωση, στη Μ 1 θα πρέπει να μετακινήσουμε όλα τα στοιχεία της ταινία μια θέση δεξιά για να δημιουργηθεί χώρος έτσι ώστε να εγγραφεί το καινούριο στοιχείο. Η μηχανή δυσδιάστατης ταινίας επιθυμεί να μετακινηθεί προς τα κάτω. Τότε στην Μ 1 εκτελούμε τα εξής: Σημαδεύουμε τη θέση στην οποία βρισκόμαστε. Εντοπίζουμε το αμέσως προηγούμενο # το οποίο σηματοδοτεί την αρχή της γραμμής και το αμέσως επόμενο # το οποίο σηματοδοτεί την αρχή της αμέσως επόμενης γραμμής. Κινούμαστε μπρος/πίσω ανάμεσα στις δύο συμβολοσειρές (μετά από το πρώτο # και μετά από το δεύτερο #) μέχρι να εντοπίσουμε το στοιχείο της δεύτερης συμβολοσειράς που βρίσκεται σε αντίστοιχη θέση με το σημαδεμένο στοιχείο. Η μηχανή δυσδιάστατης ταινίας επιθυμεί να μετακινηθεί προς τα πάνω. Τότε στην Μ 1 εκτελούμε τα εξής: Σημαδεύουμε τη θέση στην οποία βρισκόμαστε. Εντοπίζουμε το αμέσως προηγούμενο # το οποίο σηματοδοτεί την αρχή της γραμμής και το προ προηγούμενο # το οποίο σηματοδοτεί την αρχή της προηγούμενης γραμμής. Κινούμαστε μπρος/πίσω ανάμεσα στις δύο συμβολοσειρές (μετά από το πρώτο # και μετά από το προ προηγούμενο #) μέχρι να εντοπίσουμε το στοιχείο της πρώτης συμβολοσειράς που βρίσκεται σε αντίστοιχη θέση με το σημαδεμένο στοιχείο. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2014 Σελίδα 5
Οι υπόλοιπες μεταβάσεις της Μ 2 παραμένουν αναλλοίωτες στην Μ 1. (β) Παράδειγμα γλώσσας που διαγιγνώσκεται πιο εύκολα σε μια ΤΜ ΔΤ από μια αυθεντική ΤΜ είναι η εγγραφή του στοιχείου 0 στη διαγώνιο ενός δυσδιάστατου, τετραγωνικού πίνακα. Άσκηση 4 Δώστε αφ υψηλού περιγραφές μηχανών Turing που να διαγιγνώσκουν τις ακόλουθες γλώσσες. Σε περίπτωση που θα χρησιμοποιήσετε μηχανές από τις διαλέξεις να τις περιγράψετε. (α) { D το D είναι ένα DFA που δεν παράγει καμία λέξη της μορφής 0 k 1 m } (β) { D το D είναι ένα DFA το οποίο αποδέχεται τουλάχιστον μία λέξη η οποία περιέχει περισσότερα 0 από 1 } (γ) { D,k το D είναι ένα DFA το οποίο αποδέχεται ακριβώς k λέξεις } (α) Η πιο κάτω ΤΜ διαγιγνώσκει τη γλώσσα { D το D είναι ένα DFA που δεν παράγει καμία λέξη της μορφής 0 k 1 m } S = Για είσοδο D, όπου το D είναι ένα DFA: 1. Μετατρέπουμε την κανονική έκφραση 0 k 1 m σε ένα ισοδύναμο NFA B. 2. Μετατρέπουμε το Β σε ένα ισοδύναμο DFA C. 3. Δημιουργούμε το αυτόματο, Μ, που αποδέχεται τη γλώσσα L(D) L(C). (Φροντιστήριο 2, Άσκηση 3) 4. Ελέγχουμε αν L(M) = χρησιμοποιώντας τον διαγνώστη Τ (Διαφάνεια 8 10). 5. Αν ο Τ αποδεχθεί τότε αποδεχόμαστε, διαφορετικά απορρίπτουμε. (β) Η πιο κάτω ΤΜ διαγιγνώσκει τη γλώσσα { D το D είναι ένα DFA το οποίο αποδέχεται τουλάχιστον μία λέξη η οποία περιέχει περισσότερα 0 από 1 } S = Για είσοδο D, όπου το D είναι ένα DFA: 1. Δημιουργούμε ένα PDA, P, το οποίο αποδέχεται όλες τις λέξεις οι οποίες περιέχουν περισσότερα 0 από 1. 2. Δημιουργούμε ένα PDA, έστω Β το οποίο αποδέχεται τη γλώσσα L(P) L(D). Συγκεκριμένα, αν Ρ = Q 1, Σ, Γ, δ 1, q 1, F 1 και D = Q 2, Σ, δ 2, q 2, F 2 κατασκευάζουμε το Β = Q, Σ, Γ, δ, q 0, F ως εξής: i. Καταστάσεις του Β, Q, είναι οι καταστάσεις (x,y) όπου x Q 1 και y Q 2 ii. q0 = (q1, q2) iii. Τελικές καταστάσεις του Β, F, είναι οι καταστάσεις (x,y) όπου η x είναι τελική κατάσταση του P και η y τελική κατάσταση του D. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2014 Σελίδα 6
iv. Στο αυτόματο Β η μετάβαση ((x,y ),b ) δ((x,y),a,b) είναι εφικτή εφόσον η μετάβαση (x,b ) δ1(x,a,b) είναι εφικτή στο P και η μετάβαση y = δ2(y,a) είναι εφικτή στο αυτόματο Α 3. Μετατρέπουμε το Β σε μια ισοδύναμη ασυμφραστική γραμματική, έστω H. 4. Εφαρμόζουμε την ΤΜ R, διαφάνεια 8 18 (ΚΕΝΟΤΗΤΑCFG), με δεδομένη τη γραμματική Η. Αν η R αποδεχτεί απορρίπτουμε, διαφορετικά αποδεχόμαστε. (γ) Η πιο κάτω ΤΜ διαγιγνώσκει τη γλώσσα { D,k το D είναι ένα DFA το οποίο αποδέχεται ακριβώς k λέξεις } Το αυτόματο αποδέχεται ακριβώς k λέξεις αν και μόνο αν περιέχει ακριβώς k μονοπάτια από την αρχική κατάσταση σε κάποια τελική κατάσταση. Επομένως για να διαγνώσουμε το πρόβλημα είναι αρκετό να μετρήσουμε το πλήθος των μονοπατιών που υπάρχουν και ικανοποιούν αυτή την προδιαγραφή. S = Για είσοδο D,k όπου D ένα DFA και k ένας ακέραιος: 1. Ξεκίνα από την εναρκτήρια κατάσταση του D. 2. Χρησιμοποίησε μια από τις γνωστές διαδικασίες διάσχισης γράφων για να αποφασίσεις κατά πόσο το αυτόματο περιέχει κύκλο. Αν ναι, τότε απόρριψε. Διαφορετικά, προχώρησε στο Βήμα 3. 3. Υπολόγισε αναδρομικά πόσα μονοπάτια υπάρχουν από κάθε παιδί της εναρκτήριας κατάστασης προς κάποια τελική κατάσταση. 4. Υπολόγισε το άθροισμα των αποτελεσμάτων των αναδρομικών κλήσεων. 5. Αν το άθροισμα αυτό είναι ίσο με k τότε αποδέξου, διαφορετικά απόρριψε. Άσκηση 5 Έστω Α μια γλώσσα επί κάποιου αλφάβητου Σ. Ορίζουμε ως ADD(A) τη γλώσσα που περιέχει όλες τις λέξεις που μπορούν να προκύψουν αν προσθέσουμε ένα οποιοδήποτε σύμβολο του Σ σε κάθε λέξη της Α: ADD(A) = {xzy z Σ και xy A} Να αποδείξετε ότι η κλάση των διαγνώσιμων γλωσσών είναι κλειστή ως προς την πράξη ADD. Ισχύει το ίδιο για την κλάση των αναγνωρίσιμων γλωσσών; Αιτιολογήστε την απάντησή σας. Για να δείξουμε ότι η κλάση των διαγνώσιμων γλωσσών είναι κλειστή ως προς την πράξη ADD πρέπει να δείξουμε ότι αν η Α είναι μια διαγνώσιμη γλώσσα, τότε υπάρχει μέθοδος διάγνωσης της γλώσσας ADD(A). Ας υποθέσουμε ότι η Α είναι μια διαγνώσιμη γλώσσα και Μ μια ΤΜ που τη διαγιγνώσκει. Έστω λέξη w. Θέλουμε να αποφασίσουμε κατά πόσο w ADD(A). Τότε θεωρούμε όλες τις λέξεις w οι οποίες προκύπτουν αν αφαιρέσουμε ένα σύμβολο από τη λέξη w. Τρέχουμε μια μια αυτές τις λέξεις στη μηχανή Μ. Αν η Μ αποδεχτεί τη λέξη τότε αποδεχόμαστε, Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2014 Σελίδα 7
διαφορετικά προχωρούμε στην επόμενη λέξη. Αν η Μ δεν αποδεχτεί καμιά από τις λέξεις τότε απορρίπτουμε. Όσον αφορά στο δεύτερο ερώτημα, μπορούμε να δείξουμε την κλειστότητα της πράξης ADD και στα πλαίσια των αναγνωρίσιμων γλωσσών χρησιμοποιώντας την ίδια μέθοδο με την περίπτωση των διαγνώσιμων γλωσσών με τη διαφορά ότι, για Α αναγνωρίσιμη γλώσσα, τρέχουμε «παράλληλα» (όπως Διαφάνεια 8 54) όλες τις δυνατές λέξεις w έτσι ώστε η μηχανή μας να μην εγκλωβιστεί σε περίπτωση που η εκτέλεση μιας λέξης οδηγεί σε εγκλωβισμό. Έτσι, αν υπάρχει w A μετά από κάποιο αριθμό βημάτων θα το εντοπίσουμε και θα τερματίσουμε με αποδοχή της w, ενώ αν δεν υπάρχει τέτοια λέξη w υπάρχει η δυνατότητα απόρριψης ή εγκλωβισμού. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2014 Σελίδα 8