CSC 314: Switching Theory Chapter 3: Turing Machines 28 November 2008 1 1
Υπολογισμοί σε Μηχανές Turing Πως χρησιμοποιούμε μια μηχανή Turing? Για την αναγνώριση μιας γλώσσας? Σύμβαση για την αναγνώριση γλωσσών Για μια μηχανή Μ=(Q, Σ, δ, s, Η) Οι λέξεις που ελέγχουμε δεν περιέχουν κενά :w Σ -{t, B} Αρχική συνολική κατάσταση με είσοδο w: (s, Btw). 2
Κατάσταση Αποδοχής, Απόρριψης Ορισμός. Για μια Μ=(Q, Σ, δ, s, Η) τέτοια ώστε H={y, n}, κάθε συνολική κατάσταση με κατάσταση τερματισμού y = συνολική κατάσταση αποδοχής (accepting configuration) ΗΜαποδέχεται (accepts) την w αν παράγει μια συνολική κατάσταση αποδοχής. Κάθε συνολική κατάσταση με κατάσταση τερματισμού n = συνολική κατάσταση απόρριψης (rejecting configuration) ΗΜαπορρίπτει (rejects) την w αν παράγει μια συνολική κατάσταση τερματισμού 3
Αναδρομικές Γλώσσες (Recursive Languages) Αν Σ 0 Σ -{t, B}το αλφάβητο εισόδου της M H M αποφασίζει μια γλώσσα L Σ 0* αν για κάθε λέξη w Σ * 0 είναι αληθές ότι: Αν w L, η M δέχεται την w και αν w L η Μ απορρίπτει την w. Μια γλώσσα είναι αναδρομική (recursive) αν υπάρχει μια μηχανή που την αποφασίζει (decides). 4
Παρατήρηση Στα προηγούμενα μοντέλα υπολογισμού (αυτόματα) ημηχανή είτε δεχόταν μια είσοδο είτε την απόρριπτε. Στις μηχανές Turing μπορεί να μην είναι μόνο αυτά τα δύο πιθανά αποτελέσματα μιας εισόδου: Για μια λέξη, η οποία δεν είναι δεχτή από τη γλώσσα της μηχανής μπορεί να μην τερματίσει ποτέ. 5
Αναδρομικές Συναρτήσεις (Recursive Functions) H μηχανές Turing μπορεί να υπολογίζουν και συναρτήσεις f(w): Ορισμός. Έστω Μ=(Q, Σ, δ, s, {h}) και Σ 0 Σ -{t, B} w Σ * 0. Αν η Μ τερματίζει με είσοδο w και (s, Btw,) `*(h, Btz), z Σ 0*. z = έξοδος της M με είσοδο w = Μ(w) (η M(w) ορίζεται μόνο αν η Μ τερματίσει) Έστω συνάρτηση f: Σ 0* Σ 0*. HM υπολογίζει (computes)την f αν για κάθε w Σ 0*, M(w) = f(w) Δηλ. για κάθε w Σ 0* η Μ κάποτε τερματίζει με είσοδο w και η ταινία περιέχει την λέξη Btf(w). H συνάρτηση f είναι αναδρομική (decible) αν υπάρχει μια Turing μηχανή M που υπολογίζει την f. 6
Παράδειγμα H συνάρτηση k : Σ * Σ * η οποία ορίζεται ως k(w) = w w μπορεί να υπολογιστεί από τη μηχανή CS C : μηχανή αντιγραφής μιας λέξης w σε wt w ακολουθούμενη από S : μια μηχανή αριστερής μετατόπισης μιας λέξης B twt σε B w t 7
Αναδρομικές Συναρτήσεις Οποιοδήποτε φυσικό αριθμό μπορούμε να τον αναπαραστήσουμε ως 0 1 (0 1) *. Οι μηχανές που υπολογίζουν συναρτήσεις από το {0,1,} * στο {0,1,} * είναι μηχανές που υπολογίζουν συναρτήσεις από τους φυσικούς αριθμούς στους φυσικούς αριθμούς Μιατέτοιασυνάρτησηf: {0,1,} * {0,1,} * ηοποία υπολογίζεται από κάποια μηχανή M ονομάζεται αναδρομική. 8
Κλειστότητα ως προς το Ένωση, Τομή Θεώρημα. Το σύνολο των αναδρομικών γλωσσών είναι κλειστό ως προς τις πράξεις ένωση τομή συμπλήρωση σύμπτηξη θήκη Kleene. 9
Αναδρομικά Απαριθμήσιμες Γλώσσες-(Recursively Enumerable) Αν μια μηχανή Turing αποφασίζει μια γλώσσα ή υπολογίζει μια συνάρτηση μπορεί να θεωρηθεί ως ένας αλγόριθμος. Ορισμός. Έστω Μ=(Q, Σ, δ, s, {h}) και Σ 0 Σ -{t, B}ένα αλφάβητο και L Σ * 0 μια γλώσσα. ΗΜημιαποφασίζει (semiterminates)την L αν για κάθε λέξη w Σ * 0 αληθεύει το εξής: w L αν και μόνο αν η M τερματίζει με είσοδο w. Μια γλώσσα L είναι αναδρομικά απαριθμήσιμη (recursively enumerable)αν υπάρχει μια μηχανή Μ που ημιαποφασίζει την L. 10
Αναδρομικά Αρίθμησες Γλώσσες Αν η Μ έχει είσοδο w L τερματίζει. Αν όμως w Σ * 0-L τότε η Μ δεν θα εισέλθει ποτέ σε κατάσταση τερματισμού. Μ(w) =% : η M αποτυγχάνεινατερματίσειμεείσοδοw Αφού από κάθε συνολική κατάσταση παράγεται με άλλη συνολική κατάσταση η μηχανή θα συνεχίζει να υπολογίζει επ άπειρον. Για μια Μηχανή Turing και μια λέξη w? L δεν μπορούμε να αναγνωρίσουμε αν έχει τελειώσει με τον υπολογισμό της επειδή αν w Σ * 0-Lδεν θα τερματίσει ποτέ αλλά αυτό (ότι w L) δεν το ξέρουμε. Ορισμός (ισοδύναμος). ΗΜημιαποφασίζει την L αν για κάθε λέξη w Σ * 0, ισχύει ότι Μ(w) = % αν και μόνο αν η w L. 11
Παράδειγμα L={w {a, b} * : η w περιέχει τουλάχιστον ένα a}. Τότε η L ημιαποφασίζεται από τη μηχανή: a Σαρώνει δεξιά ώσπου να βρει ένα a και τερματίζει. Ημηχανήτερματίζειμεείσοδοw αν και μόνο αν w L Αν η w δεν περιέχει a, ημδενθατερματίσειποτέ. H L είναι αναδρομικά απαριθμήσιμη. 12
Μειονέκτημα Μηχανών Turing Στα αυτόματα αν διαβαστεί όλη η λέξη το αυτόματο τερματίζει πάντα σε τελική (οπότε αποδέχεται τη λέξη) ημητελικήκατάσταση(οπότε δεν αποδέχεται τη λέξη). Στις μηχανές Turing που ημιαποφασίζουν για μια γλώσσα αν η λέξη δεν είναι αποδεχτή δεν τερματίζει ποτέ αλλά συνεχίζει επ άπειρον να κάνει υπολογισμούς. Οπότεδενξέρουμεανπεριμέναμεαρκετάγιαναδούμεανηλέξη είναι αποδεχτή ή όχι. 13
Αναδρομικές και Αναδρομικά Αρίθμησες Γλώσσες Θεώρημα. Αν μια γλώσσα είναι αναδρομική είναι και αναδρομικά αριθμίσιμη. Απόδειξη. Μετατρέπουμε την μηχανή έτσι ώστε να ημιαποφασίζει αντί να αποφασίζει. Αλλάζουμε την κατάσταση απόρριψης n σε μη τερματική κατάσταση και επεκτείνουμε την δ: δ (n, a) =(n, a) για κάθε a Σ. 14
Ισχύει το αντίστροφο? Μπορούμε πάντα να μετατρέψουμε μια γλώσσα που είναι αναδρομικά απαριθμήσιμη (ημιαποφασίζει) αναδρομική (αποφασίζει)? Όχι! Υπάρχουν γλώσσες που δεν είναι αναδρομικές. Επίσης, Δεν είναι όλες οι συναρτήσεις αναδρομικές! (για οποιαδήποτε συνάρτηση, δεν υπάρχει πάντα μια μηχανή Turing M που να την υπολογίζει) 15
Κλειστότητα ως προς το Συμπλήρωμα Θεώρημα. Αν L είναι αναδρομική γλώσσα τότε το συμπλήρωμα της είναι επίσης αναδρομική γλώσσα. Απόδειξη. Αν M είναιτοαυτόματοπουδέχεταιτηνl. Μ = ίδια όπως M αλλά αλλάζουμε όλες τις μεταβιβάσεις σε n σε y και αντίστροφα. L 16
Αναδρομικά Απαριθμήσιμες Γλωσσες-Κλειστότητα Θεώρημα. Το σύνολο των αναδρομικά αριθμήσιμων γλωσσών είναι κλειστό ως προς τις πράξεις ένωση τομή. Θεώρημα. Το σύνολο των αναδρομικά αριθμήσιμων γλωσσών δεν είναι κλειστό ως προς την πράξη συμπλήρωσης. 17
Συναναδρομικά Απαριθμίσιμες Γλώσσες Μιαγλώσσαείναισυναναδρομικά απαριθμήσιμη αν υπάρχει μια μηχανήπουναημιαποφασίζειγιατοσυμπλήρωματηςγλώσσας. Κάθε αναδρομική γλώσσα είναι αναδρομικά απαριθμίσιμη και συναναδρομικά απαριθμίσιμη. Πρόταση. Μια γλώσσα είναι αναδρομική αν και μόνο αν είναι αναδρομικά απαριθμίσιμη και συναναδρομικά απαριθμίσιμη. Η τομή των αναδρομικά απαριθμήσιμων και συναναδρομικά απαριθμίσιμων γλωσσών είναι το σύνολο των αναδρομικών γλωσσών. 18
Επεκτάσεις Μηχανών Turing Μηχανές Turing με πολλαπλές ταινίες (k) Σε κάθε βήμα, κάθε κεφαλή διαβάζει και γράφει ή μετακινείται. 19
Mηχανή ktαινιών Πρόταση. Οποιαδήποτε συνάρτηση υπολογίζεται ή οποιαδήποτε γλώσσα αποφασίζεται ή ημιαποφασίζεται από μια μηχανή k ταινιών, υπολογίζεται, αποφασίζεται ή ημιαποφασίζεται, αντίστοιχα από μια μηχανή Turing. 20
Μηχανή πολλαπλών κεφαλών Επιτρέπουμε πολλαπλές κεφαλές και μια ταινία. Πρόταση. Οποιαδήποτε συνάρτηση υπολογίζεται ή οποιαδήποτε γλώσσα αποφασίζεται ή ημιαποφασίζεται από μια μηχανή με πολλαπλές κεφαλές, υπολογίζεται, αποφασίζεται ή ημιαποφασίζεται, αντίστοιχα από μια μηχανή Turing. 21
Μηχανές Turing Τυχαίας Προσπέλασης Η κεφαλή στις μηχανές που είδαμε μέχρι τώρα μπορεί σε ένα βήμα να διαβάσει ένα τετράγωνο αριστερά ή δεξιά της τρέχουσας θέσης. Στις μηχανές τυχαίας προσπέλασης Ηκεφαλήμπορείναδιαβάσειοποιοδήποτε τετράγωνο της ταινίας σε ένα βήμα. Με την χρήση καταχωρητών οι οποίοι διαχειρίζονται τις διευθύνσεις των τετράγωνων της ταινίας Πρόταση. Οποιαδήποτε συνάρτηση υπολογίζεται ή οποιαδήποτε γλώσσα αποφασίζεται ή ημιαποφασίζεται από μια μηχανή Turing τυχαίας προσπέλασης, υπολογίζεται, αποφασίζεται ή ημιαποφασίζεται, αντίστοιχα από μια μηχανή Turing. 22
Μη Ντετερμινιστικές Μηχανές Turing Από μια συνολική κατάσταση είναι δυνατόν να προκύψουν πολλές εναλλαχτικές συνολικές καταστάσεις. Πρόταση. Οποιαδήποτε συνάρτηση υπολογίζεται ή οποιαδήποτε γλώσσα αποφασίζεται ή ημιαποφασίζεται από μια Μη Ντετερμινιστική μηχανή Turing, υπολογίζεται, αποφασίζεται ή ημιαποφασίζεται, αντίστοιχα από μια μηχανή Turing. 23