Professional Documents
Culture Documents
TheoryofComputation TuringMachines
TheoryofComputation TuringMachines
Μηχανές Turing
Παναγιώτης Ρουβέλας
22 Ιανουαρίου 2022
Ο στόχος που είχαμε θέσει εξαρχής στο μάθημα ήταν η αυστηροποίηση της
έννοιας του αλγορίθμου. Για να το πετύχουμε αυτό, εισάγαμε σταδιακά όλο
και πιο ισχυρά υπολογιστικά μοντέλα.
Δεν προσεγγίσαμε ωστόσο ακόμα πλήρως την έννοια αυτή. Για παράδειγμα,
απλές γλώσσες όπως η {ai bi ci : i ≥ 0} δεν γίνονται δεκτές από κανένα
υπολογιστικό μοντέλο που έχουμε ορίσει ως τώρα, παρότι υπάρχουν
μηχανικοί τρόποι ελέγχου του πότε μία συμβολοσειρά ανήκει στις γλώσσες
αυτές.
1
Φτάνοντας στον στόχο μας
Ένα βασικό επιχείρημα υπέρ της θέσης αυτής είναι το γεγονός ότι κάθε
ισχυροποίηση1 της πρότυπης μηχανής Turing παραμένει ισοδύναμη σε
υπολογιστική ισχύ με την πρότυπη μηχανή Turing.
1
Στο πλαίσιο πάντα μίας διαισθητικής προσέγγισης της υπολογισιμότητας.
2
Περιγραφή μηχανής Turing
• την ταινία με αριστερό άκρο αλλά χωρίς δεξί άκρο (που περιέχει την
πεπερασμένου μήκους είσοδο),
• την κεφαλή ανάγνωσης/εγγραφής που διαβάζει αλλά και γράφει στην
ταινία (η κεφαλή μπορεί να μετακινηθεί είτε προς τα αριστερά είτε προς
τα δεξιά),
3
Περιγραφή μηχανής Turing
4
Αυστηρός ορισμός μηχανής Turing
Ορισμός
Μηχανή Turing ονομάζουμε κάθε πεντάδα M = (K, Σ, δ, s, H) όπου
5
Περιγραφή λειτουργίας μηχανής Turing
6
Παράδειγμα μηχανής Turing
Έστω μηχανή Turing M = ({q0 , q1 , h}, {a, ⊔, ▷}, δ, s, {h}) όπου η συνάρτηση
μετάβασης δ ορίζεται ως εξής:
q σ δ(q, σ)
q0 a (q1 , ⊔)
q0 ⊔ (h, ⊔)
q0 ▷ (q0 , →)
q1 a (q0 , a)
q1 ⊔ (q0 , →)
q1 ▷ (q1 , →)
q σ δ(q, σ)
q0 a (q0 , ←)
q0 ⊔ (h, ⊔)
q0 ▷ (q0 , →)
Αν η ταινία στα αριστερά της αρχικής θέσης της κεφαλής περιέχει μόνο a
(πέρα από το ▷), τότε η μηχανή M δεν τερματίζει.
8
Συνολικές καταστάσεις
Ορισμός
Έστω μηχανή Turing M = (K, Σ, δ, s, H). Κάθε
Παρατήρηση
Η συνολική κατάσταση (q, w, u) ουσιαστικά κωδικοποιεί το γεγονός ότι η
M βρίσκεται σε κατάσταση q και η ταινία περιέχει τη συμβολοσειρά wu, με
την κεφαλή να βρίσκεται στη θέση του τελευταίου συμβόλου της w.
9
Παράδειγμα
Οι (q, ▷a, aba), (h, ▷⊔⊔⊔, ⊔a), (q, ▷⊔a⊔⊔, e) είναι συνολικές καταστάσεις (η
δεύτερη τερματισμένη) μίας μηχανής M = ({s, q, h}, {a, b}, δ, s, {h}).
10
Συμβολισμός ταινίας
wav
τα περιεχόμενα της ταινίας κάποιας συνολικής κατάστασης (q, wa, u), όπου
q κατάσταση της μηχανής, w ∈ Σ∗ , v ∈ (Σ∗ (Σ − {⊔}) ∪ {e}) και a ∈ Σ. Το
υπογραμμισμένο σύμβολο υποδηλώνει τη θέση της κεφαλής.
Επομένως, αντί για (q, wa, u) μπορούμε να γράφουμε πιο απλά (q, wav). Για
παράδειγμα, οι συνολικές καταστάσεις
μίας μηχανής M = ({s, q, h}, {a, b}, δ, s, {h}) μπορούν να γραφούν και ως
11
Υπολογισμός μηχανής Turing
(q1 , w1 a1 u1 ) ⊢M (q2 , w2 a2 u2 )
(i) b ∈ Σ, w1 = w2 , u1 = u2 και a2 = b.
(ii) b =←, w1 = w2 a2 και
• u2 = a1 u1 αν a ̸= ⊔ ή u1 ̸= e, ή
• u2 = e, αν a1 = ⊔ και u1 = e.
(iii) b =→, w2 = w1 a1 και
• u1 = a2 u2 ή
• u1 = u2 = e και a2 = ⊔.
12
Υπολογισμός μηχανής Turing
Ορισμός
Έστω μηχανή Turing M. Με ⊢∗M συμβολίζουμε την ανακλαστική μεταβατική
κλειστότητα της ⊢M . Θα λέμε ότι η συνολική κατάσταση C1 παράγει τη
συνολική κατάσταση C2 στην M αν C1 ⊢∗M C2 . Υπολογισμός (μήκους n ή με n
βήματα) της M ονομάζεται κάθε ακολουθία C0 , C1 , . . . , Cn , για κάποιο n ≥ 0,
έτσι ώστε
C0 ⊢M C1 ⊢M · · · ⊢M Cn
(στην περίπτωση αυτή θα γράφουμε C0 ⊢nM Cn ).
14
Συνδυάζοντας μηχανές Turing
15
Βασικές μηχανές Turing
Τώρα που είδαμε έναν απλό τρόπο με τον οποίο μπορούμε να συνδυάσουμε
μηχανές Turing, ας δούμε μερικές βασικές τέτοιες μηχανές.
Για κάθε a ∈ (Σ ∪ {←, →}) − {▷}, ορίζουμε τη μηχανή Turing
Ma = ({s, h}, Σ, δ, {h}) όπου για κάθε b ∈ Σ,
(h, a) αν b ̸= ▷
δ(s, b) =
(s, →) αλλιώς
16
Παραδείγματα συνδυασμού βασικών μηχανών
17
Παραδείγματα συνδυασμού βασικών μηχανών
Για απλότητα, μηχανές που ενώνονται με ένα βέλος χωρίς επιγραφή θα τις
συμβολίζουμε συνήθως παραθέτοντας τα σύμβολα τους. Για παράδειγμα, η
παραπάνω μηχανή θα συμβολίζεται και ως
RR ή R2 .
18
Παραδείγματα συνδυασμού βασικών μηχανών
Όταν σε ένα διάγραμμα μηχανής Turing, ένα βέλος έχει ως επιγραφή όλα τα
σύμβολα του Σ εκτός από κάποιο b, τότε θα γράφουμε ως επιγραφή b ή
a ̸= b. Για παράδειγμα, με τα παρακάτω διάγραμμα, αναπαρίσταται η μηχανή
που μετακινεί την κεφαλή δεξιά συνεχώς μέχρι να διαβάσει κάποιο μη κενό
σύμβολο.
20
Παραδείγματα συνδυασμού βασικών μηχανών
21
Παραδείγματα συνδυασμού βασικών μηχανών
22
Υπολογισμοί με μηχανές Turing
Αναδρομικές γλώσσες
Ορισμός
Έστω M = (K, Σ, δ, s, H) μηχανή Turing, όπου H = {y, n}. Κάθε συνολική
κατάσταση τερματισμού της οποίας η κατάσταση τερματισμού είναι y θα
λέγεται συνολική κατάσταση αποδοχής, ενώ αν είναι n θα λέγεται
συνολική κατάσταση απόρριψης.
Λέμε ότι η M δέχεται μία είσοδο w ∈ (Σ − {⊔, ▷})∗ αν η (s, ▷⊔w) παράγει
μία συνολική κατάσταση αποδοχής, ενώ θα λέμε ότι την απορρίπτει αν
παράγει μία συνολική κατάσταση απόρριψης.
Έστω Σ0 ⊆ Σ − {⊔, ▷} ένα αλφάβητο εισόδου της M. Λέμε ότι η M
αποφασίζει μία γλώσσα L ⊆ Σ∗0 αν για κάθε w ∈ Σ∗0 ,
23
Παρατηρήσεις
(s, ▷⊔w),
24
Παράδειγμα
Ορισμός
Έστω M = (K, Σ, δ, s, {h}) μηχανή Turing με αλφάβητο εισόδου
Σ0 ⊆ Σ − {⊔, ▷} και έστω w ∈ Σ∗0 . Η u ονομάζεται έξοδος της M με είσοδο
w (συμβολίζεται ως M(w)) αν η M τερματίζει με είσοδο w, και
26
Παρατηρήσεις
27
Παράδειγμα
κ(w) = ww.
CS← L⊔ .
28
Αναπαράσταση αριθμών
x = a1 2n−1 + a2 2n−2 + . . . + an ,
για κάποιους a1 , . . . , an ∈ N.
Επομένως, μπορεί να αναπαρασταθεί σε δυαδική μορφή από μία
συμβολοσειρά w = a1 a2 . . . an ∈ {0, 1}∗ . Ορίζουμε num(w) να είναι ο
φυσικός αριθμός που αναπαριστά μία συμβολοσειρά w ∈ {0, 1}∗ .
Κάθε φυσικός αριθμός μπορεί να αναπαρασταθεί με μοναδικό τρόπο από
μία συμβολοσειρά στο 0 ∪ 1(0 ∪ 1)∗ .
Στην περίπτωση που θέλουμε να τροφοδοτήσουμε μία μηχανή Turing με n
φυσικούς αριθμούς, θα χρησιμοποιούμε το σύμβολο «;» ως διαχωριστικό.
29
Υπολογισμοί με αριθμούς
Ορισμός
Έστω M = (K, Σ, δ, s, {h}) μηχανή Turing τέτοια ώστε 0, 1, ; ∈ Σ και έστω
έστω f συνάρτηση από το Nk στο N, για κάποιο k > 0. Λέμε ότι η M
υπολογίζει την f αν για όλα τα w1 , . . . , wk ∈ 0 ∪ 1{0, 1}∗ ,
30
Παράδειγμα
31
Αναδρομικά απαριθμήσιμες γλώσσες
Ορισμός
Έστω M = (K, Σ, δ, s, H) μηχανή Turing με αλφάβητο εισόδου
Σ0 ⊆ Σ − {⊔, ▷} και έστω γλώσσα L ⊆ Σ∗0 . Λέμε ότι η M ημιαποφασίζει την
L αν για κάθε w ∈ Σ∗0 ισχύει
w ∈ L ⇔ η M τερματίζει με είσοδο w.
Παρατήρηση
Προσοχή στη διαφορά μεταξύ αποφασισιμότητας και
ημιαποφασισιμότητας.
32
Παράδειγμα
Η γλώσσα
{w ∈ {a, b}∗ : η w περιέχει τουλάχιστον ένα a}
αναπαρίσταται από την εξής μηχανή Turing:
Αν η είσοδος δεν περιέχει κανένα σύμβολο a, τότε η μηχανή αυτή κινεί την
κεφαλή της συνεχώς στα δεξιά χωρίς να τερματίζει ποτέ. Αν αντίθετα η
είσοδος περιέχει τουλάχιστον ένα a, τότε μόλις η κεφαλή της μηχανής αυτής
βρεθεί στην πρώτη τέτοια θέση σταματάει.
33
Απλές ιδιότητες αναδρομικών γλωσσών
Θεώρημα
Κάθε αναδρομική γλώσσα είναι αναδρομικά απαριθμήσιμη.
34
Απλές ιδιότητες αναδρομικών γλωσσών
Θεώρημα
Το συμπλήρωμα L κάθε αναδρομικής γλώσσας L είναι αναδρομική γλώσσα.
35
Επεκτάσεις μηχανών Turing
Επεκτείνοντας τη μηχανή Turing
• Προσθέτουμε ταινίες.
• Προσθέτουμε κεφαλές.
• Επιτρέπουμε η ταινία να εκτείνεται επ’ άπειρον και προς τις δύο
κατευθύνσεις.
• Επιτρέπουμε η ταινία να έχει δύο διαστάσεις.
36
Πολλαπλές ταινίες
Ορισμός
Έστω k > 0. Μία μηχανή Turing k ταινιών M είναι μία πεντάδα (K, Σ, δ, s, H),
όπου τα K, Σ, s, H ορίζονται όπως στην απλή μηχανή Turing, και
δ : (K − H) × Σk → K × (Σ ∪ {←, →})k .
37
Υπολογισμοί με μηχανές πολλαπλών ταινιών
Ορισμός
Έστω M = (K, Σ, δ, s, H) μία μηχανή Turing k ταινιών. Συνολική κατάσταση
της M ονομάζεται κάθε στοιχείο του
38
Αναπαράσταση μηχανών Turing με k ταινίες
39
Παράδειγμα
Τα στάδια λειτουργίας της μηχανής αυτής (με είσοδο w = au) είναι τα εξής:
40
Παράδειγμα
Μία μηχανή Turing δύο ταινιών που προσθέτει δύο αριθμούς σε δυαδική
μορφή είναι η εξής (όπου τα 00, 01, 10, 11 είναι συντομογραφίες για τα
περιεχόμενα στην κεφαλή της πρώτης και της δεύτερης ταινίας):
Η μηχανή αυτή μεταφέρει πρώτα τον πρώτο αριθμό στη δεύτερη ταινία και
μετά εκτελεί την πρόσθεση με τον συνηθισμένο τρόπο προσθέτοντας τα
41
αντίστοιχα ψηφία των δύο αριθμών.
Ισοδυναμία μηχανής Turing k ταινιών με πρότυπη μηχανή Turing
Θεώρημα
Έστω M = (K, Σ, δ, s, H) μηχανή Turing k ταινιών για κάποιο k > 0. Υπάρχει
πρότυπη μηχανή Turing M′ = (K′ , Σ′ , δ ′ , s′ , H), όπου Σ ⊆ Σ′ , τέτοια ώστε
για κάθε x ∈ Σ∗ , η M με είσοδο x τερματίζει με έξοδο u στην πρώτη ταινία
αν και μόνο αν η M′ με είσοδο x τερματίζει στην ίδια κατάσταση
τερματισμού και με την ίδια έξοδο u στην ταινία της. Επιπλέον, αν η M
τερματίζει με είσοδο x μετά από t βήματα, τότε η M′ τερματίζει με είσοδο x
μετά από πλήθος βημάτων το οποίο είναι O(t(|x| + t)).
42
Απόδειξη
Απόδειξη. Η βασική ιδέα της απόδειξης είναι το ότι μία ταινία αρκεί για να
προσομοιωθούν k ταινίες. Η πρότυπη μηχανή M′ αντί για τα σύμβολα του Σ
θα δουλεύει με σύμβολα του Σ′ = Σ ∪ (Σ × {0, 1})k . Κατά τη λειτουργία της
η M′ σε κάθε θέση της ταινίας της θα έχει μία 2k-άδα στοιχείων
(a1 , b1 , . . . , ak , bk ) η οποία θα κωδικοποιεί τα σύμβολα a1 , a2 , . . . , ak που
υπάρχουν στις k ταινίες της M στην αντίστοιχη θέση, καθώς επίσης και το αν
βρίσκεται σε αυτή τη θέση η κεφαλή της M (ανάλογα με το αν κάθε
b1 , b2 , . . . , bk είναι 0 ή 1).
43
Απόδειξη
44
Απόδειξη
Απόδειξη (συν.).
45
Απόδειξη
Πόρισμα
Οποιαδήποτε συνάρτηση υπολογίζεται, ή οποιαδήποτε γλώσσα
αποφασίζεται ή ημιαποφασίζεται από μία μηχανή Turing k ταινιών,
υπολογίζεται επίσης, αποφασίζεται ή ημιαποφασίζεται, αντίστοιχα, από μία
πρότυπη μηχανή Turing.
46
Άλλες επεκτάσεις μηχανών Turing
47
Παραλλαγές μηχανών Turing
Θεώρημα
Οποιαδήποτε γλώσσα αποφασίζεται ή ημιαποφασίζεται, και οποιαδήποτε
συνάρτηση υπολογίζεται από μηχανές Turing με πολλές ταινίες, κεφαλές,
άπειρες ταινίες δύο κατευθύνσεων ή πολυδιάστατες ταινίες, μπορεί να
αποφασιστεί, ημιαποφασιστεί ή υπολογιστεί, αντίστοιχα από μία πρότυπη
μηχανή Turing.
Παρατήρηση
Πέρα από το να επεκτείνουμε μία μηχανή Turing, μπορούμε και να
περιορίσουμε μερικώς κάποια στοιχεία της χωρίς να πλήξουμε την
υπολογιστική της ισχύ. Για παράδειγμα, είναι εύκολο να δειχθεί ότι μία
μηχανή Turing της οποίας το αλφάβητο έχει μόνο δύο σύμβολα (π.χ. 0 και
1) μπορεί να προσομοιώσει κάθε πρότυπη μηχανή Turing.
48
Μηχανές Turing τυχαίας προσπέλασης
Μηχανές Turing τυχαίας προσπέλασης
49
Περιγραφή μηχανής Turing τυχαίας προσπέλασης
50
Εντολές προγράμματος
Ορισμός
Μία μηχανή Turing τυχαίας προσπέλασης είναι ένα ζεύγος M = (k, Π), όπου
k > 0 είναι το πλήθος των καταχωρητών, και Π = (π1 , π2 , . . . , πp ) το
πρόγραμμα είναι μία πεπερασμένη ακολουθία εντολών τέτοια ώστε η πp
να είναι πάντα η εντολή halt.
Συνολική κατάσταση της M είναι κάθε k + 2-άδα (κ, R0 , R1 , . . . , Rk−1 , T),
όπου
Ορισμός
Έστω M = (k, Π) μηχανή τυχαίας προσπέλασης. Λέμε ότι η συνολική
κατάσταση C = (κ, R0 , R1 , . . . , Rk−1 , T) της M παράγει σε ένα βήμα τη
συνολική κατάσταση C′ = (κ′ , R′0 , R′1 , . . . , R′k−1 , T′ ) αν οι τιμές των
κ′ , R′0 , R′1 , . . . , R′k−1 , T′ προκύπτουν από την εφαρμογή της τρέχουσας
εντολής πκ στα κ, Rj , T. Για παράδειγμα,
53
Κωδικοποίηση αλφαβήτου με φυσικούς αριθμούς
E : Σ → {0, 1, . . . , |Σ| − 1}
54
Υπολογισμός μηχανής Turing τυχαίας προσπέλασης
Ορισμός
Έστω M = (k, Π) μηχανή τυχαίας προσπέλασης. Θεωρούμε ότι αρχική
συνολική κατάσταση της M με είσοδο w = a1 a2 . . . an ∈ (Σ − {⊔})∗ είναι η
(κ, R0 , . . . , Rk−1 , T), όπου κ = 1, R0 = · · · = Rk−1 = 0, και
T = {(1, E(a1 )), (2, E(a2 )), . . . , (n, E(an ))}.
Λέμε ότι η M δέχεται την x ∈ (Σ − {⊔})∗ αν η αρχική συνολική κατάσταση
με είσοδο x παράγει μία τερματισμένη συνολική κατάσταση με R0 = 1, ενώ
λέμε ότι απορρίπτει την x αν παράγει μία τερματισμένη συνολική
κατάσταση με R0 = 0.
55
Υπολογισμός μηχανής Turing τυχαίας προσπέλασης
Ορισμός (συν.)
Έστω Σ0 ⊆ Σ − {⊔} αλφάβητο και έστω L ⊆ Σ∗0 γλώσσα. Λέμε ότι η M
αποφασίζει την L αν για κάθε x ∈ L, η M δέχεται την x, και για κάθε x ∈
/ L, η
M απορρίπτει την x. Λέμε ότι η M ημιαποφασίζει την L αν ισχύει το εξής:
Έστω f : Σ∗0 → Σ∗0 . Λέμε ότι η M υπολογίζει την f αν για κάθε x ∈ Σ∗0 , η
αρχική συνολική κατάσταση με είσοδο x παράγει μία τερματισμένη
συνολική κατάσταση με τα εξής περιεχόμενα στην ταινία:
όπου f(x) = a1 a2 . . . an .
56
Παράδειγμα
57
Παράδειγμα
61
Προσομοίωσης πρότυπης μηχανής Turing
Θεώρημα
Οποιαδήποτε αναδρομική ή αναδρομική απαριθμήσιμη γλώσσα και
οποιαδήποτε αναδρομική συνάρτηση, μπορεί να αποφασιστεί,
ημιαποφασιστεί και υπολογιστεί, αντίστοιχα, από μία μηχανή Turing
τυχαίας προσπέλασης.
62
Προσομοίωσης πρότυπης μηχανής Turing
δ(q, ⊔) = (p, →)
δ(q, a) = (p, ←)
δ(q, b) = (r, ⊔)
δ(q, ▷) = (s, →)
63
Προσομοίωση μηχανής Turing τυχαίας προσπέλασης
Θα δείξουμε τώρα ότι ούτε αυτή η παραλλαγή της πρότυπης μηχανής Turing
έχει μεγαλύτερη υπολογιστική ισχύ.
Θεώρημα
Κάθε γλώσσα που αποφασίζεται ή ημιαποφασίζεται από μία μηχανή Turing
τυχαίας προσπέλασης, και κάθε συνάρτηση που υπολογίζεται από μία
μηχανή Turing τυχαίας προσπέλασης, μπορεί να αποφασιστεί,
ημιαποφασιστεί και υπολογιστεί, αντίστοιχα, από μία πρότυπη μηχανή
Turing. Επιπλέον, αν οι μηχανές τερματίζουν με κάποια είσοδο, τότε το
πλήθος των βημάτων που πραγματοποιεί η πρότυπη μηχανή Turign
φράσσεται από ένα πολυώνυμο ως προς το πλήθος των βημάτων της
μηχανής Turing τυχαίας προσπέλασης με την ίδια είσοδο.
64
Προσομοίωση μηχανής Turing τυχαίας προσπέλασης
• Μία ταινία που χρησιμοποιείται μόνο για την ανάγνωση της εισόδου
(και στην οποία γράφεται η έξοδος στην περίπτωση που η M υπολογίζει
μία συνάρτηση).
• Μία ταινία στην οποία περιέχεται κωδικοποιημένη η τρέχουσα
κατάσταση της ταινίας T της M (με τη μορφή συμβολοσειρών της
μορφής (n, m), όπου n και m είναι σε δυαδική μορφή).
• k ταινίες που περιέχουν τις τιμές των k καταχωρητών R0 , . . . , Rk−1 της M
σε δυαδική μορφή.
Παρατήρηση
Αφού η ∆ είναι σχέση, για κάθε συνολική κατάσταση C μπορεί να
υπάρχουν πολλές συνολικές καταστάσεις C′ τέτοιες ώστε C ⊢M C′ .
67
Ημιαποφασισιμότητα
Ορισμός
Έστω M = (K, Σ, ∆, s, H) μη ντετερμινιστική μηχανή Turing. Η M δέχεται μία
είσοδο w ∈ (Σ − {▷, ⊔})∗ αν για κάποια h ∈ H, a ∈ Σ και u, v ∈ Σ∗ ,
Παρατήρηση
Μία ντετερμινιστική μηχανή δέχεται μία είσοδο αν υπάρχει τουλάχιστον
ένας υπολογισμός της που να τερματίζει (ακόμα κι αν όλοι οι υπόλοιποι
δεν τερματίζουν).
68
Αποφασισιμότητα
Ορισμός
Έστω M = (K, Σ, ∆, s, {y, n}) μη ντετερμινιστική μηχανή Turing. Η M
αποφασίζει μία γλώσσα L ⊆ (Σ − {▷, ⊔})∗ αν για κάθε w ∈ (Σ − {▷, ⊔})∗ ,
(i) υπάρχει φυσικός N που εξαρτάται από την M και την w έτσι ώστε να μην
υπάρχει συνολική κατάσταση C για την οποία (s, ▷⊔w) ⊢NM C.
(ii) w ∈ L αν και μόνο αν (s, ▷⊔w) ⊢∗M (y, uav) για κάποια u, v ∈ Σ∗ , a ∈ Σ.
Παρατήρηση
Το N του ορισμού αποτελεί ένα άνω φράγμα στα βήματα που απαιτούνται
για να αποφασίσει η M αν w ∈ L. Αυτό αποτελεί μία σοβαρή διαφορά στον
ορισμό της αποφασισιμότητας σε σχέση με την ντετερμινιστική μηχανή
Turing.
69
Υπολογισιμότητα
Ορισμός
Έστω M = (K, Σ, ∆, s, {y, n}) μη ντετερμινιστική μηχανή Turing. Η M
υπολογίζει μία συνάρτηση f : (Σ − {▷, ⊔})∗ → (Σ − {▷, ⊔})∗ αν για κάθε
w ∈ (Σ − {▷, ⊔})∗ ,
(i) υπάρχει φυσικός N που εξαρτάται από την M και την w έτσι ώστε να μην
υπάρχει συνολική κατάσταση C για την οποία (s, ▷⊔w) ⊢NM C.
(ii) (s, ▷⊔w) ⊢∗M (y, uav) αν και μόνο αν ua = ▷⊔ και v = f(w).
Παρατήρηση
Όπως και πριν, το N αποτελεί ένα άνω φράγμα στα βήματα που
απαιτούνται για να υπολογιστεί η f. Για να υπολογίζει η M την f, πρέπει όλοι
οι υπολογισμοί να οδηγούν σε ίδια έξοδο.
70
Παράδειγμα
71
Παράδειγμα
Το N εξαρτάται μόνο από την M και την είσοδο n (για την ακρίβεια, το
μέγεθος της), επομένως η M αποφασίζει τη γλώσσα C.
72
Προσομοίωση μη ντετερμινιστικής μηχανής από ντετερμινιστική
Θεώρημα
Αν μία μη ντετερμινιστική μηχανή Turing M αποφασίζει ή ημιαποφασίζει
μία γλώσσα ή υπολογίζει μία συνάρτηση, τότε υπάρχει πρότυπη μηχανή
Turing M′ που αποφασίζει ή ημιαποφασίζει την ίδια γλώσσα ή υπολογίζει
την ίδια συνάρτηση.
73
Προσομοίωση μη ντετερμινιστικής μηχανής από ντετερμινιστική
74
Προσομοίωση μη ντετερμινιστικής μηχανής από ντετερμινιστική
1. Η πρώτη ταινία περιέχει την είσοδο της M, ενώ η δεύτερη περιέχει μία
συμβολοσειρά i1 i2 . . . in ∈ {1, . . . , r}∗ . Η συμβολοσειρά i1 i2 . . . in
κωδικοποιεί το μονοπάτι συνδυασμών κατάστασης-ενέργειας το οποίο
εξετάζει η Md .
2. Στο πρώτο βήμα, η Md ενεργεί σύμφωνα με τον συνδυασμό i1 , δηλαδή
μεταξύ των πιθανών συνδυασμών κατάστασης-ενέργειας
(p1 , b1 ), . . . , (pr , br ) που μπορούν να εφαρμοστούν στην αρχική
συνολική κατάσταση, η Md επιλέγει την (pi1 , bi1 ). Αφού το κάνει αυτό, η
Md μετακινεί την κεφαλή της δεύτερης ταινίας μία θέση δεξιά. Στο
επόμενο βήμα, η Md ενεργεί σύμφωνα με τον συνδυασμό i2 , μετά με τον
i3 , κ.ο.κ. Μετά από n βήματα, η Md τερματίζει.
75
Προσομοίωση μη ντετερμινιστικής μηχανής από ντετερμινιστική
1. Η πρώτη ταινία περιέχει πάντα την αρχική είσοδο και δεν μεταβάλλεται
ποτέ.
2. Η δεύτερη και η τρίτη ταινία χρησιμοποιούνται από την Md . Κάθε φορά
που καλείται η Md να εκτελέσει την προσομοίωση ενός υπολογισμού, η
είσοδος αντιγράφεται από την πρώτη στη δεύτερη ταινία (έτσι ώστε
κάθε φορά η Md να ξεκινάει από την αρχική είσοδο τους υπολογισμούς
της). Η τρίτη ταινία περιέχει αρχικά την κενή συμβολοσειρά. Η τρίτη
ταινία περιέχει κάθε φορά μία συμβολοσειρά i1 i2 . . . in ∈ {1, . . . , r}∗ που
κωδικοποιεί το μονοπάτι κατάστασης-ενέργειας που εξετάζει η Md .
3. Κάθε φορά που η Md τελειώνει την προσομοίωση της, η M′ , γράφει στη
δεύτερη ταινία την αμέσως επόμενη λεξικογραφικά συμβολοσειρά του
{1, . . . , r}∗ . Ας συμβολίσουμε με B τη μηχανή Turing που ενεργεί κατ’
αυτό τον τρόπο.
76
Προσομοίωση μη ντετερμινιστικής μηχανής από ντετερμινιστική
όπου C1→2 είναι η μηχανή Turing που αντιγράφει την πρώτη ταινία στη
δεύτερη, B3 είναι η μηχανή Turing που γράφει στην τρίτη ταινία την αμέσως
επόμενη λεξικογραφικά συμβολοσειρά του {1, . . . , r}∗ , και M2,3
d είναι η Md
που λειτουργεί στις ταινίες 2 και 3 της M.
Είναι εύκολο να δειχθεί ότι η M′ τερματίζει σε μία είσοδο αν και μόνο αν η M
τερματίζει στην ίδια είσοδο. Αυτό συμβαίνει γιατί η B παράγει όλους τους
πιθανούς συνδυασμούς κατάστασης-ενέργειας.
Παρατήρηση
Το πλήθος των βημάτων που απαιτούνται από την M′ για να τερματίσει
είναι εκθετικό ως προς το μέγεθος της εισόδου. Επομένως, η
προσομοίωση επιτυγχάνεται με πολύ μεγάλο υπολογιστικό κόστος.
77
Παραλλαγές της μη ντετερμινιστής μηχανής Turing
78