UNIVERSITE JOSEPH FOURIER M1-informatique
Calculabilit´e et complexit´e Ann´ee 2006-2007
Quick du 2 mai 2007 (dur´ee : 1h30 - sans document) – corrig´e, v4
Questions de cours
Remarque : 3 lignes suffisent pour r´epondre `a chacune des questions.
1. D´efinir formellement la classe RP Ades fonctions r´ecursives primitives “relativement `a
AN”.
IVoir le cours.J
2. Quand on d´efinit l’ensemble Pdes fonctions r´ecursives partielles, on introduit l’op´erateur
de “minimalisation” µ(ou MinGen). Donner sa d´efinition exacte en pr´ecisant le sens de
f=µ[g] o`u gest une fonction `a n+ 1 arguments et en donnant l’arit´e de f.
Ifest d’arit´e n, et est d´efinie par : (~x(n)) [f(~x) = “le plus petit y, s’il existe, tel que
g(y, ~x) = 0]. Dans la d´efinition de PA, on exige que µs’applique `a des fonctions totales
(gR(n+1)A).
J
3. Pourquoi tout mod`ele de calcul g´en´eral doit-il permettre de programmer des fonctions
non totales ?
IParce qu’on veut pouvoir programmer tout ce qui est “intuitivement calculable”, et
donc pouvoir utiliser des boucles tant que , qui peuvent mener `a des calculs qui ne se
terminent pas.J
4. Expliquer en fran¸cais ce que d´efinit la notation ϕ(k)
npar rapport `a la notation Ψ(k)
Z, en
pr´ecisant ce que repr´esentent k,net Z.
Iϕ(k)
nd´esigne la fonction Ψ(k)
Zd’arit´e ksur les entiers (de Nkvers N) calcul´ee par la
Machine de Turing Z, o`u nest un indice de Z, c’est `a dire le num´ero d’un de ses nombres
de G¨odel (elle en a p! si elle a pquadruplets). J
Fonctions r´ecursives primitives
Soit le pr´edicat `a n+ 2 arguments Conv d´efini par “Conv(z, ~x, p)ϕz(~x) converge en au plus
ppas.”
Formellement, si t(n+2)
nest le pr´edicat de Turing pour les fonctions d’arit´e n, qui a ´et´e d´efini
en cours par tn(z, ~x, y)yest le nombre de G¨odel d’un calcul de la machine de Turing de
num´ero (indice) zlanc´ee sur la configuration initiale associ´ee `a ~x (q0|x1+1B . . . |xn+1), et dont
on a montr´e qu’il est r´ecursif primitif, on a :
Conv(z, ~x, p) = sg(1 + µy [tn(z, ~x, y)∧ |y| ≤ p])
1. Montrer que la minimalisation peut ˆetre born´ee par une fonction r´ecursive primitive.
IOn a vu en cours que le pr´edicat ConvAefini de mˆeme, mais relativement `a un en-
semble A, est r´ecursif primitif relativement `a A. On peut refaire la mˆeme d´emonstration
en supprimant le A, et on obtient donc que Conv est r´ecursif primitif. Faisons-le.
L’id´ee est assez simple : la taille de la description instantan´ee (la plus courte possible) de
la configuration d’entr´ee (au 0`eme pas de calcul) est E(~x, 0) = Pn
i=1(xi+ 2). Apr`es kp
pas de calcul, la longueur de la description instantan´ee n’a pas augmene de plus de k,
puisqu’un pas de calcul ne peut l’augmenter de plus de 1. Donc E(~x, k)E(~x, 0) + k.
1
Soit alors M(z) le plus grand code d’un symbole pouvant figurer dans une description
instantan´ee de la machine Zde num´ero z. Si le plus grand indice id’un ´etat ou d’un
symbole est N, on peut prendre M(z) = 4N+9, sachant que le code de l’´etat qiest 4i+ 9
et que celui du symbole Sj) est 4j+ 7.
Le nombre de G¨odel yd’un calcul de Zde longueur p`a partir de la configuration initiale
correspondant `a l’entr´ee ~x peut alors ˆetre born´e par une fonction RP :
yMaxNgCalc(z, ~x, p) =
p
Y
k=1 P r(k)QE(~x,0)+k
m=1 P r(m)M(z)
D’o`u : Conv(z, ~x, p) = sg(1 + µy MaxNgCalc(z, ~x, p) [tn(z, ~x, y)]). J
2. Peut-on en d´eduire que Conv est r´ecursif primitif, r´ecursif, partiel r´ecursif, ou rien de
tout cela ?
IOn a d´emontr´e en cours que la classes des pr´edicats RP est ferm´ee par minimalisation
born´ee. Par cons´equent, le pr´edicat Conv est r´ecursif primitif. J
3. Construire hRP (1) telle que (x, y)ϕh(x)(y) = (ysi ϕx(x)
sinon
Remarque : cette question est ind´ependante des deux questions pr´ec´edentes et du
pr´edicat Conv.
Indication : utiliser la fonction ηd´efinie par η(x, y) = (ysi ϕx(x)
sinon
IUtilisons la m´ethode vue en cours.
i) Consid´erons la fonction ηefinie par η(x, y) = (ysi xK(ϕx(x))
sinon
ii) ηest partielle r´ecursive. On peut le montrer de deux fa¸cons.
Voie machinale. ηest intuitivement calculable. En effet, pour la calculer sur le
couple d’entr´ee (x, y), on peut proc´eder ainsi : lancer le calcul de ϕx(y), puis, si et
quand il converge, retourner yet s’arrˆeter. Par la th`ese de Church, ηP(2).
Voie alg´ebrique. η(x, y) = y+sg(1 + ϕx(x)). D’apr`es le th´eor`eme d’´enum´eration,
η(x, y) = y+sg(1 + ϕu1(x, x)), o`u u1est un indice de la fonction universelle de
P(1). Donc η=σ[+,A(2)
2, σ[sg, σ[S, σ[ϕ(2)
u1,A(2)
1,A(2)
1]]]], et par suite ηP(2).
iii) Donc ηa un indice, soit i.
Par le th´eor`eme s-m-n, (x, y)[η(x, y) = ϕ(2)
i(x, y) = ϕs1
1(i,x)(y)].
h=λx.[s1
1(i, x)] convient : hRP puisque s1
1RP , et on a bien l’´egalit´e d´esir´ee.
J
Machines de Turing
1. Soit la machine de Turing Z d´efinie par les quadruplets suivants :
q01R q1
q11B q2
q2B R q1
q1B R q3
q31R q1
Quelles sont les fonctions Ψ(n)
Zcalcul´ees par Z, pour toutes les arit´es n?
IΨ(n)
Z(x1, x2, . . . , xn) = n. Le montrer par r´ecurrence sur n. Pour n= 0, Zreste bloqu´ee
en q0B, le calcul produit donc 0.
Pour n= 1, on a q0|x+1 ` |q1|x`2x|Bxq1B` |Bx+1q3B.J
2
2. Construire une machine de Turing Z1calculant relativement `a ANla fonction ψefinie
par
ψ(x, y) =
y+ 1 si x+y+ 2 A
xsinon et si x+y+ 1 A
sinon
IOn part comme toujours dans la configuration q0|x+1B|y+1. On teste imm´ediatement
si x+y+ 2 A. Si oui, on efface le premier bloc de |et on s’arrˆete. Si non, on efface le
premier |du premier bloc, et on teste si x+y+ 1 A.
Si oui, on va `a droite effacer le second bloc, et on s’arrˆete. Si non, on boucle, soit en
restant sur place, soit en allant `a l’infini vers la gauche.
D’o`u la machine Zdonn´ee par ses quadruplets :
q0|q1q2`q1|x+1B|y+1
q1|B q3si x+y+2 A, et alors effacer |x+1
q3B R q1`Bx+1q1B|y+1 et arrˆet.
q2|B q4`q2|x+1B|y+1 `q4B|xB|y+1
q4B q5q6si x+y+2 /A, et alors tester x+y+ 1 A
q5B R q7si x+y+2 /A&x+y+ 1 A, effacer |y+1
q7|R q7` |xq7B|y+1
q7B R q8` |xBq8|y+1
q8|B q7` |xBBy+1q8Bet arrˆet.
q6B B q6si x+y+2 /Aet x+y+ 1 /A, boucler
J
Fonctions r´ecursives
Soit la fonction ψd´efinie ci-dessus par (rappel pour qui n’aurait pas lu la partie pr´ec´edente !)
ψ(x, y) =
y+ 1 si x+y+ 2 A
xsinon et si x+y+ 1 A
sinon
1. Montrer que ψest r´ecursive (ψP(2)A) par la voie alg´ebrique.
Indication : Exprimer ψ`a partir de fonctions de base ou connues et des op´erateurs σet
µde substitution et de “minimalisation”.
Iψ(x, y) = sg(µi [i+sg(1A(x+y+2)+1A(x+y+ 1)) = 0]) ×(1A(x+y+ 2) ×(y+
1) + sg(1A(x+y+ 2)) ×1A(x+y+ 1) ×x).
Puisque toute substitution peut se ramener `a une substitution r´eguli`ere, que toutes les
fonctions apparaissant dans cette expression sont dans PAet que la minimalisation d’ap-
plique `a une fonction totale et mˆeme r´ecursive primitive relativement `a A, le r´esultat
s’ensuit. J
2. Quel th´eor`eme fondamental vu en cours permet de d´eduire de la machine de Turing Z1
(de la question 2 de l’exercice pr´ec´edent) que ψest r´ecursive ? Indication : si vous n’avez
pas r´epondu `a la question 2 de l’exercice pr´ec´edent, vous pouvez supposer l’existence de
la machine de Turing Z1.
ITAPA, ou TA=PA.J
3. Donner une valeur particuli`ere de ANpour laquelle la fonction ψest totale.
Ix+ypeut-ˆetre n’importe quel entier non nul. Pour qu’on ait toujours x+y+ 1 A
3
ou x+y+ 2 A, il suffit que, pour tout nN,n+ 1 ou n+ 2 soit dans A. On peut donc
retirer de Ndes entiers arbitraires, du moment qu’on ne retire pas de couple (n, n + 1).
Par cons´equent, A=Nconvient, ainsi que A={n|n > 0}, et que l’ensemble des pairs
2N, l’ensemble des impairs 2N+ 1, les pairs non nuls 2N− {0},N(2 + 3N), etc.J
4
1 / 4 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 !