Université Paris 8 – UFR MITSIC Licence de Mathématiques – Printemps 2016
LOGIQUE ET COMPLEXITÉ (B. Mariou) Devoir surveillé du 7 juin 2016
La carte d’étudiant est obligatoire.
Une page A4 manuscrite par vous-même est autorisée.
Indiquez sur chaque copie, nom, prénom, numéro.
Durée : 2h30 Barème : 7 3 2 2 3 3
Aucun appareil électronique n’est autorisé
Pas de communication
Ni sac, ni vêtements à votre place.
Pas de sortie avant 45 minutes
Exercice 1 Questions de cours
a) Y a-t-il une différence entre “calculable par machine de Turing” et “calculable par machine à
registres” ? (Justifiez.)
b) Existe-t-il un sous-ensemble de IN qui n’est pas décidable par machine de Turing ? (Justifiez.)
c) Existe-t-il des fonctions qui ne sont pas calculables par machines à registres. (Justifiez.)
d) Donnez la définition de la classe des fonctions récursives.
e) Citez une fonction récursive, définie partout, mais pas récursive primitive.
f) Existe-t-il une fonction calculable par machine de Turing et pas récursive ? (Justifiez.)
g) Qu’affirme la Thèse de Church - Turing ?
Exercice 2 Soit fla fonction IN ×IN IN
a,b7→ 1 si b61
amod bsi b>2.
a) Décrivez la fonction gqu’on obtient en appliquant l’opération de minimisation Mà la fonction f.
Vous donnerez la liste des valeurs g(0), g(1), . . . , g(9).
b) La fonction gest-elle récursive ? récursive primitive ?
Exercice 3 Soit XIN tel qu’il existe deux fonctions calculables fet gtelles que fest définie
seulement sur X, et gest définie seulement sur X. Montrez que Xest décidable.
Exercice 4
a) Soient aet bdeux entiers, que vaut 1˙
-((a˙
-b)+(b˙
-a)) ?
b) Déduisez-en que si f:IN IN est définie partout et récursive, alors Z={aIN |f(a) = a}
est récursif.
Exercice 5 Soit hla fonction à 1 argument, suivante : – elle n’est pas définie en 0,
h(1) = 1,
h(k)=0si k>2.
Constuisez une machine à registres ou, au choix, une machine de Turing dont vous préciserez
l’alphabet, qui calcule la fonction h.
Exercice 6 On s’intéresse aux fonctions IN IN définies partout (pas nécessairement récur-
sives). On veut vérifier qu’une liste quelconque (fk)kIN de telles fonctions n’est pas la liste de
toutes ces fonctions.
a) Soit une telle liste (fk)kIN . On pose, pour tout kIN,F(k) = fk(k)+1.
Montrez que la fonction Fainsi obtenue est une fonction de IN dans IN, définie partout mais qui
n’est pas dans la liste (fk)kIN .
b) Comment s’appelle le type de raisonnement de la question précédente ?
c) L’ensemble des fonctions de IN dans IN , définies partout, est-il dénombrable ?
Corrigé du devoir surveillé du 7 juin 2016
Exercice 1 a) On peut répondre que les machines de Turing et les machines à registres sont des machines
totalement différentes, des modèles du calcul différents ; et par conséquent calculer sur machine de Turing
est assez différent de calculer sur machine à registres.
En revanche, les deux notions évoquées concernent les mêmes fonctions, i.e. pour une fonction donnée, il
est équivalent d’être calculable par MdT ou calculable par MàR.
b) Il existe une multitude de sous-ensembles de IN qui ne sont pas décidables par MdT, pour des raisons
de cardinalité (voir le cours, chapitre 6).
c) De même, il existe des multitudes de fonctions non calculables par machines à registres (question de
cardinalité, cours, chapitre 6).
d) Voir le cours, chapitre 8.
e) La fonction d’Ackermann a les propriétés requises (cours, chapitre 8).
f) Non, toutes les fonctions calculables par machine de Turing sont récursives (chapitre 8).
g) Voir chapitre 10.
Exercice 2 a) Il faut regarder l’énoncé, la fonction fne s’annule pas lorsque b= 0 et b= 1.
La fonction fs’annule pour le couple (a, b)lorsque b>2et aest multiple de b.
De plus, il faut observer que fest définie partout.
Donc, pour un aIN,f(a, b)ne s’annule pas lorsque b= 0 et b= 1 mais elle est définie. On peut donc
continuer à chercher le plus petit b > 1qui fait s’annuler f(a, b).
Il s’agit donc de considérer des valeurs plus grandes que 2 pour b. Et donc le critère d’annulation de fest
le fait que best un diviseur de aou pas. On cherche donc le plus petit diviseur non trivial de a.
Pour a= 0, on a f(a, 2) = 0 et donc g(0) = 2.
Pour a= 1, on a f(a, b) = 1 pour tout bIN, et donc
gn’est pas définie pour a= 1 (1 n’a pas de diviseur non
trivial).
Pour a>2,g(a)est simplement le plus petit diviseur
non trivial de a. Donc g(2) = g(4) = g(6) = g(8) = 2,
g(3) = g(9) = 3,g(5) = 5 et g(7) = 7.
Valeurs prises par fet valeur de gen conséquence
a\b0 1 2 3 4 5 6 7 g(a)
0 1 1 0 2
1 1 1 1 1 1 1 1 1 pas défini
2 1 1 0 2
3 1 1 2 0 3
4 1 1 0 2
5 1 1 2 3 4 0 5
6 1 1 0 2
7 1 1 2 3 4 5 6 0 7
8 1 1 0 2
9 1 1 2 0 3
b) La fonction fest récursive (car, par exemple, elle est calculable). Comme la fonction gest obtenue par
minimisation à partir d’une fonction récursive, elle est récursive.
Mais comme elle n’est pas définie partout, elle ne peut être récursive primitive. (Cela signifie qu’on ne peut
pas obtenir gà partir des fonctions initiales sans utiliser la minimisation.).
Exercice 3 On peut résoudre cet exercice en regardant revenant aux définitions ou en se référant aux
thééorèmes du cours.
Première version. D’après l’énoncé, on a deux algorithmes Aet Bqui calculent les fonctions fet g.
Puisque fest définie sur Xet gest définie sur X, on a, pour tout entier a:
– soit aXet alors As’arrête pour l’entrée a,Bne s’arrête pas pour l’entrée a,
– soit a /Xet alors Bs’arrête pour l’entrée a,Ane s’arrête pas pour l’entrée a.
On construit alors l’algorithme Cqui consiste, pour une entrée aIN, à exécuter alternativement un pas
du calcul de Apour l’entrée aet un pas du calcul de Bpour l’entrée a. Que asoit dans Xou dans X, un
et un seul de ces deux calculs se termine. Si c’est le calcul de Al’entrée aqui se termine, alors l’algorithme
Cdonne la réponse 1, si c’est le calcul de Bpour l’entrée aqui se termine alors l’agorithme Cdonne la
réponse 0. De telle sorte que Cs’arrête toujours pour l’entrée aet donne la réponse 1 si aXet la réponse
0 si a /X. Donc l’algorithme Cdécide X.
Seconde version. Utilisez les théorèmes 7.7 et 7.9.
Exercice 4 a) La valeur de a˙
-bdépend de l’ordre de aet b:a˙
-b= 0 ssi a6b, sinon a˙
-b > 0.
De même, b˙
-a= 0 ssi b6a, sinon b˙
-a > 0.
On distingue donc trois cas.
Si a > b, alors a˙
-b > 0et b˙
-a= 0 donc (a˙
-b) + (b˙
-a)>0et donc 1˙
-(a˙
-b) + (b˙
-a) = 0.
Si a=b, alors a˙
-b=b˙
-a= 0 donc (a˙
-b) + (b˙
-a) = 0 et donc 1˙
-(a˙
-b) + (b˙
-a) = 1.
Si a < b alors a˙
-b= 0 et b˙
-a > 0donc la somme n’est pas nulle et donc 1˙
-(a˙
-b) + (b˙
-a) = 0.
Donc la quantité étudiée vaut 1 si a=bet vaut 0 si a6=b.
b) Posons egal(a, b) = 1 ˙
-((a˙
-b) + (b˙
-a)). On a vu que egal(a, b)vaut 1 si a=bet vaut 0 si a6=b.
Pour un entier a, l’énoncé nous dit que fest toujours définie en aon a donc
– si a=f(a)(i.e. si aZ) alors egal(a, f (a)) = 1,
– si a6=f(a)(i.e. a /Z) alors egal(a, f (a)) = 0.
Autrement dit, g:a7→ egal(a, f (a)) est la fonction caractéristique de Z.
Si on sait, en plus, que fest récursive, alors gest obtenue par composition de focntions récursives, et est
donc aussi récursive; ce qui signifie exactement que Zest récursif.
Exercice 5 Machine à registres prise sur une copie.
La valeur de l’argument aest stockée dans R2avant l’exécution.
Le résultat se trouvera dans le registre R1, qui est donc mis à 0 au début du processus.
Pour ne pas perdre le contenu de R2, on le duplique dans le registre local S1, avec
lequel on va effectuer les manipulations.
Première décrémentation : si le registre est vide (i.e. a= 0), la machine reste indéfi-
niment à cette étape. Boucle infinie pour la machine, qui coïncide avec le fait que la
fontion n’est pas définie pour a= 0.
Deuxième décrémentation : si S1est maintenant vide, c’est qu’il contenait 1 au début
(i.e. a= 1) donc on sort et on incrémente R1car h(1) = 1.
Boucle de décrementation : si on est arrivé ici, c’est que S1contenait au moins 2 (i.e.
a>2) et donc h(a)=0. La boucle sert à remettre S1à 0, puis on sort et on laisse
R1vide.
Exercice 6 a) Soit un entier naturel k. La fonction fkexiste et est définie partout. Notamment, fk(k)
est un nombre entier naturel, et on peut parler de fk(k)+1, qui est aussi entier naturel. Donc Fest définie
pour l’argument k.
Ainsi Fest une fonction qui, à chaque entier naturel, associe un entier naturel. Donc Fva de IN dans IN
et elle est définie partout.
Par ailleurs, pour tout entier k, on a F(k) = fk(k)+16=fk(k), donc F6=fk. Donc Fne fait pas partie de
la liste (fk)kIN .
b) Il s’agit d’un argument diagonal (voir le cours).
c) Si l’ensemble des fonctions de IN dans IN définies partout était dénombrable, cela signifierait précisément
qu’il existe (fk)kIN , liste exhaustive de toutes ces fonctions, indéxée par IN .
Or les questions précédentes montrent que toute liste, indexée par IN, de fonctions définies partout IN IN
est une liste qui est incomplète. Donc il n’y a pas de liste exhaustive de toutes ces fonctions, qui soit indexée
par IN.
Donc l’ensemble des fonctions IN IN, totales, n’est pas dénombrable.
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !