CSC 314: Switching Theory Chapter 3: Turing Machines 21 November 2008 1 Dr. Vicky Papadopoulou 1
Μηχανές Turing: Ένα Γενικό Μοντέλο Υπολογισμού Ποια μοντέλα υπολογισμού μπορούν να δεχθούν γλώσσες της μορφής a n b n c n? Οι μηχανές Turing (Alan Turing 1912-1954) μπορούν! Μονάδα πεπερασμένου ελέγχου μια ταινία και μια κεφαλή για ανάγνωση και εγγραφή Θα δούμε ότι πιο γενικά μοντέλα υπολογισμού μπορούν να αναχθούν σε μηχανές Turing οποιοσδήποτε λογικός τρόπος τυποποίησης ενός αλγόριθμου είναι ισοδύναμος με μια μηχανή Turing. Οι μηχανές Turing: αναγνωρίζουν γλώσσες υπολογίζουν μια συνάρτηση 2
Μηχανή Turing Η κεφαλή διαβάζει και γράφει στην ταινία εισόδου Κάθεφοράανάλογαμετρέχουσακατάστασηκαιτιδιαβάζειτώρα: 1. Τοποθετεί την μονάδα ελέγχου σε νέα κατάσταση 2. Είτε 1. Γράφει ένα σύμβολο στο τετράγωνο της ταινίας που μόλις διάβασε είτε 2. Μετακινεί την κεφαλή ανάγνωσης/εγγραφής μια θέση δεξιά ή αριστερά 3
Μηχανή Turing Η ταινία αρχίζει από το αριστερό της άκρο και εκτίνεται απεριόριστα στα δεξιά. Για να εμποδίσουμε τη μηχανή να μετακινηθεί πέρα από το αριστερότερο άκρο χρησιμοποιούμε το σύμβολο B όποτε η κεφαλή διαβάζει B μετακινείται δεξιά ( ) = η κεφαλή μετακινείται δεξιά (αριστερά) Όπου δεν υπάρχει σύμβολο στη ταινία θεωρούμε το t 4
Ορισμός Μια μηχανή Turing είναι μια πεντάδα Μ=(Q, Σ, δ, s, H): Q=πεπερασμένο σύνολο καταστάσεων Σ = αλφάβητο, περιέχει το κενό σύμβολο t, το σύμβολο αριστερού άκρου B, όχι τα σύμβολα,. s Q= αρχική κατάσταση Η Q= τερματικές καταστάσεις Συνάρτηση μετάβασης δ : (Q Η ) Σ Q (Σ {, }: 1. για κάθε q Q-H, αν δ(q, B) =(p, b) τότε b=. (όταν η κεφαλή συναντήσει το B μετακινείται δεξιά) 1. q Q H, a Σ, αν δ(q, a) = (p, b) τότε b B. (η Μ δενγράφει ποτέ ένα B) (για κάθε μη τερματική κατ. q και κάθε σύμβολο του αλφάβητο που διαβάζει a: πάει στην κατάσταση p και είτε μετακινείται (όταν b {, )} ή γράφειστηνθέσηπουδιάβασετοb. 5
Η μηχανή είναι ντετερμινιστική όταν η μηχανή πάει σε κατάσταση τερματισμού σταματά. 6
Παράδειγμα 1 Μ=(Q, Σ, δ, s, {h}): Q={q 0, q 1, h} Σ ={a, t, B}, s={q 0 } Πχ. είσοδος = aaaa q 0 : aπό την θέση B πάει δεξιά και μένει στη q 0 q 0 : διαβάζει το πρώτο a το αντικαθιστά με κενό t καιπάειστηνκατάστασηq 1 (1) διαβάζει το t και πάει δεξιά και πάει στην κατάσταση q 0 (5) επαναλαμβάνει το ίδιο ώσπου να αντικαταστήσει όλα τα a σε t είναι στην κατάσταση q 0 και διαβάζει t. Τότε πάει στην τελική κατάσταση h και τερματίζει. (2) Note: Η μεταβίβαση (4) δεν χρησιμοποιείται. Πρέπει να υπάρχει επειδή η δ είναι συνάρτηση. 1 2 3 4 5 6 q q 1 q 1 q 1 σ q 0 a ( q 1, t) q 0 t ( h, t ) q 0 B ( q 0, ) a t B δ(q,σ) (q 0,a) (q 0, ) (q 1, ) 7
Παράδειγμα 2 Μ=(Q, Σ, δ, s, {h}): Q={q 0, h} Σ ={a, t, B}, s={q 0 } q 0 : aπό την θέση B πάει δεξιά και μένει στη q 0 q 0 : διαβάζει το πρώτο a μετακινείται αριστερά (1) και συνεχίζει όσο διαβάζει a ώσπου θα φτάσει στο B οπότε πάει πάλι δεξιά (3) φτάνοντας το 1 ο a μετά πάει πάλι αριστερά (φτάνοντας στο B) (1) και μετά δεξιά (3) (φτάνοντας το 1 ο a) και συνεχίζει επ άπειρο μετακινουμένη μεταξύ του B και του 1 ο a. 1 2 3 q σ δ(q,σ) q 0 a ( q 1, ) q 0 t ( h, t ) q 0 B ( q 0, ) Δεν τερματίζει ποτέ. Ποτέ δεν πάει στην κατάσταση h. 8
Συνολικές Καταστάσεις Συνολική κατάσταση της Μ: (Q B Σ * ( Σ * ( Σ {t}) {e}) Πχ. (q, Baa, ba) = το αυτόματο είναι στη κατάσταση q από αριστερά έως και την κεφαλή είναι η λέξη Baa και η κεφαλή διαβάζει το 2o a δεξιά από την κεφαλή είναι η λέξη ba 3 η παράμετρος δεν τελειώνει με t Πχ. (q, Baat, tba) : ΟΚ (q, Baat, bat) : όχι ΟΚ! (q, Baat, e) : ΟΚ! (q, aa, ba) : όχι ΟΚ! 9
Συμβολίζω :(q, Baa, ba) = (q, Baaba) (q 1, w 1 α 1 u 1 ) `M (q 2, w 2 α 2 u 2 ), όπου a 1, α 2, α 2 Σ αν και μόνο αν δ(q 1, α 1 ) =(q 2, b) για κάποιο b Σ {, }τέτοιο ώστε: 1. Αν b Σ τότε w 1 = w 2, u 1 =u 2 και a 2 = b (αντικαθιστά το σύμβολο a με b) 10
συνέχεια.. Παράδειγμα. Έστω w, u Σ *, u δεν τελειώνει με t και a, b Σ. 1. δ(q 1, a) = (q 2, b) και Πχ. (q 1, wau ) ` (q 2, wbu ) 11
συνέχεια.. (q 1, w 1 a 1 u 1 ) `M (q 2, w 2 a 2 u 2 ), όπου a 1, a 2, Σ 2. Αν b = τότε w 1 = w 2 a 2 και 1. είτε u 2 =a 1 u 1 αν a 1 t ή u 1 e (μετακινείται αριστερά) Παράδειγμα. Έστω w, u Σ *, u δεν τελειώνει με t και a, b Σ. δ(q 1, a) = (q 2, ) και (q 1, wbau ) ` (q 2, wbau) 12
συνέχεια.. 2. Αν b = τότε w 1 = w 2 a 2 και 2. ή u 2 = e αν a 1 = t ή u 1 =e (μετακινείται αριστερά αν διαβάσει t και το σβήνει από τη συνολική κατάσταση ) Παράδειγμα. Έστω w, u Σ *, u δεν τελειώνει με t και a, b Σ. δ(q 1, a) = (q 2, ) και (q 1, wbt ) ` (q 2, wb) 13
συνέχεια.. 3. Αν b = τότε w 2 = w 1 a 1 και 1. είτε u 1 =a 2 u 2 αν a 1 t ή u 1 e (μετακινείται δεξιά) Παράδειγμα. Έστω w, u Σ *, u δεν τελειώνει με t και a, b Σ. δ(q 1, a) = (q 2, ) και (q 1, wabu ) ` (q 2, wabu) 14
συνέχεια.. 3. Αν b = τότε w 2 = w 1 a 1 και 2. ή u 1 =u 2 =e και a 2 = t (μετακινείται δεξιά αν διαβάσει t και το εισάγει στη συνολική κατάσταση ) Παράδειγμα. Έστω w, u Σ *, u δεν τελειώνει με t και a, b Σ. δ(q 1, a) = (q 2, ) και (q 1, wa ) ` (q 2, wat) 15
Υπολογισμός Υπολογισμός είναι μια ακολουθία από συνολικές καταστάσεις ` * = C 1 ` C 1 ` C 1 `.. C M 16
Παράδειγμα Παράδειγμα. Μ=(Q, Σ, δ, s, {h}):q={q 0, q 1, h} Σ ={a, t, B}, s={q 0 } (q 1, Btaaaa} ` (q 0, Btaaaa} ` (q 1, Bttaaa} ` (q 0, Bttaaa}. ` (q 1, Bttttt} ` (q 0, Btttttt} ` (h, Bttttttt} 1 2 3 4 5 6 q σ δ(q,σ) q 0 a ( q 1, t) q 0 t ( h, t ) q 0 B ( q 0, ) q 1 q 1 q 1 a (q 0,a) t (q 0, ) B (q 1, ) 17
Συμβολισμός για τις Μηχανές Turing Αναπαριστούμε τις μηχανές συνθέτοντας πιο απλές μηχανές σε πιο πολύπλοκες. Βασικές μηχανές: Για κάθε a Σ {, }- {B} ορίζω: Μ a = ({s, h}, Σ, δ, s, {h}) : b Σ -{B}, δ(s, b) = (h, a) αν a Σ ότι σύμβολο και να διαβάσει, b, γράφει το a στην θέση του b και τερματίζει. Συμβολίζεται ως a. αν a= ή ότι και να διαβάσει μετακινείται δεξιά και τερματίζει. Συμβολίζεται ως R ή L. 18
Σύνθεση Μηχανών Συνδέω μηχανές όπως καταστάσεις σε αυτόματα Για να αλλάξω μηχανή πρέπει να τερματίσει η λειτουργία της η προηγούμενη. Π.χ. Ξεκινά από την Μ1 όταν τερματίσει η Μ1 και το τρέχον σύμβολο είναι το a ξεκινά και λειτουργεί ως Μ2, διαφορετικά, αν το τρέχον σύμβολο είναι b ξεκινά και λειτουργεί ως Μ3 19
Σύνθεση Μηχανών Παράδειγμα. Αποτελείται από δύο αντίγραφα της R (right). μετακινεί την κεφαλή της ένα τετράγωνο δεξιά αν είναι το σύμβολο a, b, t ή B μετακινείται πάλι δεξιά Αν Σ ={a, b,, B } την γράφω ως ή RR. 20
Παραδείγματα R t = Σαρώνει την ταινία προς τα δεξιά μέχρι να βρει το κενό και τερματίζει. Σαρώνει την ταινία προς τα δεξιά μέχρι να βρει ένα μη κενό σύμβολο a οπότε μετακινείται ένα τετράγωνο αριστερά και γράφει το a στο τρέχον τετράγωνο και τερματίζει. 21
Παραδείγματα H R t (L t ) βρίσκει το πρώτο κενό τετράγωνο στα δεξιά (αριστερά) του τετραγώνου που μόλις σαρώθηκε και τερματίζει. H R nott (L nott ) βρίσκει το πρώτο μη κενό τετράγωνο στα δεξιά (αριστερά) τουτετραγώνουπουμόλιςσαρώθηκεκαι τερματίζει. 22
Παραδείγματα Η παρακάτω μηχανή C αντιγράφει μια λέξη w με μη κενά σύμβολα. Μετασχηματίζει την twt σε twtwt tabat tabat L t tabat (R) ttbat (read a και replace with t) ttbatt (R t R t ) ttbatat (write a) ttbatat (L t L t ) tabatat (write a) repeat until read t ( τότε tabatabat ) Τότε R t και τερμάτισε. (twtwt) 23
Παράδειγμα. Η παρακάτω μηχανή αποφασίζει για τη γλώσσα a n b n c n. Ημηχανήy(n)θέτει ως νέα κατάσταση την y (n) Λειτουργεί σε n φάσεις Σε κάθε φάση: ξεκινάαπότοαριστερόάκροτηςλέξης και σαρώνει δεξιά αναζητώντας το πρώτο a. Μόλις το βρει, το αντικαθιστά το a με d Σαρώνει δεξιά αναζητώντας το πρώτο b. Μόλις το βρει, το αντικαθιστά το b με d Σαρώνει δεξιά αναζητώντας το πρώτο c. Μόλις το βρει, το αντικαθιστά το c με d Επιστρέφει στο αριστερό άκρο της λέξης Ξεκινά η επόμενη φάση: Σε κάθε φάση αντικαθιστά ένα a, ένα b και ένα c με d. Αν φτάσει στο δεξιό άκρο της λέξης ενώ ψάχνει για a, σημαίνει ότι τέλειωσε τη λέξη και ήταν της μορφής a n b n c n αλλάζει κατάσταση σε τερματική αποδοχής y (yes) και τερματίζει. Αλλιώς θέτει την κατάσταση της σε τερματική απόρριψης n (no) και τερματίζει. 24