Présentation de la machine de Turing

Une machine de Turing est un appareil accepteur qui accepte les langues (ensemble récursivement énumérable) générées par les grammaires de type 0. Il a été inventé en 1936 par Alan Turing.

Définition

Une machine de Turing (TM) est un modèle mathématique qui consiste en une bande de longueur infinie divisée en cellules sur lesquelles une entrée est donnée. Il se compose d'une tête qui lit la bande d'entrée. Un registre d'état stocke l'état de la machine de Turing. Après avoir lu un symbole d'entrée, il est remplacé par un autre symbole, son état interne est modifié et il se déplace d'une cellule vers la droite ou la gauche. Si la TM atteint l'état final, la chaîne d'entrée est acceptée, sinon rejetée.

Un TM peut être formellement décrit comme un 7-tuple (Q, X, ∑, δ, q 0 , B, F) où -

  • Q est un ensemble fini d'états

  • X est l'alphabet de la bande

  • est l'alphabet d'entrée

  • δest une fonction de transition; δ: Q × X → Q × X × {Left_shift, Right_shift}.

  • q0 est l'état initial

  • B est le symbole vide

  • F est l'ensemble des états finaux

Comparaison avec l'automate précédent

Le tableau suivant montre une comparaison de la différence entre une machine de Turing et un automate fini et un automate pushdown.

Machine Structure des données de la pile Déterministe?
Automate fini N / A Oui
Automaton Pushdown Dernier entré, premier sorti (LIFO) Non
Machine de Turing Bande infinie Oui

Exemple de machine de Turing

Machine de Turing M = (Q, X, ∑, δ, q 0 , B, F) avec

  • Q = {q 0 , q 1 , q 2 , q f }
  • X = {a, b}
  • ∑ = {1}
  • q 0 = {q 0 }
  • B = symbole vide
  • F = {q f }

δ est donné par -

Symbole de l'alphabet de bande État actuel 'q 0 ' État actuel 'q 1 ' État actuel 'q 2 '
une 1Rq 1 1Lq 0 1Lq f
b 1Lq 2 1Rq 1 1Rq f

Ici, la transition 1Rq 1 implique que le symbole d'écriture est 1, la bande se déplace vers la droite et l'état suivant est q 1 . De même, la transition 1Lq 2 implique que le symbole d'écriture est 1, la bande se déplace vers la gauche et l'état suivant est q 2 .

Complexité temporelle et spatiale d'une machine de Turing

Pour une machine de Turing, la complexité temporelle fait référence à la mesure du nombre de fois où la bande se déplace lorsque la machine est initialisée pour certains symboles d'entrée et la complexité de l'espace est le nombre de cellules de la bande écrites.

Complexité temporelle toutes les fonctions raisonnables -

T(n) = O(n log n)

Complexité spatiale de TM -

S(n) = O(n)