Calculabilité TD07 : Machines de Turing 1 Machines de Turing
Transcription
Calculabilité TD07 : Machines de Turing 1 Machines de Turing
Institut Galilée L3 S6 – Année 2014–2015 Calculabilité TD07 : Machines de Turing 1 Machines de Turing Soit L un langage sur un alphabet Σ. On rappelle que : – une machine de Turing M semi-décide L si, pour tout mot w ∈ Σ∗ , l’exécution de M sur w s’arrête sur un état final acceptant si, et seulement si w ∈ L ; – une machine de Turing M décide L si M semi-décide L et pour tout mot w ∈ Σ∗ , l’exécution de M sur w s’arrête (pas forcement sur un état final). – une machine de Turing M calcule une fonction f : L → L⊥ si, pour tout mot w ∈ L, – si f (w) ↓, alors l’exécution de M sur w s’arrête sur un état final, en laissant le seul mot f (w) sur le ruban, la tête de lecture étant sur la premiere lettre (à gauche) de ce mot ; – si f (w) ↑, alors l’exécution de M sur w ne s’arrête jamais sur un état final (boucle infinie ou arrêt sur un état non final). Exercice 1. Soit f la fonction associant à un mot binaire w ∈ {0, 1}? son complémentaire w bit à bit, c.à-d. w est obtenu en remplaçant chaque 0 de w par 1 et chaque 1 par 0. Par example : f (00110) = 11001 Décrire une machine de Turing qui calcule f . Exercice 2. Soit la machine de Turing décrite par le diagramme suivant. a/a, → start a/X, → qa qb Y /Y, → #/#, → qf Y /Y, → X/X, → b/Y, ← #/#, → qY qX Y /Y, → Y /Y, ← a/a, ← 1. Décrire l’exécution de la machine sur les entrées ab, abb, aab, aabb en détaillant les configurations. 2. Quel est le langage L ⊆ {a, b}∗ décidé par cette machine de Turing ? Exercice 3. Décrire une machine de Turing qui décide le langage L = {an bn cn | n ≥ 0} ⊆ {a, b, c}∗ . Exercice 4. Écrire une machine à deux rubans qui décide l’ensemble des palindromes sur {a, b}∗ . Au début de l’exécution, on considère que le mot est écrit sur le premier ruban et que le deuxième ruban est vide. Indication : parcourir un ruban de gauche à droite et l’autre de droite à gauche. Jean-Yves Moyen & Luc Pellissier 1 Institut Galilée L3 S6 – Année 2014–2015 Exercice 5. Écrire une machine à un seul ruban qui décide l’ensemble des palindromes sur {a, b}∗ . Indication : comparer la première et la dernière lettre. Si elles sont identiques, les remplacer par des nouveaux symboles et recommencer (la machine fera beaucoup d’aller-retours). Exercice 6. Écrire une machine de Turing à trois rubans qui calcule l’addition des nombres en représentation binaire. Dans la configuration initiale les deux entrées se trouveront, respectivement, sur le premier et le deuxième ruban, alors que la sortie se trouvera sur le troisième ruban dans la configuration finale. Indication : commencer par aller à la fin des rubans (vers les bits de poids faible) puis faire une addition “normale” avec retenue. Jean-Yves Moyen & Luc Pellissier 2