CSC 314: Switching Theory Chapter 3, 4: Turing Machines, Decidability 5 December 2008 Dr. Vicky Papadopoulou 1
Other Computational Models We can consider many other reasonable models of computation: DNA computing, neural networks, quantum computing Experience teaches us that every such model can be simulated by a Turing machine. Church-Turing Thesis: The intuitive notion of computing and algorithms is captured by the Turing machine model. 2
Importance of the Church-Turing Thesis The Church-Turing thesis marks the end of a long sequence of developments that concern the notions of way-of-calculating, procedure, solving, algorithm. Goes back to Euclid s GCD algorithm (300 BC). For a long time, this was an implicit notion that defined proper analysis. 3
Algorithm After Abū Abd Allāh Muhammed ibn Mūsā al-khwārizmī (770 840) His Al-Khwarizmi on the Hindu Art of Reckoning describes the decimal system (with zero), and gives methods for calculating square roots and other expressions. Algebra is named after an earlier book. 4
Hilbert s 10th Problem In 1900, David Hilbert (1862 1943) proposed his Mathematical Problems (23 of them). The Hilbert s 10th problem is: find a process according to which we can test whether a polynomial has an integral root. The process implies an algorithm. By now we do not know such a process 5
(Un)solving Hilbert s 10th Hilbert s a process according to which it can be determined by a finite number of operations needed to be defined in a proper way. This was done in 1936 by Church and Turing. They define what is an algorithm. The impossibility of such a process for exponential equations was shown by Davis, Putnam and Robinson. Matijasevič proved that Hilbert s 10th problem is unsolvable in 1970. 6
Θέση Church-Turing Τι μπορεί να υπολογιστεί και τι δεν μπορεί να υπολογιστεί Θέση Church-Turing: ότιμπορείναυπολογιστεί(υπάρχει αλγόριθμος) μπορεί να υπολογιστεί από μια μηχανή Turing. Δηλ. Αλγόριθμος είναι μια μηχανή Turing που τερματίζει για όλες τις εισόδους του προβλήματος Τα προβλήματα που δεν μπορούν να επιλυθούν από μια μηχανή Turing δεν μπορούν να επιλυθούν. (είναι μη επιλύσιμα). ΗθέσητωνChurch-Turing είναι η επικρατέστερη άποψη για το θέμα. 7
Υπάρχουν γλώσσες που δεν είναι αναδρομικές ή αναδρομικά απαριθμίσιμες? Οι γλώσσες αναπαραστούνται με συμβολοσειρές (λέξεις). Π.χ. L={w Σ : w : περιττός} Π.χ. L={a n b n a n } Π.χ. ΠεπερασμέναΑυτόματαήμηχανέςTuring Οι λέξεις που μπορούν να οριστούν για όλα τα αλφάβητα είναι απείρως αριθμήσιμες (countable infinite). Οι γλώσσες που μπορούν να αναπαρασταθούν με συμβολοσειρές είναι απείρως αριθμίσημες Υπάρχουν μόνο απείρως αριθμίσιμες γλώσσες Υπάρχουν μόνο απείρως αριθμίσιμες γλώσσες αναδρομικές ή αναδρομικά αριθμήσιμες Όλες οι γλώσσες όμως είναι μη αριθμήσιμες (uncountable)= (επειδή ο λες οι γλώσσες είναι 2^Ν, που είναι μη αριθμήσιμο) Υπάρχουν γλώσσες που δεν είναι αναδρομικές ή αναδρομικά αριθμήσιμες 8
Καθολικές Μηχανές Turing (The Universal TM U) Οι μηχανές Turing σχεδιάζονται από την αρχή για μια λειτουργία Μπορούμε να προγραμματίσουμε μια μηχανή Turing να κάνει μια λειτουργία? Kαθολική Μηχανή Turing Κωδικοποιώ την λειτουργία (μηχανή Turing, Μ 1 ) που θέλω να εκτελέσω ως μια λέξη ΤηνεισάγωστηνείσοδοτηςKαθολική Μηχανή Turing H μηχανή προσδιορίζει τις μεταβάσεις της με βάση την κωδικοποιημένη M 1 9
The Universal TM U Given a description <M,w> of a TM M and input w, can we simulate M on w? We can do so via a universal TM U (2-tape): 1) Check if M is a proper TM Let M = (Q,Σ,Γ,δ,q 0,q accept,q reject ) 2) Write down the starting configuration < q 0 w > on the 2nd tape 3) Repeat until halting configuration is reached: Replace configuration on tape 2 by next configuration according to δ 4) Accept if q accept is reached; reject if q reject 10
Deciding Regular Languages The acceptance problem for deterministic finite automata is defined by: A DFA = { <B,w> B is a DFA that accepts w } Note that this language deals with all possible DFAs and inputs w, not a specific instance. Theorem. A DFA is a TM-decidable language. Proof. M= On input <B,w>, where B is a DFA and w is a string: 1. Simulate B on input w. 2. If the simulation ends in an accept stae, accept. If it ends in a nonaccepting state, reject. 11
Theorem. A NFA is a TM-decidable language. Proof. Theorem. Every Context-free language is decible. 12
Regular Expressions The acceptance problem A REX = { <R,w> R is a regular expression that can generate w } is a Turing-decidable language. Proof Theorem 4.3. On input <R,w>: 1. Check if R is a proper regular expression and w a proper string 2. Convert R into a DFA B 3. Run earlier TM for A DFA on <B,w> 13
Το Πρόβλημα του Τερματισμού (Halting Problem) Πρόβλημα Τερματισμού: Ας υποθέσουμε ότι έχουμε το εξής καταπληκτικό πρόγραμμα: Πρόγραμμα halts(p, Χ) γραμμένο σε μια γλώσσα προγραμματισμού Είσοδος: ένα πρόγραμμα P στην ίδια γλώσσα μια είσοδος X του προγράμματος P Έξοδος: NAI: αν το P τερματίζει πάντα με είσοδο X OXI: αν το P θα έτρεχε επ άπειρον 14
Πρόγραμμα Diagonal(X) Diagonal(Χ) α: If halts(x, Χ) then goto α else halt Τι κάνει το diagonal? Αν το πρόγραμμα halts αποφασίσει ότι το πρόγραμμα X θα τερμάτιζε με είσοδο X(τον εαυτό του), τότε το diagonal πέφτει σε άπειρη ανακύκλωση αλλιώς τερματίζει. ΕΡΩΤΗΣΗ: Τερματίζει το diagonal(diagonal)? Το diagonal(diagonal) τερματίζει εάν και μόνο εάν το halts(diagonal, diagonal) επιστρέφει OXI. halts(diagonal, diagonal) επιστρέφει OXI εάν και μόνο εάν το πρόγραμμα diagonal με είσοδο Χ=diagonal (δηλ. το diagonal(diagonal)) δεν τερματίζει. Δηλ. diagonal(diagonal) τερματίζει εάν και μόνο εάν το diagonal(diagonal) δεν τερματίζει! 15
ΑΤΟΠΟ. Άρα η υπόθεση ότι το halts() υπάρχει είναι λάθος. Δηλ. Είναι αδύνατο να βρεθεί ένα πρόγραμμα ή αλγόριθμος που να αποφασίζει για οποιοδήποτε πρόβλημα αν θα τερματίσει ή θα πέσει σε άπειρη ανακύκλωση. 16
Halting Problem in a Turing machine Πρόβλημα Τερματισμού: Ας υποθέσουμε ότι έχουμε το εξής καταπληκτικό πρόγραμμα: Πρόγραμμα halts(p, Χ) or ATM, γραμμένο σε μια γλώσσα προγραμματισμού Είσοδος: ένα πρόγραμμα P (Turing μηχανή P) στην ίδια γλώσσα μια είσοδος X του προγράμματος P(της Turing μηχανή P) Έξοδος: NAI: αν το P (η Turing μηχανή P) τερματίζει πάντα με είσοδο X OXI: αν το P (η Turing μηχανή P) θα έτρεχε επ άπειρον 17
Halting Problem in a Turing machine Η γλώσσα Η A TM = H = {<M,w> M is a TM that accepts w } είναι μη-αποφασίσιμη. 18
Ορισμοί Δύο Σημαντικών Γλωσσών K 0 = {(p(μ),x) ημηχανήturing Μαποδέχεταιτηλέξηx} οι λέξεις που κωδικοποιούν μια μηχανή Turing M που αποδέχεται τη λέξη x Γλώσσα Τερματισμού K 1 = {x ηλέξηx κωδικοποιεί μια μηχανή Turing Μ x που αποδέχεται τη λέξη x} κωδικοποιεί μια μηχανή Turing Μ x που αποδέχεται τη λέξη x οι λέξεις που κωδικοποιούν μια μηχανή Turing καιγίνονταιδεχτές από αυτήν Γλώσσα Αυτοτερματισμού Κοινό Χαρακτηριστικό: Αυτοαναφορά Κ 1 = Η μηχανήm x δέχεται τη λέξη x, δηλαδή παίρνει τον εαυτό της σαν είσοδο κωδικοποιημένο. 19
Παρατηρείστε H K 1 είναι αναδρομικά απαριθμίσιμη. 20
Θεώρημα Θεώρημα. Η γλώσσα δεν είναι αναδρομικά αριθμήσιμη. Απόδειξη. Από τον ορισμό της γλώσσας, έχουμε ότι για κάθε λέξη x Σ *, x ηλέξηx κωδικοποιεί μια μηχανή Turing M x ηοποίαδεν αποδέχεται τη λέξη x} ή K 1 ηλέξηx δεν κωδικοποιεί μηχανή Turing (σχέση 1) K 1 K 1 21
απόδειξη θεωρήματος Υποθέτουμε για να φτάσουμε σε αντίφαση ότι η γλώσσα K 1 είναι αναδρομικά αριθμήσιμη. Από τον ορισμό των αναδρομικά αριθμησίμων γλωσσών, υπάρχει λέξη x 0 Σ * η οποία κωδικοποιεί μηχανή Turing Μx 0 η οποία αποδέχεται τη γλώσσα. για κάθε λέξη x Σ* x ημηχανήturing Μx 0 αποδέχεται τη λέξη x. (σχέση 2) K 1 K 1 22
απόδειξη θεωρήματος Από τις σχέσεις 1 και 2, για κάθε λέξη x Σ *, ηλέξηx κωδικοποιεί μηχανή Turing M x η οποία δεν αποδέχεται τη λέξη x ή ηλέξηx δεν κωδικοποιεί μηχανή Turing ημηχανήturing Μx 0 αποδέχεται τη λέξη x. Θέτω x: = x 0 στην τελευταία ισοδυναμία. ημηχανήturing Μx 0 δεν αποδέχεται τη λέξη x 0 ημηχανήturing Μx 0 αποδέχεται τη λέξη x 0. Αντίφαση. 23
Πόρισμα Αφού η Κ 1 είναι αναδρομικά απαριθμίσιμη. Πόρισμα. Το σύνολο των αναδρομικά απαριθμίσιμων γλωσσών δεν είναι κλειστό ως προς την συμπλήρωση. Πόρισμα 2. Η K 1 δεν είναι αναδρομική. ΟλαταστοιχείαπροσδιορίζουντηνΚ 0 Η διαγώνιος προσδιορίζει την Κ 1 Άφού η Κ 1 δεν είναι αναδρομική ούτε η Κ 0 είναι αναδρομική. 24
Μη Επιλύσημα Προβλήματα με Μηχανές Turing Συμπέρασμα Αφού η Κ 1 δεν είναι αναδρομικά απαριθμίσιμη και αν δεχθούμε την θέση Church-Turing ότι αλγόριθμος=μηχανή Turing που αποφασίζει Δεν υπάρχει αλγόριθμος που αποφασίζει δεδομένης μιας οποιασδήποτε μηχανής Turing M και εισόδου w εάν η M αποδέχεται την w ήόχι. Το πρόβλημα είναι μη επιλύσιμο ή μη-αποφασίσιμο Πιο διάσημο μη-επιλύσιμο πρόβλημα: Το πρόβλημα του Τερματισμού: αποφασίζει εάν μια μηχανή Turing τερματίζει για μια δεδομένη είσοδο. 25
Συνέπεια: Πολλά Μη-επιλύσημα προβλήματα Ορισμός. (Πολλά προς Ένα Αναγωγισιμότητα) Έστω L 1, L 2 Σ * δύο γλώσσες. Μια αναγωγή από την L 1 στην L 2, L 1 L 2, είναι μια αναδρομική συνάρτηση τ: Σ * Σ * τέτοια ώστε x L 1 αν και μόνο αν τ(x) L 2. Χρήση: ΓιαναδείξουμεότιηL 2 δεν είναι αναδρομική: Προσδιορίζω μια γλώσσα L 1 που είναι γνωστό ότι είναι μη αναδρομική Ανάγω την L 1 στην L 2. 26
Χρήση Αναγωγών Θεώρημα 1. Αν η L 1 δεν είναι αναδρομική και υπάρχει μια αναγωγή από την L 1 στην L 2, τότε και η L 2 δεν είναι αναδρομική. Απόδειξη. Υποθέστε ότι η L 2 είναι αναδρομική. Αποφασίζεται από μια μηχανή M 2. Έστω Τ η μηχανή που υπολογίζει την αναγωγή τ. ΗμηχανήΤΜ 2 αποφασίζει για την L 1. H L 1 όμως είναι μη αποφασίσιμη. ΑΤΟΠΟ. 27
Παράδειγμα. Αποδείξτε ότι η Κ 0 δεν είναι αναδρομική. Απόδειξη. Ξέρουμε ότι η Κ 1 είναι μη αναδρομική. Δείχνουμε ότι K 1 K 0 Ορίζουμε την τ η οποία μετασχηματίζει μια είσοδος της K 1 «Μ» «Μ» «Μ»: είσοδος της Κ 0 ητείναιαναδρομικήσυνάρτηση. η «Μ» είναι αποδεκτή από την K 1 εάν και μόνο αν η «Μ»«Μ» είναι αποδεκτή από την Κ 0 η τ είναι συνάρτηση αναγωγής από την Κ 1 στην Κ 0 αφού η Κ 1 δεν είναι αναδρομική από Θεώρημα 1 ούτε η Κ 0 είναι αναδρομική. 28
Ιδιότητες Γλωσσών Μεταβατικότητα. Για L 1, L 2, L 3 Σ *, αν L 1 L 2 και L 2 L 3 τότε L 1 L 3. Αναδρομικότητα (αναδρομική απαριθμισιμότητα) Κληρονομεί προς τα Κάτω. Για L 1, L 2 Σ *, αν L 1 L 2 και η L 2 είναι αναδρομική (αναδρομικά απαριθμίσιμη) τότε και η L 1 είναι αναδρομική (αναδρομικά απαριθμίσιμη). Μη Αναδρομικότητα (αναδρομική απαριθμισιμότητα) Κληρονομεί προς τα Πάνω. Για L 1, L 2 Σ *, αν L 1 L 2 και η L 1 είναι μη αναδρομική (αναδρομικά απαριθμίσιμη) τότε και η L 2 είναι μη αναδρομική (αναδρομικά απαριθμίσιμη). Συμμετρίας ως προς την συμπλήρωση. Για L 1, L 2 Σ *, L 1 L 2 αν και μόνο αν ΝΟΤ (L 1 ) ΝΟΤ (L 2 ). 29
Ιδιότητες Συγκρισιμότητα. Δύο γλώσσες L 1, L 2 Σ * είναι συγκρίσιμες όταν ή L 1 L 2 ή L 2 L 1. Μη συγκρισιμότητα. Για L Σ * αν η L είναι αναδρομικά αριθμίσιμη αλλά όχι αναδρομική, τότε ούτε L ΝΟΤ (L) ούτε ΝΟΤ (L ) L. Ισχύει: Οποιαδήποτε συναναδρομικά αριθμίσιμη γλώσσα L είναι L ΝΟΤ(K 0 ). 30
Παραδείγματα. 1. Θεώρημα. Για οποιαδήποτε αναδρομικά αριθμήσιμη γλώσσα L, L K 0. Απόδειξη. Η γλώσσα L είναι αναδρομικά αριθμήσιμη υπάρχει μηχανή Turing M τέτοια ώστε L(M) = L. Για οποιαδήποτε λέξη x Σ *, x L αν και μόνο αν η μηχανή Turing M αποδέχεται τη λέξη x. Ορίζουμε τη συνάρτηση f ώστε για x Σ *, f(x) = h ρ(m), x i. Ησυνάρτησηf είναι αναδρομική συνάρτηση. Για οποιαδήποτε λέξη x Σ, x L αν και μόνο αν ημηχανήturing Μ αποδέχεταιτηλέξηx (αφού L = L(M) ) f: αν και μόνο αν ρ(m), x (από τον ορισμό της γλώσσας K 0 ). Η f είναι συνάρτηση αναγωγής από την L στην K 0. L m K 0. 31
Παραδείγματα. (φροντιστήριο) Αναδρομικότητα Κληρονομεί προς τα Κάτω. Για L 1, L 2 Σ *, αν L 1 L 2 και η L 2 είναι αναδρομική τότε και η L 1 είναι αναδρομική. Απόδειξη. 32
Παραδείγματα. (φροντιστήριο) 33
Παραδείγματα. (φροντιστήριο) Αποδείξτε ότι το παρακάτω γλώσσα είναι μη-επιλύσιμη (δηλ. μη αναδρομική): L 2 ={p(μ) η Μ τερματίζει για τουλάχιστον μια συμβολοσειρά e}. γνωρίζοντας ότι η παρακάτω συνάρτηση είναι μη-επιλύσημη: L 1 ={p(μ) η Μ τερματίζει με συμβολοσειρά εισόδου την e}... Δείχνω ότι L 1 L 2 34
35