Άσκηση 1 Σειρά Προβλημάτων 4 Λύσεις (α) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία να διαγιγνώσκει τη γλώσσα {w 1w 2 w 1 {0,1} * και w 2 = 0 k 1 m όπου k και m είναι το πλήθος των εμφανίσεων του 0 και 1, αντίστοιχα, στη λέξη w 1}. (β) Να διατυπώσετε την τυπική περιγραφή μιας μηχανής Turing (αυθεντικός ορισμός) η οποία με δεδομένο εισόδου στην ταινία της μια λέξη επί του αλφάβητου {a,b} να αφαιρεί τις συνεχόμενες επαναλήψεις στοιχείων. Για παράδειγμα, με δεδομένο εισόδου τη λέξη aaabbaaaaabba στο τέλος της εκτέλεσης της μηχανής να παραμείνει στην ταινία η λέξη ababa. Και στις δύο πιο πάνω περιπτώσεις να παρουσιάσετε το αλφάβητο εισόδου και το αλφάβητο ταινίας της μηχανής σας καθώς και το σύστημα μεταβάσεών της, γραφικά, και να εξηγήσετε σύντομα τη λειτουργία της. (α) H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την επτάδα Q, Σ, Γ, δ,,, όπου 1. Το σύνολο καταστάσεων Q αποτελείται από τις καταστάσεις που εμφανίζονται στο πιο κάτω σχήμα 2. Το αλφάβητο εισόδου Σ είναι το {0,1} 3. Το αλφάβητο ταινίας Γ είναι το Σ {0, 1, 0, 1, x, x, w, } 4. Η συνάρτηση μετάβασης δ είναι όπως απεικονίζεται στο πιο κάτω σχήμα 5. q 1 Q είναι η εναρκτήρια κατάσταση 6. q acc Q είναι η κατάσταση αποδοχής 7. q rej Q είναι η κατάσταση απόρριψης Η περιγραφή της ζητούμενης ΤΜ έχει ως εξής: M = Με δεδομένο w: 1. Αν w = ε, τότε αποδέξου τη λέξη. 2. Διαφορετικά, σημάδεψε το πρώτο στοιχείο και προσπέρασε τα όποια 0 μέχρι να βρεις το πρώτο 1 το οποίο να μετατρέψεις σε x (ή x αν είναι το πρώτο στοιχείο της λέξης). Αν δεν υπάρχουν 1, τότε προχώρησε στο Βήμα 4 (μετάβαση q 2 q 6). 3. Προχώρησε δεξιά μέχρι να βρεις το τελευταίο 1. Μετάτρεψέ το σε w και επέστρεψε στην αρχή της ταινίας. Συνέχισε από το Βήμα 2. 4. Προχώρησε δεξιά μέχρι να βρεις το πρώτο 0. Αν δεν βρεις κάποιο 0 και η ταινία περιέχει μόνο x και w τότε αποδέξου τη λέξη. 5. Προχώρησε δεξιά μέχρι να βρεις το πρώτο 0. Διάγραψε το 0 (μετατρέποντάς το σε x ή x αν είναι το πρώτο στοιχείο της λέξης), και προχώρησε δεξιά για να βρεις το τελευταίο 0 (το οποίο, υπό κανονικές συνθήκες, βρίσκεται μια θέση αριστερά από το πρώτο w που θα συναντήσουμε). Μετάτρεψε το 0 σε w. 6. Επέστρεψε στην αρχή της ταινίας και συνέχισε από το Βήμα 4. Λύσεις Σειράς Προβλημάτων 4 Χειμερινό Εξάμηνο 2018 Σελίδα 1
Μετατρέπουμε την πιο πάνω περιγραφή σε μια τυπική περιγραφή ως εξής: 0,x Δ 0,x Δ 1,0,x Δ 1,0,x Α 0 0, A 1 x,δ, w Α 1 1, A 1 x,δ 1 w, A q 1 q 2 q 3 q 4 q 5, w Α 0,x Α 0,x A x,x,w Δ q 6 q 7 0 x,δ 0 x,δ 0,x Δ 0,x Α q 8 Α w A 0 w, A q 9 q 10 x Δ, Δ Ότι λείπει, Δ qacc q rej (β) H ζητούμενη μηχανή Turing μπορεί να διατυπωθεί ως την επτάδα Q, Σ, Γ, δ,,, όπου 1. Το σύνολο καταστάσεων Q αποτελείται από τις καταστάσεις που εμφανίζονται στο πιο κάτω σχήμα 2. Το αλφάβητο εισόδου Σ είναι το {a,b} 3. Το αλφάβητο ταινίας Γ είναι το Σ {a,b,x,a,b, } 4. Η συνάρτηση μετάβασης δ είναι όπως απεικονίζεται στο πιο κάτω σχήμα 5. q 0 = 0 Q είναι η εναρκτήρια κατάσταση 6. q acc Q είναι η κατάσταση αποδοχής 7. q rej Q είναι η κατάσταση απόρριψης Περιγραφή μηχανής: 1. Ξεκινώντας η μηχανή υπογραμμίζει το πρώτο σύμβολο, αν υπάρχει, για να αναγνωρίζει την αρχή της ταινίας. Στη συνέχεια διασχίζει την ταινία και διαγράφει όλες τις επαναλήψεις των a και των b. (Για παράδειγμα, αν το περιεχόμενο της ταινίας ήταν aaabbaaababaaa, τότε η μηχανή θα το μετατρέψει σε axxbxaxxbabaxx). 2. Στη συνέχεια επανέρχεται στην αρχή της ταινίας όπου ο στόχος είναι να μεταφέρει όλα τα μη διαγραμμένα στοιχεία σε συνεχόμενες θέσεις στην αρχή της ταινίας. 3. Διαβάζοντας τα στοιχεία από αριστερά προς δεξιά, εντοπίζει το πρώτο σύμβολο μετά από την πρώτη ακολουθία από x, το μετατρέπει σε x, και το μεταφέρει στην πρώτη θέση με x. Αν δεν υπάρχουν x στην ταινία αποδέχεται τη λέξη. Επαναλαμβάνει την ίδια διαδικασία μέχρι που να μην υπάρχουν άλλα σύμβολα a και b μετά από κάποιο x. 4. Σε αυτή την περίπτωση, επιστρέφει προς τα πίσω, μετατρέποντας όλα τα x σε σύμβολα διαστήματος και τερματίζει με αποδοχή της λέξης. Λύσεις Σειράς Προβλημάτων 4 Χειμερινό Εξάμηνο 2018 Σελίδα 2
a x,δ 8 0 a a, Α b b,a 1 b Δ 2 a Δ a,b,x A a,b Δ x Δ a,b Δ x Δ 4 5 6 A a,b Δ 7 x A 3 A 9 a,b Δ x Α b x,δ a,b A 11 10 A qacc x,a Ότι λείπει q rej Άσκηση 2 Να παρουσιάσετε λεπτομερείς περιγραφές (i) μιας απλής μηχανή Turing και (ii) μιας πολυταινιακής μηχανής Turing οι οποίες να διαγιγνώσκουν τη γλώσσα { n 2 } Να συγκρίνετε τις δύο μηχανές ως προς την χρονική τους πολυπλοκότητα. (i) Περιγραφή μηχανής: 1_Tape = Με δεδομένο εισόδου μια λέξη x 1. Αν η λέξη περιέχει λιγότερα από 4 a απόρριψε. 2. Σημάδεψε και διάγραψε τα επόμενα δύο a, ένα b και ένα c. 3. Επέστρεψε στην αρχή της ταινίας και διέγραψε τα επόμενα δύο a, ένα b και ένα c χωρίς να σημαδέψεις τα a. Επανέλαβε το βήμα μέχρι να μην υπάρχουν άλλα a. Αν υπάρχει μόνο ένα a ή κάποιο από τα b, c, εξαντληθεί, τότε απόρριψε τη λέξη. 4. Επανάφερε τα a, χωρίς όμως να αφαιρέσεις τα σημάδια. 5. Εφόσον υπάρχουν a που δεν είναι σημαδεμένα, σημάδεψε και διάγραψε τα επόμενα δύο a και ένα b. Αν υπάρχει μόνο ένα a ή τα b εξαντληθούν, τότε απόρριψε τη λέξη. Επέστρεψε στην αρχή της ταινίας και διέγραψε τα επόμενα δύο a και ένα b χωρίς όμως αυτή τη φορά να σημαδέψεις τα a. Επανέλαβε μέχρι να μην υπάρχουν άλλα a. 6. Επανάφερε τα a, χωρίς όμως να αφαιρέσεις τα σημάδια. Επανάλαβε από το Βήμα 5. Αν δεν υπάρχουν άλλα μη σημαδεμένα a τότε επέστρεψε στην αρχή της ταινίας. Λύσεις Σειράς Προβλημάτων 4 Χειμερινό Εξάμηνο 2018 Σελίδα 3
7. Διάσχισε την ταινία και αν όλα τα στοιχεία είναι διαγραμμένα τότε αποδέξου, διαφορετικά απόρριψε. Η ΤΜ 1_Tape θα χρειαστεί Ο(n 2 ) χρόνο για το Βήμα 2, Ο(n 3 ) χρόνο για το Βήμα 5, αφού στη χείριστη περίπτωση θα γίνουν n επαναλήψεις κάθε μια από τις οποίες θα χρειαστεί χρόνο Ο(n 2 ). Επομένως, η χρονική πολυπλοκότητας της 1_Tape ανήκει στην τάξη Ο(n 3 ). (ii) Η πιο κάτω τριταινιακή μηχανή Turing λειτουργεί παρόμοια με την 1_Tape. Έχοντας όμως στη διάθεσή της τρεις ταινίες, αντιγράφει τα b από την πρώτη ταινία στη δεύτερη ταινία, τα c στην τρίτη ταινία και μετά ελέγχει αν το πλήθος τους ικανοποιεί τις προδιαγραφές της γλώσσας. 2_Tape = Με δεδομένο εισόδου μια λέξη x: 1. Διάσχισε τη λέξη και (1) επιβεβαίωσε ότι το πλήθος των a είναι μεγαλύτερο από 4, (2) επιβεβαίωσε ότι η ταινία περιέχει a ακολουθούμενα από b ακολουθούμενα από c, και (3) αντίγραψε τα b στη δεύτερη ταινία και τα c στην τρίτη ταινία. 2. Επέστρεψε στην αρχή και των τριών ταινιών. 3. Διάσχισε τις ταινίες προχωρώντας δύο βήματα στην πρώτη ταινία για κάθε ένα στην τρίτη ταινία. Αν τα στοιχεία στην πρώτη και τρίτη ταινία εξαντληθούν ταυτόχρονα, αυτό σημαίνει ότι τα a είναι διπλάσια από τα c και προχώρα στο Βήμα 4. Διαφορετικά απόρριψε. 4. Σημάδεψε ένα στοιχείο στην τρίτη ταινία. Διάσχισε τις ταινίες διαγράφοντας ένα στοιχείο στη δεύτερη και ένα στοιχείο στην τρίτη ταινία. Αν η δεύτερη ταινία εξαντληθεί πριν από τη δεύτερη τότε απόρριψε. Διαφορετικά, επέστρεψε στην αρχή της τρίτης ταινίας αφού επαναφέρεις όλα τα c με εξαίρεση τα σημάδια που έχεις τοποθετήσει. 5. Εφόσον υπάρχουν c που δεν είναι σημαδεμένα, επανέλαβε το Βήμα 4. Διαφορετικά, αν όλα τα στοιχεία της δεύτερης ταινίας έχουν εξαντληθεί τότε αποδέξου, διαφορετικά απόρριψε. Η ΤΜ 2_Tape θα χρειαστεί Ο(n) χρόνο για τα Βήματα 1 3, ενώ για τα Βήματα 4 5 θα κάνει n επαναλήψεις κάθε μια από τις οποίες θα χρειαστεί χρόνο αυτή τη φορά της τάξης Ο(n). Επομένως, η χρονική πολυπλοκότητα της 2_Tape ανήκει στην τάξη Ο(n 2 ). Άσκηση 3 Δώστε αφ υψηλού περιγραφές μηχανών Turing που να διαγιγνώσκουν τις ακόλουθες γλώσσες. Σε περίπτωση που θα χρησιμοποιήσετε μηχανές από τις διαλέξεις να τις περιγράψετε. (α) { Ν το Ν είναι ένα ΝFA το οποίο αποδέχεται μόνο λέξεις πεπερασμένου μήκους } S = Για είσοδο Ν όπου Ν ένα NFA: 1. Μετατρέπουμε το Ν σε ισοδύναμο ντετερμινιστικό αυτόματο D. 2. Χρησιμοποιούμε έναν από τους γνωστούς αλγόριθμους διάσχισης γράφων για να αποφασίσουμε κατά πόσο το D περιέχει κάποιο κύκλο από κατάσταση του οποίου είναι εφικτή η μετάβαση σε κάποια τελική κατάσταση του αυτομάτου. 3. Αν ναι τότε απορρίπτουμε διαφορετικά αποδεχόμαστε. Λύσεις Σειράς Προβλημάτων 4 Χειμερινό Εξάμηνο 2018 Σελίδα 4
(β) { P το P είναι ένα PDA για το οποίο ισχύει ότι η γλώσσα L(P) είναι άπειρη } Για τη διάγνωση της γλώσσας βασιζόμαστε στην παρατήρηση ότι η γλώσσα μιας γραμματικής είναι μη πεπερασμένη, αν παράγει έστω και μια λέξη με μήκος τουλάχιστον b n+1 όπου n ο αριθμός των μεταβλητών της, και b ο μέγιστος αριθμός συμβόλων που υπάρχει στο δεξί σκέλος οποιουδήποτε κανόνα. Αυτό οφείλεται στα πιο κάτω: Η γραμματική παράγει μια λέξη μήκους τουλάχιστον b n+1 αν και μόνο αν το συντακτικό δένδρο της λέξης έχει ύψος τουλάχιστον n+1 αν και μόνο αν το συντακτικό δένδρο της λέξης περιέχει μονοπάτι με τουλάχιστον n+1 εσωτερικούς κόμβους αν και μόνο αν το συντακτικό δένδρο της λέξης περιέχει μονοπάτι με επανάληψη κάποιας μεταβλητής αν και μόνο αν η γραμματική παράγει μη πεπερασμένο αριθμό λέξεων. Επομένως για να αποφασίσουμε κατά πόσο ένα PDA P έχει μη πεπερασμένη γλώσσα, δημιουργούμε ένα DFA Μ το οποίο αποδέχεται όλες τις λέξεις με μήκος μέχρι b n+1 (αυτή η γλώσσα είναι κανονική αφού είναι πεπερασμένη) και στη συνέχεια φτιάχνουμε ένα PDA που αποδέχεται όλες τις λέξεις του P εκτός από τις λέξεις του M. Αν η γλώσσα του αυτομάτου που θα προκύψει είναι μη κενή, τότε το Ρ αποδέχεται λέξεις με μήκος μεγαλύτερο από b n+1 και επομένως η γλώσσα του είναι άπειρη. Ο αλγόριθμος που προκύπτει έχει ως εξής: S = Για είσοδο P, όπου το P είναι ένα PDA: 1. Δημιουργούμε ένα DFA, έστω Μ, το οποίο αποδέχεται τη γλώσσα που περιέχει όλες τις λέξεις με μήκος μέχρι b n+1. 2. Στη συνέχεια φτιάχνουμε ένα PDA το οποίο αναγνωρίζει όλες τις λέξεις που αποδέχεται το Ρ και όχι το Μ. Συγκεκριμένα, αν Ρ = Q 1, Σ, Γ, δ 1, q 1, F 1 και Μ = Q 2, Σ, δ 2, q 2, F 2 κατασκευάζουμε το G = Q, Σ, Γ, δ, q 0, F ως εξής: i. Καταστάσεις του G, είναι οι καταστάσεις (x,y) όπου x Q 1 και y Q 2 ii. q0 = (q1, q2) iii. Τελικές καταστάσεις του G, είναι οι καταστάσεις (x,y) όπου η x είναι τελική κατάσταση του P και η y δεν είναι τελική κατάσταση του M. iv. Στο αυτόματο G η μετάβαση ((x,y ),b ) δ((x,y),a,b) είναι εφικτή εφόσον η μετάβαση (x,b ) δ 1(x,a,b) είναι εφικτή στο P και η μετάβαση y = δ 2(y,a) είναι εφικτή στο αυτόματο M. 3. Μετατρέπουμε το G σε μια ισοδύναμη ασυμφραστική γραμματική, έστω H. 4. Εφαρμόζουμε την ΤΜ R, διαφάνεια 8 18 (ΚΕΝΟΤΗΤΑCFG), με δεδομένη τη γραμματική Η. Αν η R απορρίψει αποδεχόμαστε, διαφορετικά απορρίπτουμε. (γ) { Μ το Μ είναι ένα DFA που αποδέχεται κάποια λέξη στην οποία το πλήθος των 1 είναι μεγαλύτερο από το πλήθος των 0 } Λύσεις Σειράς Προβλημάτων 4 Χειμερινό Εξάμηνο 2018 Σελίδα 5
Η γλώσσα, έστω Λ, που περιέχει όλες τις λέξεις στις οποίες το πλήθος των 1 είναι μεγαλύτερο από το πλήθος των 0, είναι ασυμφραστική. Στόχος του πιο κάτω αλγόριθμου/μηχανής Τuring, είναι να ελέγξει κατά πόσο η τομή της γλώσσας Λ με τη γλώσσα L=(M) είναι μη κενή. Αν και η κλάση των ασυμφραστικών γλωσσών δεν είναι κλειστή ως προς την πράξη της τομής, η τομή μιας ασυμφραστικής γλώσσας και μιας κανονικής γλώσσας μπορεί να αναγνωριστεί μέσω αυτόματου PDA που προκύπτει από τον συνδυασμό του αυτομάτου DFA και του αυτομάτου PDA που αναγνωρίζουν τις δύο γλώσσες, όπως φαίνεται πιο κάτω. S = Για είσοδο Μ, όπου το Μ είναι ένα DFA: 1. Δημιουργούμε ένα PDA, έστω Ρ, το οποίο αποδέχεται τη γλώσσα που περιέχει όλες τις λέξεις στις οποίες το πλήθος των 1 είναι μεγαλύτερο από το πλήθος των 0. 2. Στη συνέχεια φτιάχνουμε ένα PDA το οποίο αναγνωρίζει την τομή των γλωσσών των Μ και Ρ. Συγκεκριμένα, αν Ρ = Q 1, Σ, Γ, δ 1, q 1, F 1 και < = Q 2, Σ, δ 2, q 2, F 2 κατασκευάζουμε το G = Q, Σ, Γ, δ, q 0, F ως εξής: i. Καταστάσεις του G, είναι οι καταστάσεις (x,y) όπου x Q 1 και y Q 2 ii. q0 = (q1, q2) iii. Τελικές καταστάσεις του G, είναι οι καταστάσεις (x,y) όπου η x είναι τελική κατάσταση του P και η y είναι τελική κατάσταση του M. iv. Στο αυτόματο G η μετάβαση ((x,y ),b ) δ((x,y),a,b) είναι εφικτή εφόσον η μετάβαση (x,b ) δ 1(x,a,b) είναι εφικτή στο P και η μετάβαση y = δ 2(y,a) είναι εφικτή στο αυτόματο M. 3. Μετατρέπουμε το G σε μια ισοδύναμη ασυμφραστική γραμματική, έστω H. 4. Εφαρμόζουμε την ΤΜ R, διαφάνεια 8 18 (ΚΕΝΟΤΗΤΑCFG), με δεδομένη τη γραμματική Η. Αν η R απορρίψει αποδεχόμαστε, διαφορετικά απορρίπτουμε. Άσκηση 4 Μια μηχανή Turing με δύο κεφαλές, 2HTM, είναι μια επτάδα Μ = (Q, Σ, Γ, δ, q 0, q acc, q rej) η οποία ορίζεται με παρόμοιο τρόπο με μια συνήθη ΤΜ με τη διαφορά ότι αντί μίας έχει δύο κεφαλές και οι κινήσεις της εξαρτώνται από τα σύμβολα που δείχνονται από κάθε μια από τις κεφαλές αυτές. Συγκεκριμένα, η συνάρτηση μεταβάσεων δ ορίζεται ως δ:q Σ 2 Q Σ 2 {Α,Δ} 2, όπου το δ(q, x, y) = (q, x, y, K 1, K 2) ερμηνεύεται ως: αν η μηχανή βρίσκεται στην κατάσταση q, η πρώτη κεφαλή διαβάζει το σύμβολο x και η δεύτερη κεφαλή διαβάζει το σύμβολο y, τότε η μηχανή θα μεταβεί στην κατάσταση q θα γράψει x στην θέση της πρώτης κεφαλής, y στη θέση της δεύτερης κεφαλής ενώ οι δύο κεφαλές θα κινηθούν στις κατευθύνσεις K 1 και K 2, αντίστοιχα (Κ 1, Κ 2 {Α,Δ}). Θεωρήστε ότι στην αρχική κατάσταση μας 2ΗΤΜ και οι δύο κεφαλές δείχνουν στην πρώτη θέση της ταινίας. (α) Να δείξετε ότι αυτή η παραλλαγή των ΤΜ είναι ισοδύναμη με την αυθεντική ΤΜ. (β) Να προτείνετε παράδειγμα γλώσσας η οποία να διαγιγνώσκεται πιο αποδοτικά από μια 2ΗΤΜ από ότι από μια απλή μηχανή Turing. Λύσεις Σειράς Προβλημάτων 4 Χειμερινό Εξάμηνο 2018 Σελίδα 6
Είναι εύκολο να δούμε ότι κάθε αυθεντική μηχανή Turing μπορεί να τύχει προσομοίωσης από μια μηχανή Turing με δύο κεφαλές απλά η ισοδύναμη μηχανή δεν θα χρησιμοποιεί τη δεύτερή της κεφαλή. Για την αντίθετη κατεύθυνση, ας υποθέσουμε ότι Μ είναι μια μηχανή Turing με δύο κεφαλές. Θα δείξουμε ότι η λειτουργία της Μ μπορεί να τύχει προσομοίωσης από μια αυθεντική μηχανή Turing Μ. Κατ αρχή θα πρέπει να επινοήσουμε μια μέθοδο μέσω της οποίας να αρχικοποιείται η ταινία της μηχανής Μ. Αυτό μπορεί να επιτευχθεί ως εξής: Αν η αρχική φάση της ταινίας της Μ έχει τη μορφή (όπου Κ 1 και Κ 2 οι δύο κεφαλές) Κ 1aabaΚ 2abb τότε ξεκινούμε τη μηχανή Μ στη φάση Κ#a 1 abaa 2 bb (όπου Κ η κεφαλή της Μ ). Με άλλα λόγια χρησιμοποιούμε τους υπερδείκτες 1 και 2 για να σημειώσουμε τις θέσεις των δύο κεφαλών. Αν σε κάποια στιγμή οι δύο κεφαλές δείχνουν στην ίδια θέση τότε το στοιχείο που βρίσκεται σε αυτή τη θέση θα φέρει και τους δύο υπερδείκτες, π.χ. Κ#aab 12 aabb Στη συνέχεια πρέπει να ορίσουμε πως κάθε δυνατή μετάβαση της ΤΜ Μ μπορεί να προσομοιωθεί από την ΤΜ Μ. Συγκεκριμένα, ας υποθέσουμε ότι βρισκόμαστε στην κατάσταση q από όπου στην ΤΜ Μ υπάρχει η μετάβαση δ(q, x, y) = (q, x, y, K 1, K 2). Τότε στην καινούρια μηχανή θα εκτελέσουμε την πιο κάτω συμπεριφορά. 1. Εντόπισε την πρώτη κεφαλή. Αν εκεί υπάρχει το στοιχείο x τότε προχώρησε στο επόμενο βήμα, διαφορετικά δοκίμασε να εφαρμόσεις κάποια άλλη μετάβαση που αναφέρεται στην κατάσταση q. 2. Εντόπισε τη δεύτερη κεφαλή (αν χρειαστεί, μετακινήσου στην αρχή της ταινίας και ξεκίνα από εκεί το ψάξιμο). Αν εκεί υπάρχει το στοιχείο y τότε μετάτρεψέ το σε y και μετακίνησε την κεφαλή στην κατεύθυνση Κ 2. Επέστρεψε στην αρχή της ταινίας και εντόπισε την πρώτη κεφαλή, αντικατάστησε το στοιχείο της με το στοιχείο x και μετακίνησε την κεφαλή στην κατεύθυνση Κ 1. 3. Μετακίνησε την ΤΜ Μ στην κατάσταση q. (β) Ένα πρόβλημα που μπορεί να διαγνωστεί ευκολότερα σε μια 2ΤΜ από μια αυθεντική ΤΜ είναι το πρόβλημα στο οποίο με δεδομένο εισόδου w στην ταινίας μιας ΤΜ επιθυμούμε να γράψουμε στην ταινία τη λέξη ww (αφού μετακινήσουμε τη δεύτερη κεφαλή στην πρώτη κενή θέση της ταινίας και έχοντας σημειώσει το τέλος της λέξης w, αντιγράφουμε ένα προς ένα τα σύμβολα της w). Άσκηση 5 Θεωρήστε το αλφάβητο Σ και δύο γλώσσες L 1 και L 2 επί του αλφάβητου Σ. Ορίζουμε ως Merge(L 1, L 2) την πιο κάτω γλώσσα επί του αλφάβητου Σ: Merge(L 1, L 2) = { w w = u 1v 1u 2v 2 u nv n όπου u = u 1 u n L 1 και v = v 1 v n L 2 και u 1,, u n, v 1,, v n Σ*} (α) Να αποδείξετε ότι η κλάση των διαγνώσιμων γλωσσών είναι κλειστή ως προς την πράξη Merge. Λύσεις Σειράς Προβλημάτων 4 Χειμερινό Εξάμηνο 2018 Σελίδα 7
Για να δείξουμε ότι η κλάση των διαγνώσιμων γλωσσών είναι κλειστή ως προς την πράξη Merge πρέπει να δείξουμε ότι αν L 1 και L 2 είναι δύο διαγνώσιμες γλώσσες, τότε υπάρχει μέθοδος διάγνωσης της γλώσσας Merge(L 1,L 2). Ας υποθέσουμε ότι L 1, L 2 διαγνώσιμες γλώσσες και Μ 1, Μ 2 δύο ΤΜ που τις διαγιγνώσκουν, αντίστοιχα. Έστω λέξη w. Θα διαγνώσουμε κατά πόσο w TA(L 1,L 2) ως εξής: Μ = Για είσοδο w 1. Θεωρούμε όλα τα δυνατά σπασίματα της w σε υπολέξεις u 1,v 1,, u n, v n όπου μόνο η v n μπορεί να είναι κενή. 2. Για κάθε σπάσιμο δημιουργούμε τις λέξεις w 1 = u 1 u n και w 2 = v 1 v n. 3. Τρέχουμε τη w 1 στη μηχανή Μ 1. Αν η Μ 1 αποδεχθεί τότε προχωρούμε στο Βήμα 4, διαφορετικά προχωρούμε στο επόμενο σπάσιμο. 4. Τρέχουμε τη w 2 στη μηχανή Μ 2. Αν η Μ 2 αποδεχθεί τότε αποδεχόμαστε, διαφορετικά προχωρούμε στο επόμενο σπάσιμο. 5. Αν τα σπασίματα εξαντληθούν απορρίπτουμε. Ορθότητα/Τερματισμός: Σύμφωνα με τον ορισμό της πράξης Merge(L 1,L 2), μια λέξη w ανήκει στο TA(L 1,L 2) αν αποτελεί τη συγχώνευση ανάμεσα σε δύο λέξεις από τις γλώσσες L 1 και L 2. Η πιο πάνω μηχανή θεωρεί όλες τις δυνατές συγχωνεύσεις και τρέχει την πρώτη λέξη, w 1, στη μηχανή Μ 1, και τη δεύτερη λέξη, w 2, στη Μ 2. Η μηχανή αποδέχεται αν και μόνο αν αποδεχθούν αμφότερες οι Μ 1, Μ 2 που θα το πράξουν αν και μόνο αν w 1 L 1 και w 2 L 2. Αφού οι Μ 1 και Μ 2 αποτελούν διαγνώστες και η μηχανή που ορίσαμε αποτελεί διαγνώστη. (β) Αναφορικά με το δεύτερο ερώτημα, μπορούμε να δείξουμε την κλειστότητα της πράξης Merge και στα πλαίσια των αναγνωρίσιμων γλωσσών χρησιμοποιώντας μια παραλλαγή της μηχανής από το σκέλος (α). Συγκεκριμένα, χρειάζεται να λάβουμε υπόψη μας το γεγονός ότι σε κάποιες εισόδους οι μηχανές Μ 1 και Μ 2 δυνατό να εγκλωβιστούν. Ως εκ τούτου, δεν αναλύουμε τα σπασίματα «σειριακά» αλλά μη ντετερμινιστικά. Η εισαγωγή της μη ντετερμινιστικής επιλογής ανάμεσα στα δυνατά σπασίματα, μας εγγυάται ότι αν υπάρχει έστω και ένα σπάσιμο που να ικανοποιεί τις απαιτήσεις μας θα υπάρχει και εκτέλεση της μηχανής που θα το εντοπίσει. Ο αλγόριθμος έχει ως εξής: Ν = Για είσοδο w 1. Επέλεξε μη ντετερμινιστικά ένα σπάσιμο της λέξης w σε δύο υπολέξεις w 1 = u 1 u n και w 2 = v 1 v n έτσι ώστε w = u 1v 1u 2v 2 u nv n 2. Τρέξε την Μ 1 στο w 1. Αν η Μ 1 αποδεχθεί τότε τρέξε την Μ 2 στο w 2. Διαφορετικά απόρριψε. 3. Αν η Μ 2 αποδεχθεί τότε αποδέξου. Διαφορετικά απόρριψε. Λύσεις Σειράς Προβλημάτων 4 Χειμερινό Εξάμηνο 2018 Σελίδα 8