You are on page 1of 33

Θεωρία Υπολογισμού

Μη επιλυσιμότητα

Παναγιώτης Ρουβέλας
22 Ιανουαρίου 2022

Τμήμα Μηχανικών Πληροφορικής και Υπολογιστών, Πανεπιστήμιο Δυτικής Αττικής


Η θέση των Church-Turing
Η θέση των Church-Turing

Το βασικό ερώτημα το οποίο μας απασχόλησε μέχρι τώρα ήταν το


τι είναι αλγόριθμος;

Για το λόγο αυτό, εισάγαμε σταδιακά όλο και πιο ισχυρά υπολογιστικά
μοντέλα καταλήγοντας σε αυτό της μηχανής Turing.
Στη συνέχεια, δείξαμε ότι ουσιαστικά η μηχανή Turing αποτελεί το
ισχυρότερο υπολογιστικό μοντέλο αφού οποιαδήποτε (ρεαλιστική)
παραλλαγή της δεν είναι ισχυρότερη υπολογιστικά.

1
Η θέση των Church-Turing

Σύμφωνα με τον Turing,


«μία συνάρτηση είναι υπολογίσιμη αν οι τιμές της μπορούν να βρε-
θούν με κάποια καθαρά μηχανική διαδικασία».
Αφού, λοιπόν, το ισχυρότερο υπολογιστικό μοντέλο που περιγράφει μία
μηχανική διαδικασία (δηλαδή έναν αλγόριθμο) είναι αυτό της μηχανής
Turing, είναι λογικό να θεωρήσουμε ότι

Θέση των Church-Turing


Μία συνάρτηση στους φυσικούς αριθμούς είναι αλγοριθμικά υπολογίσιμη
αν είναι υπολογίσιμη από μία μηχανή Turing.

2
Τα όρια της υπολογισιμότητας

Όπως είδαμε, οι υπολογιστικές δυνατότητες των πεπερασμένων αυτομάτων


είναι περιορισμένες. Το ίδιο και των αυτομάτων στοίβας. Οι μηχανές Turing
είναι σαφώς ισχυρότερες. Ποια είναι όμως τα όρια της υπολογιστικής ισχύς
τους;
Οι μηχανές Turing (όπως τα αυτόματα) είναι πεπερασμένα μαθηματικά
αντικείμενα τα οποία μπορούν να αναπαρασταθούν πλήρως από
συμβολοσειρές κάποιου πεπερασμένου αλφαβήτου (το πως ακριβώς μπορεί
να γίνει αυτό θα ξεκαθαριστεί στη συνέχεια), επομένως αφού υπάρχουν
αριθμήσιμου πλήθους τέτοιες συμβολοσειρές, υπάρχουν αριθμήσιμου
πλήθους αναδρομικές και αναδρομικά απαριθμήσιμες γλώσσες (ως προς
κάθε αλφάβητο).
Αυτό σημαίνει ότι υπάρχουν σίγουρα γλώσσες που δεν είναι αναδρομικά
απαριθμήσιμες (κι επομένως ούτε αναδρομικές).

3
Μη επιλυσιμότητα

Σύμφωνα με τη θέση των Church-Turing, όμως, τα όρια των μηχανών Turing


συνιστούν και τα όρια της υπολογισιμότητας (από κάποιον αλγόριθμο).
Επομένως, υπάρχουν προβλήματα που δεν μπορούν να επιλυθούν με
κανέναν τρόπο αλγοριθμικά.
Τι είδους προβλήματα όμως είναι αυτά; Ο στόχος μας στην ενότητα αυτή
είναι να εντοπίσουμε τέτοια προβλήματα και να δείξουμε ότι είναι μη
επιλύσιμα από μηχανές Turing.
Όπως θα δούμε, ο τρόπος προσέγγισης διαφέρει πολύ από αυτόν που είχαμε
χρησιμοποιήσει στα αυτόματα (δηλαδή τα θεωρήματα άντλησης).

4
Καθολικές μηχανές Turing
Κωδικοποιώντας μηχανές Turing

Όπως αναφέραμε, οι μηχανές Turing ως πεπερασμένα μαθηματικά


αντικείμενα μπορούν να αναπαρασταθούν από συμβολοσειρές κάποιου
προκαθορισμένου αλφαβήτου. Ας δούμε έναν τρόπο με τον οποίο μπορεί να
γίνει αυτό.
Έστω μηχανή Turing M = (K, Σ, δ, s, H). Έστω i ∈ N έτσι ώστε

2i ≥ |K|.

Κάθε κατάσταση της M αναπαρίσταται από μία συμβολοσειρά της μορφής (i


ψηφία αρκούν για να κωδικοποιηθούν όλες οι καταστάσεις)

qu1 u2 . . . ui ,

όπου u1 , . . . , ui ∈ {0, 1}. Θα θεωρούμε ότι η αρχική κατάσταση


αναπαρίσταται από την q0i .
Συμβολίζουμε με «p» τη συμβολοσειρά που αναπαριστά την κατάσταση p.

5
Κωδικοποιώντας μηχανές Turing

Έστω j ∈ N έτσι ώστε


2j ≥ |Σ| + 2.
Όπως και πριν, κάθε σύμβολο του Σ ∪ {←, →} από μία συμβολοσειρά της
μορφής (j ψηφία αρκούν για να κωδικοποιηθούν όλες οι καταστάσεις)

au1 u2 . . . uj ,

όπου u1 , . . . , uj ∈ {0, 1}.


Θα θεωρούμε ότι τα σύμβολα ⊔, ▷, ←, → αναπαρίστανται αντίστοιχα από τις
a0j , a0j−1 1, a0j−2 10, a0j−2 11.
Κάθε συμβολοσειρά w ∈ (Σ ∪ {←, →})∗ λοιπόν αναπαρίσταται από μία
συμβολοσειρά του αλφαβήτου {a}{0, 1}∗ που θα συμβολίζουμε με «w».

6
Κωδικοποιώντας μηχανές Turing

H συνάρτηση μετάβασης δ μπορεί να αναπαρασταθεί ως μία ακολουθία


συμβολοσειρών (χωρισμένων από κόμματα) της μορφής

(«q», «a», «p», «b»)

όπου δ(q, a) = (p, b). Θα θεωρούμε ότι τα στοιχεία της ακολουθίας αυτής
που αναπαριστά τη δ βρίσκονται σε αύξουσα λεξικογραφική σειρά
ξεκινώντας από το στοιχείο που αντιστοιχεί στην δ(s, ⊔).
Η αναπαράσταση της δ αρκεί για να αναπαρασταθεί η M, αφού το σύνολο H
καθορίζεται έμμεσα ως το σύνολο {q ∈ K : («q», «a», «p», «b») ∈
/ «M»}.
Συμβολίζουμε λοιπόν με «M» την αναπαράσταση της δ.
Όταν H = {y, n}, θα θεωρούμε ότι η y είναι η λεξικογραφικά μικρότερη από
τις δύο καταστάσεις τερματισμού.

7
Παράδειγμα

Έστω μηχανή Turing M = (K, Σ, δ, s, {h}), όπου K = {s, q, h}, Σ = {⊔, ▷, a}


και η δ ορίζεται ως εξής:

Κατάσταση Σύμβολο δ
s a (q, ⊔)
s ⊔ (h, ⊔)
s ▷ (s, →)
q a (s, a)
q ⊔ (s, →)
q ▷ (q, →)

8
Παράδειγμα

Έχουμε |K| = 3 και |Σ| = 2, άρα για i = 2 και j = 3, έχουμε 2i ≥ 3 και


2j ≥ 3 + 2 = 5. Οι καταστάσεις της M και τα σύμβολα του Σ ∪ {←, →}
αναπαρίστανται ως

Κατάσταση/σύμβολο Αναπαράσταση
s q00
q q01
h q11
⊔ a000
▷ a001
← a010
→ a011
a a100

Έχουμε « ▷ aa⊔a» = a001a100a100a000a100. Επίσης, έχουμε

«M» = (q00, a100, q01, a000), (q00, a000, q11, a000), (q00, a001, q00, a011),
(q01, a100, q00, a011), (q01, a000, q00, a011), (q01, a001, q01, 011).

9
Καθολική μηχανή Turing

Ορισμός
Καθολική μηχανή Turing U ονομάζουμε μία μηχανή Turing η οποία όταν
δέχεται ως είσοδο τη συμβολοσειρά «M»«w», όπου M μία οποιαδήποτε
μηχανή Turing και w μία οποιαδήποτε συμβολοσειρά του αλφαβήτου της
M, έχει έξοδο «M(w)», δηλαδή ισχύει

U(«M»«w») = «M(w)».

Επομένως η U τερματίζει με είσοδο «M»«w» αν και μόνο αν η M τερματίζει


με είσοδο w.

Παρατήρηση
Δεν έχει σημασία με ποιο τρόπο χειρίζεται η U μία είσοδο που δεν είναι της
μορφής «M»«w».

10
Περιγραφή λειτουργίας καθολικής μηχανής Turing

Ας ορίσουμε μία καθολική μηχανή Turing U. Αρκεί να ορίσουμε μία μηχανή


Turing U′ πολλαπλών ταινιών με την ίδια λειτουργία. Η U′ έχει τρεις ταινίες:

• Η πρώτη ταινία θα περιέχει την κωδικοποίηση των τρεχόντων


περιεχομένων της ταινίας της M.
• Η δεύτερη θα περιέχει την κωδικοποίηση της M, δηλαδή την «M».
• Η τρίτη θα περιέχει την κωδικοποίηση της τρέχουσας κατάστασης της
M, δηλαδή μία «q» για κάποια κατάσταση q της M.

11
Περιγραφή λειτουργίας καθολικής μηχανής Turing

Η μηχανή U′ αρχικά μεταφέρει την «M» στη δεύτερη ταινία και μετακινεί την
«w» στο αριστερό άκρο της πρώτης. Έπειτα, γράφει την «s» στην τρίτη
ταινία.
Στη συνέχεια, η U′ προσομοιώνει βήμα προς βήμα τη λειτουργία της M ως
εξής:

• Κάθε φορά που τελειώνει η προσομοίωση ενός βήματος, επιστρέφει τις


κεφαλές της δεύτερης και της τρίτης ταινίας στο αριστερό τους άκρο. Η
κεφαλή της πρώτης ταινίας βρίσκεται κάθε φορά στο πρώτο σύμβολο
του κωδικοποιημένου συμβόλου στο οποίο βρίσκεται η κεφαλή της
προσομοιωμένης μηχανής «M».

12
Περιγραφή λειτουργίας καθολικής μηχανής Turing

• Η U′ σαρώνει τη δεύτερη ταινία μέχρι να εντοπίσει μία τετράδα


(«q», «a», «p», «b») τέτοια ώστε η «q» να βρίσκεται στην τρίτη ταινία
και η αρχή της «a» να βρίσκεται στην κεφαλή της πρώτης ταινίας. Αφού
τη βρει, γράφει «p» στην τρίτη ταινία και εκτελεί στην πρώτη ταινία τη
λειτουργία που θα εκτελούσε η M. Αν για παράδειγμα, η M γράφει
κάποιο σύμβολο b στην ταινία, τότε η U′ γράφει το αντίστοιχο «b» στην
πρώτη ταινία. Αν η «M» μετακινεί την κεφαλή μία θέση αριστερά, τότε η
U′ μετακινεί την κεφαλή της πρώτης ταινίας στην αρχή του
προηγούμενου κωδικοποιημένου συμβόλου, δηλαδή στο πρώτο a στα
αριστερά. Ομοίως για τις άλλες περιπτώσεις.
• Αν σε κάποιο βήμα, η U′ δεν καταφέρει να εντοπίσει μία τετράδα
(«q», «a», «p», «b») τέτοια ώστε η «q» να βρίσκεται στην τρίτη ταινία,
τότε τερματίζει.

13
Το πρόβλημα του τερματισμού
Η γλώσσα H

Γνωρίζουμε ότι υπάρχουν γλώσσες που δεν είναι αναδρομικές. Όμως, δεν
έχουμε ορίσει ακόμα κάποιο συγκεκριμένο παράδειγμα.

Ορισμός
Ορίζουμε τη γλώσσα

H = {«M»«w» : η M τερματίζει με είσοδο w}.

Θεώρημα
Η H είναι αναδρομικά απαριθμήσιμη.

Απόδειξη. Η καθολική μηχανή Turing U ημιαποφασίζει την H αφού εξ


ορισμού η U τερματίζει με είσοδο «M»«w» ακριβώς όταν η M τερματίζει με
είσοδο w.

14
Η γλώσσα H

Θεώρημα
Η H δεν είναι αναδρομική.

Απόδειξη. Η απόδειξη είναι ένα χαρακτηριστικό παράδειγμα διαγώνιου


επιχειρήματος. Έστω ότι η H είναι αναδρομική. Έστω M0 μηχανή Turing που
αποφασίζει την H. Έστω

H1 = {«M» : η M τερματίζει με είσοδο «M»}.

Η H1 είναι αναδρομική αφού αποφασίζεται από τη μηχανή Turing M1 που


ορίζεται ως εξής (με είσοδο w): η M1 μετασχηματίζει την ταινία ▷⊔w σε
▷⊔ww, και συνεχίζει λειτουργώντας ως η M0 με είσοδο ww.

15
Η γλώσσα H

Απόδειξη (συν.). Αφού η H1 είναι αναδρομική, πρέπει και το συμπλήρωμα


της να είναι αναδρομική γλώσσα:

H1 = {«w» : είτε η w δεν είναι κωδικοποίηση μηχανής Turing


είτε είναι κωδικοποίηση «M» μηχανής Turing M
που δεν τερματίζει με είσοδο «M»}.

Δείχνουμε ότι η H1 δεν είναι αναδρομικά απαριθμήσιμη και επομένως δεν


είναι αναδρομική. Έστω μηχανή Turing M∗ που ημιαποφασίζει την H1 .
Έχουμε ότι
η M∗ δεν τερματίζει με είσοδο «M∗ » ⇔ «M∗ » ∈ H1
⇔ η M∗ τερματίζει με είσοδο «M∗ »
Άτοπο.
Πόρισμα
Η κλάση των αναδρομικά απαριθμήσιμων γλωσσών δεν είναι κλειστή ως
προς το συμπλήρωμα.

16
Παρατηρήσεις

Δείξαμε ότι το παρακάτω πρόβλημα είναι μη επιλύσιμο, δηλαδή δεν υπάρχει


αλγόριθμος που για κάθε είσοδο να δίνει απάντηση στο ερώτημα (ή πιο
αυστηρά, δεν υπάρχει μηχανή Turing που να αποφασίζει τη γλώσσα H που
ορίζει).

Το πρόβλημα του τερματισμού


Δεδομένης μίας μηχανής Turing M και συμβολοσειράς εισόδου w, δέχεται η
M την w;

Παρατήρηση
Το γεγονός ότι δεν υπάρχει αλγόριθμος να απαντάει στο παραπάνω
ερώτημα δεν σημαίνει ότι δεν υπάρχει αλγόριθμος που να απαντάει το
ερώτημα για συγκεκριμένες μηχανές Turing.

17
Άλλα μη επιλύσιμα προβλήματα
Αναγωγή

Η απόδειξη της μη αναδρομικότητας της H βασίστηκε σε ένα διαγώνιο


επιχείρημα. Βασισμένοι στο αποτέλεσμα αυτό μπορούμε μέσω αναγωγών να
αποδείξουμε τη μη αναδρομικότητα πολλών ακόμα γλωσσών.
Ορισμός
Έστω L1 , L2 ⊆ Σ∗ δύο γλώσσες. Αναγωγή από την L1 στην L2 ονομάζουμε
κάθε αναδρομική συνάρτηση τ : Σ∗ → Σ∗ για την οποία ισχύει

x ∈ L1 ⇔ τ (x) ∈ L2 .

Θεώρημα
Αν η L1 δεν είναι αναδρομική, και υπάρχει αναγωγή από την L1 στην L2 ,
τότε η L2 δεν είναι αναδρομική.

Απόδειξη. Έστω ότι η L2 είναι αναδρομική. Τότε, αποφασίζεται από μία


μηχανή Turing M2 . Έστω T μηχανή Turing που υπολογίζει την τ . Η μηχανή
Turing TM2 προφανώς αποφασίζει την L1 , άρα η L1 είναι αναδρομική,
άτοπο.
18
Παραδείγματα μη επιλύσιμων προβλημάτων

Θεώρημα
Το παρακάτω πρόβλημα είναι μη επιλύσιμο:
Δεδομένης μηχανής Turing M, τερματίζει η M με κενή είσοδο;

Απόδειξη. Έστω L = {«M» : η M τερματίζει με κενή είσοδο}. Ορίζουμε


τ : H → L έτσι ώστε για κάθε μηχανή Turing M και συμβολοσειρά
w = a1 . . . an ,
τ («M»«w») = «Mw »,
όπου Mw η μηχανή Turing Ra1 Ra2 . . . Ran L⊔ M. Προφανώς, η τ είναι
αναδρομική συνάρτηση (είναι εύκολο να οριστεί μηχανή Turing που την
υπολογίζει) και ισχύει
«M»«w» ∈ H ⇔ η M τερματίζει με είσοδο w
⇔ η Mw τερματίζει με κενή είσοδο
⇔ «Mw » ∈ L
⇔ τ («M»«w») ∈ L.
Επομένως, η τ είναι αναγωγή της H στην L. Άρα, η L δεν είναι αναδρομική,
19
δηλαδή το αντίστοιχο πρόβλημα είναι μη επιλύσιμο.
Παραδείγματα μη επιλύσιμων προβλημάτων

Θεώρημα
Το παρακάτω πρόβλημα είναι μη επιλύσιμο:
Δεδομένης μηχανής Turing M, υπάρχει συμβολοσειρά για την οποία
τερματίζει η M;

Απόδειξη. Έστω L η γλώσσα του προηγούμενου θεωρήματος και έστω


L1 = {«M» : η M τερματίζει για κάποια είσοδο}.
Ορίζουμε τ : L → L1 έτσι ώστε για κάθε μηχανή Turing M,
τ («M») = «M′ M»,
όπου M′ η μηχανή Turing που διαγράφει την είσοδο της (και επιστρέφει την
κεφαλή στην αρχική θέση). Η τ είναι αναγωγή της L στην L1 αφού είναι
αναδρομική συνάρτηση και ισχύει
«M» ∈ L ⇔ η M τερματίζει με κενή είσοδο
⇔ η M′ M τερματίζει για κάποια είσοδο
⇔ τ («M») ∈ L1 .
20
Επομένως, η L1 δεν είναι αναδρομική.
Παραδείγματα μη επιλύσιμων προβλημάτων

Θεώρημα
Το παρακάτω πρόβλημα είναι μη επιλύσιμο:
Δεδομένης μηχανής Turing M, τερματίζει η M για κάθε είσοδο;

Απόδειξη. Έστω L όπως πριν και έστω

L2 = {«M» : η M τερματίζει για κάθε είσοδο}.

Ορίζουμε τ : L → L2 όπως και πριν. Η τ είναι αναγωγή της L στην L2 αφού


είναι αναδρομική συνάρτηση και ισχύει

«M» ∈ L ⇔ η M τερματίζει με κενή είσοδο


⇔ η M′ M τερματίζει για κάθε είσοδο
⇔ τ («M») ∈ L2 .

Επομένως, η L2 δεν είναι αναδρομική.

21
Παραδείγματα μη επιλύσιμων προβλημάτων

Θεώρημα
Το παρακάτω πρόβλημα είναι μη επιλύσιμο:
Δεδομένων δύο μηχανών Turing M1 και M2 , τερματίζουν με τις ίδιες
εισόδους;

Απόδειξη. Έστω L2 όπως πριν και έστω


L3 = {«M1 »«M2 » : οι M1 , M2 τερματίζουν με τις ίδιες εισόδους}.
Ορίζουμε τ : L → L3 έτσι ώστε για κάθε μηχανή Turing M,
τ («M») = «M»«y»,
όπου y η μηχανή Turing που δέχεται άμεσα κάθε είσοδο. Η τ είναι αναγωγή
της L2 στην L3 αφού είναι αναδρομική συνάρτηση και ισχύει
«M» ∈ L2 ⇔ η M τερματίζει για κάθε είσοδο
⇔ οι M, y τερματίζουν με τις ίδιες εισόδους
⇔ τ («M») ∈ L3 .

Επομένως, η L3 δεν είναι αναδρομική.


22
Παραδείγματα μη επιλύσιμων προβλημάτων

Θεώρημα
Το παρακάτω πρόβλημα είναι μη επιλύσιμο:
Δεδομένης μίας μηχανής Turing M, είναι η γλώσσα που ημιαποφασίζει
η M κανονική (αντίστοιχα, χωρίς συμφραζόμενα ή αναδρομική);

Απόδειξη. Δείξαμε ότι η L = {«M» : η M τερματίζει με κενή είσοδο} δεν είναι


αναδρομική, οπότε το συμπλήρωμα της L δεν μπορεί να είναι αναδρομική.
Έστω L4 = {«M» : η L(M) είναι κανονική} (ομοίως για τις άλλες
περιπτώσεις).
Ορίζουμε τ : L → L4 έτσι ώστε για κάθε μηχανή Turing M,
τ («M») = «M′ »,
όπου M′ η μηχανή Turing που λειτουργεί ως εξής:
1. Πρώτα αποθηκεύει την είσοδο της και λειτουργεί όπως η M με κενή
είσοδο.
2. Αφού η M τερματίσει, επαναφέρει την είσοδο της και λειτουργεί όπως η
καθολική μηχανή Turing U με την είσοδο αυτή.
23
Παραδείγματα μη επιλύσιμων προβλημάτων

Απόδειξη (συν.). Παρατηρούμε ότι ισχύει

η M′ τερματίζει με είσοδο w ⇔ w ∈ H και «M» ∈ L.

Άρα, L(M′ ) = ∅ ή L(M′ ) = H.


Η τ είναι αναγωγή της L στην L4 αφού είναι αναδρομική συνάρτηση και

τ («M») ∈ L4 ⇔ «M′ » ∈ L4
⇔ η L(M′ ) είναι κανονική
⇔ L(M′ ) = ∅
⇔ η M′ δεν τερματίζει για καμία είσοδο w
⇔ για κάθε w, w ∈
/ H ή «M» ∈
/L
⇔ «M» ∈
/L
⇔ «M» ∈ L.

Επομένως, η L4 δεν είναι αναδρομική.

24
Ιδιότητες των αναδρομικών γλωσσών
Αναδρομικές αναδρομικά απαριθμήσιμες γλώσσες

Είδαμε ότι η γλώσσα H είναι μία αναδρομικά απαριθμήσιμη γλώσσα η οποία


δεν είναι αναδρομική. Ποιες αναδρομικά απαριθμήσιμες γλώσσες όμως είναι
αναδρομικές;

Θεώρημα
Μία γλώσσα είναι αναδρομική αν και μόνο αν και αυτή και το συμπλήρωμα
της είναι αναδρομικά απαριθμήσιμες.

Απόδειξη. (⇒) Προφανώς, κάθε αναδρομική γλώσσα είναι αναδρομικά


απαριθμήσιμη. Επιπλέον, το συμπλήρωμα της είναι αναδρομική γλώσσα,
οπότε και το συμπλήρωμα της είναι αναδρομικά απαριθμήσιμη γλώσσα.

25
Αναδρομικές αναδρομικά απαριθμήσιμες γλώσσες

Απόδειξη (συν.). (⇐) Έστω αναδρομικά απαριθμήσιμη γλώσσα L με


αναδρομικά απαριθμήσιμο συμπλήρωμα L. Έστω M1 και M2 μηχανές Turing
που ημιαποφασίζουν τις L και L αντίστοιχα.
Ορίζουμε μηχανή Turing M δύο ταινιών που λειτουργεί ως εξής:

1. Αντιγράφει την πρώτη ταινία στη δεύτερη και επιστρέφει τις κεφαλές
στις αρχικές τους θέσεις.
2. Σε κάθε βήμα, προσομοιώνει παράλληλα ένα βήμα της M1 (στην πρώτη
ταινία) και ένα της M2 (στη δεύτερη ταινία).
3. Όταν τερματίσει η M1 , απαντάει με y και τερματίζει, ενώ όταν τερματίσει
η M2 , απαντάει με n και τερματίζει.

Αφού για κάθε συμβολοσειρά x ισχύει x ∈ L ή x ∈ L, γνωρίζουμε ότι κάποια


από τις M1 , M2 θα τερματίσει κάποτε. Επομένως, η M είναι αποφασίζει την
L.

26
Ακόμα περισσότερα παραδείγματα μη επιλύσιμων προβλημάτων

Θα πρέπει να έχει γίνει αρκετά σαφές ως τώρα ότι πέρα από κάποιες απλές
περιπτώσεις τα προβλήματα της εξής μορφής είναι συνήθως μη επιλύσιμα:
Δεδομένης μία μηχανής Turing M, ισχύει ότι η L(M) έχει κάποιες συ-
γκεκριμένες ιδιότητες (π.χ. είναι κανονική);

Το επόμενο θεώρημα επιβεβαιώνει αυτή τη διαίσθηση.

Θεώρημα του Rice


Έστω C ένα γνήσιο μη κενό υποσύνολο της κλάσης όλων των αναδρομικά
απαριθμήσιμων γλωσσών. Τότε, το ακόλουθο πρόβλημα είναι μη επιλύσιμο:
Δεδομένης μίας μηχανής Turing M, ισχύει ότι L(M) ∈ C;

27

You might also like