Vous êtes sur la page 1sur 1

Faculté des Sciences et Techniques de Limoges

Master 1 - Informatique et Mathématiques 2023-2024

Calculabilité et Complexité - TD 4
Langages décidables, reconnaissables et fonctions calculables.
Dans les deux exercices suivants, on représente les entiers en binaire : n ∈ N s’identifie à un mot de {0, 1}∗ .

Exercice 1 :
Soit f : N −→ N une fonction totale. Le graphe de f est le langage

C = {(n, f (n)) | n ∈ N}.

(a) Prouver que si f est calculable dans le modèle Turing, alors C ∈ R.


(b) Prouver que si C ∈ R alors f est calculable dans le modèle Turing.

Exercice 2 :
Soit f : N −→ N une fonction partielle. Le graphe de f est le langage

C = {(n, f (n)) | n ∈ N et f (n) ↓}.

(a) Prouver que, si f est calculable dans le modèle Turing (attention : il se peut que la machine de Turing M
qui calcule f ne s’arrête pas pour certaines entrées ) alors C ∈ RE.
(b) Prouver que, si C ∈ RE alors f est calculable dans le modèle Turing

Exercice 3 :
Soit A l’alphabet {a, b}.
(a) Définir un ordre total ≺ sur A∗ .
(b) Construire une machine de Turing S qui à tout mot de A∗ associe son successeur pour l’ordre ≺.
(c) Soit L un langage sur A. Un énumérateur de L est une machine de Turing (ne s’arrêtant pas forcement )
qui écrit sur une bande tous les mots (non vides) de L l’un après l’autre (dans un ordre quelconque).
On suppose que L est infini. Montrer que L ∈ R si et seulement si il existe un énumérateur ordonné de L
(un énumérateur qui écrit les mots dans L dans l’ordre ≺).
(d) Pourquoi l’hypothèse que L est infini est utile dans l’équivalence précédente ?
(e) Montrer que L ∈ RE si et seulement si il existe un énumérateur pour L.
(f) Donner un exemple de langage pour lequel il existe un énumérateur respectant l’ordre ≺.
(g) Donner un exemple de langage pour lequel il existe un énumérateur, mais pour lequel aucun énumérateur
ne peut respecter l’ordre ≺.
(h) Donner un exemple de langage pour lequel il n’existe aucun énumérateur.

Page 1

Vous aimerez peut-être aussi