Μηχανές Turing (Turing Machines)

Οι μηχανές turing έχουν κοινά χαρακτηριστικά με τα πεπερασμένα αυτόματα αλλά και σημαντικές διαφορές.

Ισχύουν τα παρακάτω

  • Κάθε υπολογισμός που μπορεί να εκτελεστεί με μηχανικά μέσα μπορεί να αποδοθεί με μια μηχανή Turing.
  • Δεν υπάρχει αλγόριθμος για επιλύσιμο πρόβλημα που δεν μπορεί να απδοθεί από μια μηχανή Turing
  • Η μηχανή Turing είναι μια ντετερμινιστική μηχανή
  • Μια γλώσσα L λέγεται Αναδρομικά Απαριθμήσιμη Γλώσσα (Recursevily Enumerable) αν υπάρχει μηχανή Turing που την κάνει αποδεκτή. Οι γλώσσες αυτές είναι τύπου 0 σύμφωνα με τον Τσόμσκι.
  • Διαθέτει μνήμη και θυμάται μεγάλες σειρές από εισόδους (input)
  • Η μνήμη που διαθέτει είναι απεριόριστη

Τυπικός ορισμός

Μια μηχανή Turing ορίζεται ως μία πλειάδα επτά (7) στοιχείων: P = (K, Σ, s, F, δ, Γ, b) όπου:

  • K (ή Q) είναι ένα πεπερασμένο σύνολο καταστάσεων
  • Σ είναι ένα αλφάβητο (πεπερασμένο σύνολο συμβόλων)
  • s ή (q0) ∈ K είναι η αρχική κατάσταση
  • F ⊆ K είναι το σύνολο των τελικών καταστάσεων. Έχουμε καταστάσεις αποδοχής (accept states) και καταστάσεις απόρριψης (reject states).
  • δ είναι μια σχέση μετάβασης (ΚxΣ → ΚxΓx(R|L))
  • Γ είναι ένα πεπερασμένο σύνολο συμβόλων ταινίας
  • b είναι το κενό σύμβολο b ∉ Σ

Μια σχέση μετάβασης μπορεί να έχει την εξής μορφή: δ(q0, a) → (q1, y, R) όπου:

  • q0, q1 καταστάσεις από το σύνολο Κ (ή Q)
  • a σύμβολο από το αλφάβητο Σ
  • y σύμβολο από το αλφάβητο Γ
  • R Right (μετακίνηση δεξιά ή αριστερά αν έχουμε L)

Σε ένα διάγραμμα η τελική κατάσταση απόρριψης μπορεί να παραληφθεί.

Να σχεδιαστεί μηχανή Turing που να αναγνωρίζει τη γλώσσα που παράγεται από την έκφραση: R = 01*0. Θεωρείται ότι Σ = {0, 1}.

turing machine

Οι συμβολισμοί όπως 0→X, R μπορούν να γραφούν και ως 0, X, R για συντομία.

Για την παραπάνω μηχανή turing να ελέγξετε αν η συμβολοσειρά 0110 είναι αποδεκτή. Να σχεδιαστεί η καταγραφή της ταινίας για κάθε μετάβαση.

Να σχεδιαστεί μηχανή Turing που να αναγνωρίζει τη γλώσσα που παράγεται από την έκφραση: R = 0n1n. Θεωρείται ότι Σ = {0, 1}.

turing machine

Για την παραπάνω μηχανή turing να ελέγξετε αν η συμβολοσειρά 00001111 είναι αποδεκτή. Να σχεδιαστεί η καταγραφή της ταινίας για κάθε μετάβαση.