Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να διαγιγνώσκει την ακόλουθη γλώσσα. { a n b n+2 c n 2 n 2 } Λύση: H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την επτάδα Q, Σ, Γ, δ,,, όπου 1. Το σύνολο καταστάσεων Q αποτελείται από τις καταστάσεις που εμφανίζονται στο πιο κάτω σχήμα 2. Το αλφάβητο εισόδου Σ είναι το {a, b, c} 3. Το αλφάβητο ταινίας Γ είναι το Σ {Χ,Υ, } 4. Η συνάρτηση μετάβασης δ είναι όπως απεικονίζεται στο πιο κάτω σχήμα 5. q o Q είναι η εναρκτήρια κατάσταση 6. q acc Q είναι η κατάσταση αποδοχής 7. q rej Q είναι η κατάσταση απόρριψης ΥΥ, Δ aa, Δ q 0 ax, Δ ax, Δ by, Δ by, Δ by, Δ by, A a a, A Y Y, A XX, Δ q acc, A YY, Δ YY, A aa, Δ ΥΥ, Δ bb, Δ ΥΥ, Δ ax, Δ by, Δ cy, Α XX, Δ a a, A b b, A Y Y, A Ότι λείπει q rej Περιγραφή μηχανής: Στην πρώτη φάση, η μηχανή διαγράφει 2 a και 4 b. Με αυτό τον τρόπο μετατρέπει το πρόβλημα στη διάγνωση λέξεων που έχουν τη μορφή a n 2 b n 2 c n 2, n 2. Έτσι, και αφού επιστρέψει την κεφαλή στην αρχή της ταινίας, στη δεύτερη φάση, εφόσον υπάρχουν a, η μηχανή διασχίζει την ταινία διαγράφοντας ένα a, ένα b και ένα c. Αν με αυτό τον τρόπο αδειάσει η ταινία τότε η μηχανή προχωρεί στην κατάσταση αποδοχής. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2012 Σελίδα 1
(β) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing που να υπολογίζει την ακόλουθη συνάρτηση. () =, +, = = Κατά την εκκίνηση της εκτέλεσης της μηχανής, η ταινία θα πρέπει να περιέχει τον αριθμό x σε δυαδική μορφή με το σημαντικότερο ψηφίο στην αριστερότερη θέση ενώ, κατά τον τερματισμό, η ταινία θα πρέπει να περιέχει την τιμή f(x) επίσης σε δυαδική μορφή. Λύση: H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την επτάδα Q, Σ, Γ, δ,,, όπου 1. Το σύνολο καταστάσεων Q περιλαμβάνει τις καταστάσεις που εμφανίζονται στο πιο κάτω σχήμα 2. Το αλφάβητο εισόδου Σ είναι το {0,1} 3. Το αλφάβητο ταινίας Γ είναι το Σ {0, 1, } 4. Η συνάρτηση μετάβασης δ είναι όπως απεικονίζεται στο πιο κάτω σχήμα 5. q o Q είναι η εναρκτήρια κατάσταση 6. q acc Q είναι η κατάσταση αποδοχής 7. q rej Q είναι η κατάσταση απόρριψης q 0 00, Δ 11, Δ 00, Δ 11, Δ, A 11, Α 10, Α 00, A 0, Δ 10, Α 11, Δ q acc, A 00, Δ Ότι λείπει q rej Περιγραφή μηχανής: Στην πρώτη φάση, η μηχανή υπογραμμίζει το πρώτο στοιχείο της ταινίας έτσι ώστε να γνωρίζει που βρίσκεται η αρχή της ταινίας. Στη συνέχεια προχωρεί μέχρι το τέλος και ελέγχει: Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2012 Σελίδα 2
Αν το τελευταίο στοιχείο είναι το 0 (οπόταν ο αριθμός είναι άρτιος) αφαιρεί το τελευταίο 0 και με αυτό τον τρόπο παράγει το ½ του δεδομένου που περιέχεται στην ταινία. Αν το τελευταίο 0 τυγχάνει να είναι και το πρώτο ψηφίο της λέξης, τότε δεν κάνει τίποτα (αφού 0/0 = 0). Αν το τελευταίο στοιχείο είναι το 1 (οπόταν ο αριθμός είναι περιττός) τότε για να προσθέσει σε αυτόν την τιμή 1, ξεκινά μια διάσχιση προς τα αριστερά κατά την οποία μετατρέπει κάθε 1 που συναντά σε 0 μέχρι να βρει ένα 0 το οποίο μετατρέπει σε 1. Αν ο αριθμός αποτελείται εξ ολοκλήρου από 1 τότε θα πρέπει να μετατρέψει όλα τα 1, εκτός από το πρώτο, σε 0 και να προσθέσει ακόμη ένα 0 στην πρώτη κενή θέση της ταινίας. Άσκηση 2 Έστω C 1 η κλάση όλων των μηχανών Turing με αλφάβητο εισόδου το σύνολο {a, } και C 2 η κλάση όλων των μηχανών Turing με αλφάβητο εισόδου το σύνολο {a,b, }. Να δείξετε ότι οι δύο κλάσεις είναι ισοδύναμες, δηλαδή, να δείξετε ότι κάθε μηχανή Turing Μ C 1 μπορεί να προσομοιωθεί από μια μηχανή Turing Μ C 2 και αντίστροφα. Λύση Είναι εύκολο να δούμε ότι κάθε μηχανή Turing που ανήκει στην κλάση C 1 μπορεί να τύχει προσομοίωσης από μια μηχανή Turing που ανήκει στην κλάση C 2 απλά η ισοδύναμη μηχανή δεν θα χρησιμοποιεί το επιπλέον σύμβολο b. Για την αντίθετη κατεύθυνση, ας υποθέσουμε ότι Μ 2 είναι μια μηχανή Turing που ανήκει στην κλάση C 2. ΘΑ δείξουμε ότι η λειτουργία της Μ 2 μπορεί να τύχει προσομοίωσης από μια μηχανή Turing Μ 1 που ανήκει στην κλάση C 1. Κατ αρχή θα πρέπει να επινοήσουμε μια μέθοδο μέσω της οποίας να αρχικοποιείται η ταινία της μηχανής Μ 1. Για να το πετύχουμε πρέπει να κατασκευάσουμε μια κωδικοποίηση των συμβόλων {a,b, } στο αλφάβητο {a, } μέσω μιας μονομορφικής και επιμορφικής συνάρτησης. Η συνάρτηση που επιλέγουμε (υπάρχουν και άλλες) είναι η εξής: f(a) = aa f(b) = a f( ) = Με βάση αυτή τη συνάρτηση και δοσμένης μιας ταινίας του Μ 2 παράγουμε την ταινία του Μ 2 εφαρμόζοντας την f σε κάθε σύμβολο της ταινίας. Για παράδειγμα η ταινία aabaabb μεταφράζεται στην ταινία aaaa aaaa a a Στη συνέχεια πρέπει να ορίσουμε πως κάθε δυνατή μετάβαση της ΤΜ Μ 2 μπορεί να προσομοιωθεί από την ΤΜ Μ 1. Η περίπτωση που η μετάβαση βασίζεται στην ύπαρξη ενός a στη θέση κεφαλής της ταινίας, είναι σχετικά απλή. Προσοχή πρέπει να δοθεί για υλοποίηση της μετακίνησης προς τα αριστερά αφού η κεφαλή της ταινίας θα πρέπει να μετακινηθεί στην αρχή της προηγούμενης δυάδας από χαρακτήρες. Συνεπώς, μετά την ολοκλήρωση της εγγραφής Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2012 Σελίδα 3
του όποιου συμβόλου, θα πρέπει η κεφαλή να μετακινηθεί 3 θέσεις προς τα αριστερά. Ακολουθούν οι διαφορετικές μεταβάσεις και η μετάφρασή τους, όπου χρησιμοποιούμε το σύμβολο * για να αναφερθούμε σε οποιοδήποτε από τα a, b και c. Μ 2 Μ 1 a, a a a, aa, b, a a _, aa, _, a a _, a _, a a, A a a, A * *, A a b, a _, a a, A * *, A * *, A _, a a _, a _, A * *, A * *, A Στην περίπτωση που η μετάβαση της Μ 2 αναφέρεται στην ύπαρξη του συμβόλου b (ή του κενού) τότε η μετάφραση είναι κάπως πιο πολύπλοκη αφού, για να εντοπίσουμε την ύπαρξη του a στη δεύτερη ταινία, είναι απαραίτητο να επιβεβαιώσουμε την ύπαρξη και των δύο συμβόλων και a. Με άλλα λόγια αν μετά από το εντοπίσουμε το a τότε προχωρούμε με την υλοποίηση της μετάβασης, αν όμως όχι θα πρέπει να επιστρέψουμε μια θέση στα αριστερά και να εφαρμόσουμε μια άλλη μετάβαση. Το πιο κάτω σχήμα παρουσιάζει τη μετάφραση της b a, A : M 2 M 1, Δ ba, A aa, Α, A, A q 1 q 2 q 1 q 2, Α Οι υπόλοιπες μεταβάσεις μπορούν να μεταφραστούν με παρόμοιο τρόπο και αφήνονται ως άσκηση στον αναγνώστη. Άσκηση 3 Θεωρείστε τη γλώσσα {ww w {a, b, c} * }. Να παρουσιάσετε λεπτομερείς περιγραφές (i) μιας απλής μηχανή Turing και (ii) μιας μηχανής Turing με 2 ταινίες που να διαγιγνώσκουν τη γλώσσα και να συγκρίνετε τις δύο μηχανές ως προς τη χρονική τους πολυπλοκότητα. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2012 Σελίδα 4
Λύση (i) Η πιο κάτω μηχανή Turing θεωρεί όλα τα δυνατά σπασίματα του δεδομένου εισόδου της και ελέγχει κατά πόσο ένα από αυτά αναφέρεται σε όμοιες λέξεις. Κατά τον έλεγχο, διαγράψει σύμβολα στο πρώτο κομμάτι (δηλαδή, αντικαθιστά κάθε a από a, κάθε b από b, και κάθε c από c) και υπογραμμίζει σύμβολα στο δεύτερο κομμάτι (δηλαδή, αντικαθιστά κάθε a από a, κάθε b από b, και κάθε c από c). Αν εντοπίσει ένα τέτοιο σπάσιμο τότε αποδέχεται, διαφορετικά απορρίπτει. 1_Tape = Με δεδομένο εισόδου μια λέξη x 1. Αν x = ε, τότε αποδέξου. 2. Για κάθε k, 1 k < x a. Διάβασε το σύμβολο στη θέση που βρίσκεσαι. Αν το σύμβολο ανήκει στο σύνολο {a, b, c} τότε πήγαινε στο Βήμα 2d. Διαφορετικά, διάγραψε το σύμβολο που διάβασες, b. Μετακινήσουμε δεξιά κατά k θέσεις. c. Αν το σύμβολο στην κεφαλή της ταινίας είναι το ίδιο με το σύμβολο που διάβασες στο Βήμα 2a. υπογράμμισέ το και προχώρα μέχρι το πρώτο γράμμα που βρίσκεται δεξιά από κάποιο διαγραμμένο γράμμα. Αν το σύμβολο είναι διαφορετικό, τότε επανάφερε τα γράμματα στην αρχική τους μορφή και επανάλαβε το Βήμα 2 για την επόμενη τιμή του k. d. Προχώρα δεξιά. Αν όλα τα σύμβολα είναι υπογραμμισμένα τότε αποδέξου, αλλιώς επανάφερε τα γράμματα στην αρχική τους μορφή και επανάλαβε το Βήμα 2 για την επόμενη τιμή του k. 3. Αφού εξάντλησες όλα τα δυνατά σπασίματα χωρίς να αποδεχτείς, απόρριψε τη λέξη. Η ΤΜ 1_Tape θα κάνει Ο(n) επαναλήψεις του βήματος 2, όπου n = x (υπάρχουν Ο(n) δυνατά σπασίματα της λέξης). Σε κάθε επανάληψη θα χρειαστεί να διασχίσει τη λέξη Ο(n) φορές, διαγράφοντας κάθε φορά δύο σύμβολα. Αφού κάθε διάσχιση απαιτεί Ο(n) βήματα, κάθε επανάληψη του βήματος 2 απαιτεί χρόνο Ο(n 2 ). Συνεπώς η χρονική πολυπλοκότητας της 1_Tape ανήκει στην τάξη Ο(n 3 ). (ii) Η πιο κάτω διταινιακή μηχανή Turing λειτουργεί παρόμοια με την 1_Tape. Έχοντας όμως στη διάθεσή της και δεύτερη ταινία, μπορεί να συγκρίνει τα δύο τμήματα που προκύπτουν από το σπάσιμο που έχει επιλεχθεί αποφεύγοντας την επαναλαμβανόμενη μετακίνηση μέσα στην ταινία. 2_Tape = Με δεδομένο εισόδου μια λέξη x 1. Αν x = ε, τότε αποδέξου. 2. Για κάθε k, 1 k < x a. Διάβασε τα πρώτα k σύμβολα και, καθώς τα διαβάζεις, αντίγραψέ τα στη δεύτερη ταινία. Μετακινήσου στην αρχή της δεύτερης ταινίας. b. Διάβασε 1 1 τα επόμενα σύμβολα της πρώτης ταινίας και σύγκρινέ τα με τα στοιχεία της δεύτερης ταινίας μέχρι μια από τις δύο ταινίες να εξαντληθεί. Αν το επόμενο σύμβολο της πρώτης ταινίας είναι το ίδιο με το επόμενο σύμβολο της δεύτερης ταινίας, τότε προχώρησε στο επόμενο σύμβολο. Αν το σύμβολο της πρώτης ταινίας διαφέρει από το πρώτο σύμβολο της δεύτερης ταινίας, τότε επανάλαβε το Βήμα 2 για την επόμενη τιμή του k. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2012 Σελίδα 5
c. Αν τα σύμβολα και των δύο ταινιών έχουν εξαντληθεί τότε αποδέξου,. Αν μια από τις δύο ταινίες εξακολουθεί να περιέχει σύμβολα τότε επανάλαβε το Βήμα 2 για την επόμενη τιμή του k. 3. Αφού εξάντλησες όλα τα δυνατά σπασίματα χωρίς να αποδεχτείς, απόρριψε τη λέξη. Η ΤΜ 2_Tape (όπως και η ΤΜ 1_Tape) θα κάνει Ο(n) επαναλήψεις του βήματος 2, όπου n = x. Σε κάθε επανάληψη θα χρειαστεί να διασχίσει τη λέξη 1 φορά. Αφού η διάσχιση απαιτεί Ο(n) βήματα, κάθε επανάληψη του βήματος 2 απαιτεί χρόνο Ο(n). Συνεπώς η χρονική πολυπλοκότητας της 2_Tape ανήκει στην τάξη Ο(n 2 ). Άσκηση 4 Δώστε αφ υψηλού περιγραφές μηχανών Turing που να διαγιγνώσκουν τις ακόλουθες γλώσσες. Σε περίπτωση που θα χρησιμοποιήσετε μηχανές από τις διαλέξεις να τις περιγράψετε. (α) { G η G είναι μια ασυμφραστική γραμματική που παράγει την λέξη ε } (β) { D,R το D είναι ένα DFA, η R είναι μια κανονική έκφραση, και L(D) = L(R) } (γ) { R 1,R 2 οι R 1, R 2 είναι δύο κανονικές εκφράσεις, και L(R 1 ) L(R 2 ) } Λύση (α) Η πιο κάτω ΤΜ αναγνωρίζει τη γλώσσα { G η G είναι μια ασυμφραστική γραμματική που παράγει την λέξη ε } S = Για είσοδο G, όπου G μια CFG: 1. Μετατρέπουμε τη G σε μια ισοδύναμη γραμματική σε κανονική μορφή Chomsky. 2. Αν η ισοδύναμη αυτή γραμματική περιέχει τον κανόνα S ε τότε αποδεχόμαστε, αλλιώς απορρίπτουμε. (β) Η πιο κάτω ΤΜ αναγνωρίζει τη γλώσσα { D,R το D είναι ένα DFA, η R είναι μια κανονική έκφραση, και L(D) = L(R) } S = Για είσοδο D,R, όπου το D είναι ένα DFA και η R είναι μια κανονική έκφραση: 1. Μετατρέπουμε την R σε ένα ισοδύναμο NFA B. 2. Μετατρέπουμε το Β σε ένα ισοδύναμο DFA C. 3. Εφαρμόζουμε την ΤΜ F, διαφάνεια 8 12, με δεδομένα τα DFA D και C. Αν το αυτόματο αποδεχτεί αποδεχόμαστε, διαφορετικά απορρίπτουμε. (γ) Η πιο κάτω ΤΜ αναγνωρίζει τη γλώσσα { R 1,R 2 οι R 1, R 2 είναι δύο κανονικές εκφράσεις, και L(R 1 ) L(R 2 ) } S = Για είσοδο R 1,R 2 όπου οι R 1, R 2 είναι δύο κανονικές εκφράσεις,: 1. Μετατρέπουμε την R 1 σε ένα ισοδύναμο NFA Α 2. Μετατρέπουμε την R 2 σε ένα ισοδύναμο NFA Β. 3. Κατασκευάζουμε το DFA αυτόματο που δέχεται τη γλώσσα L(A) (), έστω C. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2012 Σελίδα 6
4. Εφαρμόζουμε την ΤΜ T, διαφάνεια 8 10, με δεδομένο το C για να ελέγξουμε κατά πόσο το C αποδέχεται την κενή γλώσσα. Αν το αυτόματο αποδεχτεί αποδεχόμαστε, διαφορετικά απορρίπτουμε. Άσκηση 5 Για κάθε μια από τις πιο κάτω γλώσσες, να αποφασίσετε κατά πόσο είναι διαγνώσιμη, αναγνωρίσιμη, συμπληρωματικά αναγνωρίσιμη, ή κανένα από τα πιο πάνω, αιτιολογώντας τις απαντήσεις σας. (α) { G 1,G 2 οι G 1 και G 2 είναι ασυμφραστικές γλώσσες και L(G 1 ) = L(G 2 ) } (β) { Μ η Μ είναι μια μηχανή Turing και L(M) μια κανονική γλώσσα } Λύση (α) Όπως έχουμε αναφέρει, η γλώσσα { G 1,G 2 οι G 1 και G 2 είναι ασυμφραστικές γλώσσες και L(G 1 ) = L(G 2 ) } είναι μη διαγνώσιμη. Είναι όμως συμπληρωματικά αναγνωρίσιμη. Με άλλα λόγια, μπορούμε να δείξουμε ότι το συμπλήρωμα της γλώσσας, δηλαδή η γλώσσα Α = { G 1,G 2 οι G 1 και G 2 είναι ασυμφραστικές γλώσσες και L(G 1 ) L(G 2 ) } είναι αναγνωρίσιμη. Για να το πετύχουμε, πρέπει να κατασκευάσουμε μια ΤΜ Μ, τέτοια ώστε για κάθε G 1,G 2 όπου L(G 1 ) L(G 2 ) η Μ να αποδέχεται ενώ για κάθε G 1,G 2 όπου L(G 1 ) =L(G 2 ) η Μ να απορρίπτει ή να εγκλωβίζεται. Κατασκευή: Η ζητούμενη μηχανή Μ μπορεί να οριστεί ως εξής: Μ = Για κάθε είσοδο G 1,G 2 όπου οι G 1 και G 2 είναι ασυμφραστικές γλώσσες 1. Για κάθε w Σ * και ξεκινώντας από τις μικρότερες προς τις μεγαλύτερες λέξεις: i. Εφάρμοσε την ΤΜ S (Διαφάνεια 8 16) για να ελέγξεις αν η G 1 αποδέχεται την w ii. Εφάρμοσε την ΤΜ S (Διαφάνεια 8 16) για να ελέγξεις αν η G 2 αποδέχεται την w iii. Αν ακριβώς μια από τις δύο μηχανές αποδέχεται τη w τότε αποδέξου, διαφορετικά επανέλαβε τον βρόχο για την επόμενη λέξη w. Η πιο πάνω μηχανή, δοκιμάζει μια προς μία όλες τις δυνατές λέξεις. Αν εντοπίσει κάποια λέξη η οποία είναι αποδεκτή από τη μια γραμματική και όχι από την άλλη, τότε αποδέχεται. Ορθότητα: Αν L(G 1 ) L(G 2 ) τότε υπάρχει λέξη x η οποία ανήκει στη μια γλώσσα και όχι στην άλλη. H μηχανή Μ, μετά από πεπερασμένο αριθμό βημάτων, θα αναλύσει τη δυνατότητα παραγωγής της x από τις δύο γραμματικές και θα εντοπίσει ότι η λέξη αυτή παράγεται μόνο από την μια εκ των δύο και θα αποδεχτεί. Επομένως, η Μ αναγνωρίζει τη γλώσσα Α. Παρατηρούμε ότι η γλώσσα { G 1,G 2 οι G 1 και G 2 είναι ασυμφραστικές γλώσσες και L(G 1 ) = L(G 2 ) } Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2012 Σελίδα 7
αν και συμπληρωματικά αναγνωρίσιμη δεν μπορεί να είναι και αναγνωρίσιμη. Αν ήταν αναγνωρίσιμη τότε, βάσει του θεωρήματος της Διαφάνειας 8 52, η γλώσσα θα ήταν διαγνώσιμη κάτι που γνωρίζουμε ότι δεν ισχύει. (β) ΚΑΝΟΝΙΚΟTHΤΑ ΤΜ { Μ η Μ είναι μια μηχανή Turing και L(M) μια κανονική γλώσσα } Η γλώσσα αυτή δεν είναι διαγνώσιμη (για απόδειξη, δες Θεώρημα 5.3, βιβλίο Sipser, σελίδα 222). Επίσης μπορούμε να δείξουμε ότι η γλώσσα δεν είναι ούτε αναγνωρίσιμη ούτε συμπληρωματικά αναγνωρίσιμη μέσω αναγωγής από την γνωστή μη αναγνωρίσιμη γλώσσα. Για να αποδείξουμε ότι η γλώσσα ΙΣΟΔΥΝΑΜΙΑ ΤΜ δεν είναι ούτε αναγνωρίσιμη ούτε συμπληρωματικά αναγνωρίσιμη πρέπει να δείξουμε τα πιο κάτω. 1. Η μη αναγνωρισιμότητα της ΚΑΝΟΝΙΚΟΤΗΤΑ ΤΜ δείχνεται μέσω της αναγωγής Α ΤΜ. 2. Η μη αναγνωρισιμότητα της ΚΑΝΟΝΙΚΟΤΗΤΑ δείχνεται μέσω της αναγωγής Α ΤΜ Η δεύτερη αναγωγή δείχνεται στην απόδειξη του Θεωρήματος 5.3 στο βιβλίο. Η πρώτη αναγωγή μπορεί να δειχθεί με παρόμοιο τρόπο θεωρώντας όμως μια μη κανονική γλώσσα, π.χ. την 0 n 1 n 0 n. Λύσεις Σειράς Προβλημάτων 4 Εαρινό Εξάμηνο 2012 Σελίδα 8