• Aucun résultat trouvé

Fonctions calculables par machine de Turing

Dans le document Cours de logique math (Page 55-62)

Les machines de Turing fournissent une pr´ecision de la notion de« calcula-bilit´e par une machine».

D´efinition. Unemachine de Turing Mest la donn´ee

– d’un nombre fini (≥ 1) de bandes B1, B2, . . . plac´ees horizontalement, toutes born´ees `a gauche et non born´ees `a droite ; chaque bande est di-vis´ee en cases, num´erot´ees par N de gauche `a droite. Les bandes sont arrang´ees de sorte que les cases du mˆeme num´ero se trouvent sur une mˆeme verticale.

– d’une tˆete de lecture qui peut lire, effacer et ´ecrire des symboles sur les cases (un symbole par case). Cette tˆete se d´eplace horizontalement et est plac´ee `a chaque instant sur une verticale et manipule toutes les cases de cette verticale d’un coup.

L’ensemble de symboles est donn´e parS ={d,|, b},d comme«d´ebut de bande»,|comme«bˆaton» etbcomme«blanc».

Voici les donn´ees qui sont sp´ecifiques `a M: – n=n(M)∈N(le nombre de bandes)

– Un ensemble fini d’´etatsE. Il y a deux ´etats sp´ecifiques appartenant `aE: ei (l’´etat initial) etef (l’´etat final).

– Une fonctionM :Sn×E→Sn×E×{−1,0,1}, appel´eetable de transition deM.

Fonctionnement de la machine :

– `A chaque instantt∈N,Mse trouve dans un ´etat donn´e (de E).

– M fonctionne en changeant d’´etat, en effa¸cant et ´ecrivant des symboles sur les bandes et en d´epla¸cant sa tˆete `a chaque instant.

Le fonctionnement est sujet aux r`egles suivantes :

1. `A l’instantt= 0,Mse trouve dans l’´etat initial et sa tˆete se trouve devant les casesno1.

2. `A chaque instantt, Mlit les symboles (s1, . . . , sn)∈Sn ´ecrits devant sa tˆete, et la tableM d´ecrit alors ce queMest cens´ee faire. Si Mest dans l’´etate et lit (s1, . . . , sn), alors, soit M(s, e) = (s0, e0, ε). La tˆete efface s,

´

ecrits0, se d´eplace parεhorizontalement etMse met dans l’´etate0, puis passe `a l’instantt+ 1.

3. Ms’arrˆete quand elle atteint l’´etat final.

Entr´ee correcte :

– `A l’instantt= 0, dest inscrit dans les cases no1 et uniquement l`a.

– Toutes les cases sont remplies, et il y a un nombre fini de bˆatons.

(Cela reste vrai tout au long du calcul, vu les contraintes qui suivront).

Contraintes :

– Pour touts∈Sn on aM(s, ef) = (s, ef,0).

– La tˆete ne peut ni ´ecrire ni effacer le symbole de d´ebut de bande : – Pour tout e ∈ E, on a M((d, . . . , d), e) = ((d, . . . , d), e0, ε) pour un

ε∈ {0,1};

– sis6= (d, . . . , d), alorsM(s, e) = (s0, e0, ε) avecs0i 6=dpour touti.

Remarque. Il s’agit d’une machine d´eterministe, c’est-`a-dire on peut pr´evoir pour tout instantt la position de la tˆete, l’´etat de la machine et le remplissage des bandes.

D´efinition. 1. Une bande repr´esente (`a un instant donn´e) l’entier m si la bande remplie est ´egale `a (d,|, . . . ,|

| {z }

mfois

, b, . . . , b, . . .).

2. Une machine de TuringMcalculef ∈ Fpsin(M)≥p+ 1 et si pour tout m∈ Np, quand on fait fonctionner Msur l’entr´ee o`u, pour i= 1, . . . , p, la bandeBi repr´esentemi et, pouri > p, la bande Bi repr´esente l’entier 0, alors

– si m∈ dom(f),M s’arrˆete apr`es un temps fini et sur les bandes sont repr´esent´es successivement les entiers (m1, . . . , mp, f(m),0, . . . ,0) ; – si m 6∈ dom(f), Mne s’arrˆete jamais (c’est-`a-dire ef n’est jamais

at-teint).

3. La fonction partielle f est dite T-calculable s’il existe une machine de TuringMqui calculef.

Lemme 4.4.1. Les fonctions de base (C00, S et les Pin) sontT-calculables.

D´emonstration. C00est calculable par M`a une bande et avecE={ei, ef}, o`u la table de transition est donn´ee parM(d, ei) = (d, ef,0). (Ici comme dans la suite, nous nous contentons de donner la partie essentielle deM.)

S est calculable parM`a deux bandes, avecE={ei, ef}et o`uM(d, d, ei) = (d, d, ei,+1), M(|, b, ei) = (|,|, ei,+1) etM(b, b, ei) = (b,|, ef,0).

Pin est calculable parM`a n+ 1 bandes, avecE={ei, ef}et o`u la table de transition est donn´ee parM(d, . . . , d, ei) = (d, . . . , d, ei,+1) ainsi que

M(s1, . . . , sn, b, ei) =

((s1, . . . , sn,|, ei,+1), sisi=|, (s1, . . . , sn, b, ef,0), sisi=b.

Lemme 4.4.2. L’ensemble des fonctions partielles T-calculables est clos par composition.

D´emonstration. Soient f1, . . . , fn ∈ Fp et g ∈ Fn T-calculables, et soit h = g(f1, . . . , fn).

Par hypoth`ese il existe Mi, 1 ≤ i ≤ n, `a pi ≥ p+ 1 bandes et ensemble d’´etatsEi calculant fi, ainsi que M0 `a n0 ≥n+ 1 bandes et ensemble d’´etats E0 calculantg.

Soit M une machine de Turing `a p+ (n0 −n) +Pn

i=1(pi−p) bandes et ensemble d’´etatsE={ed, en}∪E˙ 0∪˙S˙

iEi. On d´eclare que l’´etat initial deMest celui deM1, l’´etat final celui deM0.

Voici le fonctionnement deM(la description exacte de la table de transition deMest laiss´ee en exercice) :

Etant repr´´ esent´es (m1, . . . , mp,0, . . . ,0) sur les bandes,Mcommence `a cal-culerf1(m1, . . . , mp) commeM1le ferait, en se servant des ´etats dansE1\ {e1f} et de (p1−p) bandes suppl´ementaires (disjointes deBp+1). En l’´etate1f, elle re-vient en d´ebut des bandes, puis se met dans l’´etate2i ∈E2et calculef2(m) en se servant des ´etats dansE2\{e2f}et de (p2−p) bandes suppl´ementaires (disjointes

de Bp+1). Ainsi, M calcule successivement f1(m), . . . , fn(m). Une fois fn(m) calcul´ee, M se met dans l’´etat initial de M0 et calcule h(f1(m), . . . , fn(m)) commeM0 le ferait, en se servant de E0 et de n0−n bandes suppl´ementaires (disjointes deBp+1). Elle utilise pour ce calcul les bandes sur lesquelles sont ins-crites lesfi(m) comme bandes d’entr´ee etBp+1comme bande de sortie. Il faudra donc renum´eroter les bandes pour pouvoir se servir des tables de transition de M1,. . . ,Mn et M0 en ´etablissant la table deM.

Une foish(f1(m), . . . , fn(m)) calcul´ee, au lieu de passer `a l’´etat final deM0, Mse met dans l’´etated qui sert pour retrouver le d´ebut de bande, puis nettoie les bandes sur lesquelles sont repr´esent´es lesfi(m), en se servant de l’´etaten, pour enfin se mettre dans l’´etat final.

Lemme 4.4.3. L’ensemble des fonctions partielles T-calculables est clos par sch´emaµ.

D´emonstration. Exercice. (C’est facile.)

Lemme 4.4.4. L’ensemble des fonctions partielles T-calculables est clos par r´ecurrence.

D´emonstration. Soit g ∈ Fp calcul´ee par M `a p+ 1 +k bandes et ensemble d’´etats E, et soit h∈ Fp+2 calcul´ee par M0 `a p+ 3 +k0 bandes et ensemble d’´etatsE0. On consid´ere la fonction partiellef ∈ Fp+1 d´efinie parf(x,0) =g(x) etf(x, y+ 1) =h(x, y, f(x, y)).

Voici la description informelle d’une machine de Turing N qui calcule f : N a p+ 4 +k+k0 bandes, et son ensemble d’´etats est compos´e deE∪E˙ 0 plus certains ´etats auxiliaires, aveceNi =eMi eteNf =eMf 0.

Fonctionnement deN sur l’entr´ee (m1, . . . , mp+1) :

(1) Calcul deg(m1, . . . , mp) avec bandes d’entr´eeB1, . . . , Bp, bande de sortie Bp+2 et bandes auxiliairesBp+5, . . . , , Bp+4+k, en travaillant commeM,

`

a renum´erotation des bandes pr`es.

(2) Comparermp+1et le contenuy deBp+3(tout au long du calcul, la bande Bp+3repr´esentera un entier≤mp+1) :

– simp+1=y, aller `a l’´etape (5) ; – simp+1> y, aller `a l’´etape (3).

(3) Calculer h(m1, . . . , mp, y, f(x, y)) =f(x, y+ 1) comme le feraitM0, avec bandes d’entr´ee B1, . . . , Bp, Bp+3, Bp+2, bande de sortie Bp+4 et les k0 derni`eres bandes comme bandes auxiliaires.

(4) Copier le contenue de Bp+4 sur la bande Bp+2, puis nettoyer Bp+4 et incr´ementer le contenu de Bp+3 par un bˆaton, c’est-`a-dire passer de y `a y+ 1. Revenir `a l’´etape (2).

(5) NettoyerBp+3 et s’arrˆeter.

Th´eor`eme 4.4.5. Les fonctions partielles r´ecursives sont T-calculables.

D´emonstration. On combine les quatre lemmes pr´ec´edents.

Exercice. D´ecrire une machine de Turing qui calcule λxy.x+y.

Pour pouvoir ´etablir la r´eciproque du th´eor`eme 4.4.5, nous allons coder les machines de Turing ainsi que leur fonctionnement.

Codage des machines de Turing :

On identifie S = {b, d,|} `a {0,1,2}, via 0 ↔ b, 1 ↔ d et 2 ↔|. Une suite (si)i≤n, ou une suite (si)i∈N avec si = 0 pour presque tout i, est cod´ee par Γ((si)) =P

i≥0si3i∈N.

SoitMune machine de Turing. Elle est donn´ee par – n=n(M)≥1, le nombre de bandes deM;

– l’ensemble fini d’´etats E : on supposera que E ={0, . . . , m} (m ≥1 est donc ´egal `a card(E)−1), avecei= 0 etef = 1 ;

– la table de transition M : Sn×E → Sn ×E× {−1,0,1} : pour coder M, si ρ = (s1, . . . , sn, e) ∈ Sn×E et M(ρ) = (t1, . . . , tn, e0, ε), on pose r1(ρ) =α2(Γ(s1, . . . , sn), e) et r2(ρ) =α3(Γ(t1, . . . , tn), e0, ε+ 1), puis

pMq= Y

ρ∈Sn×E

π(r1(ρ))r2(ρ).

Pour d´ecoder, on utilisera la fonctionδ, avecδ(i, x) :=µz≤x π(i)z+1-x . On a alorsδ(α2(Γ(s1, . . . , sn), e),pMq) =α3(Γ(t1, . . . , tn), e0, ε+ 1).

Enfin, l’indice deMest donn´e par pMq=α3(n, m,pMq).

Lemme 4.4.6. Pourp≥0, l’ensemble

Ip={pMq| Mest une machine de Turing `a≥p+ 1 bandes}

est primitif r´ecursif.

D´emonstration. On voit facilement que l’on peut reconnaˆıtre de mani`ere pri-mitive r´ecursive si les contraintes sur la table de transition sont satisfaites. Les d´etails sont laiss´es en exercice.

UneconfigurationC=C(t) deM(`a un instantt) est un ´el´ement (si)i∈SN tel quesnv+w soit l’´el´ement ´ecrit sur la (v+ 1)e case de la bande Bw+1). (On suppose qu’il n’y a qu’un nombre fini de symboles non blancs et que le symbole dest ´ecrit au d´ebut de bande et uniquement l`a.)

On note Γ(C) := Γ((si)) le code de la configuration C. Pour d´ecoder, on utilisera la fonctionη(Γ(C), u, v, n) =r

q(Γ(C),3n(u−1)+(v˙ −1)˙ ),3

, (q´etant le quotient de la division avec reste,r´etant le reste) qui donne le symboles´ecrit sur laue case de la bandeBv. Siσ= (s1, . . . , sn) est la suite des symboles ´ecrits sur les cases nou, alors Γ(σ) =ε(Γ(C), u, n), o`uε(x, y, z) =r

q(x,3z(y−1)˙ ),3z . Lasituation deM(`a un instantt) est donn´ee par Sit = Sit(t) = (e, k, C(t)), o`u e d´esigne l’´etat de M `a l’instant t, k est le node case devant laquelle la tˆete se trouve `a l’instanttet C(t) la configuration `a l’instantt. On la code via Γ(Sit(t)) =α3(e, k,Γ(C(t)).

Lemme 4.4.7. Soitp≥0. Il existe une fonction primitive r´ecursive gp ∈ F2

telle que

– gp(i, x) = 0sii6∈Ip;

– sii=pMqetxest le code de la situation deM`a l’instantt, alorsgp(i, x) est le code de la situation de M`a l’instant t+ 1.

D´emonstration. On supposei=pMq∈Ip. Alors – l’´etat de la machine estβ31(x) =e;

– le nodes cases observ´ees estβ23(x) =k;

– le code de la configurationC(t) estβ33(x) = Γ(C(t)) ; le nombre de bandes est donn´e parβ13(i) =n;

– le nombre d’´etats deMmoins 1 est ´egal `aβ32(i) =m; – le code de la table de transition est donn´e parβ33(i) =pMq; – le code de ce que lit la tˆete `a l’instanttest donn´e par

ε(Γ(C(t)), k, n) =ε β33(x), β23(x), β13(i)

=:c.

Si x n’est pas le code d’une situation, on posegp(i, x) = 0. C’est le cas si β13(x)> m, siβ23(x) = 0 ou siβ33(x) n’est pas le code d’une configuration avecd en d´ebut de bande et uniquement l`a (la derni`ere condition s’exprime de mani`ere primitive r´ecursive, en utilisant les fonctions εetη).

Sinon, soit δ := δ(α2(c, e),pMq). Alors c0 = β31(δ) est le code de la suite

´ecrite `a la place de celle cod´ee parc. On pourra posergp(i, x) =α3(e0, k0,Γ(C0)), o`u Γ(C0) =

Γ(C) + 3n(k−1)˙ ·c0

−˙

3n(k−1)˙ ·c

est le code de la configuration, e023(δ) l’´etat de la machine, et enfink0= β23(x) +β33(δ)−1 le n˙ odes cases observ´ees `a l’instantt+ 1.

On d´efinit une fonction STp∈ Fp+2 : – STp(i, t, x) = 0, si i6∈Ip;

– sinon, STp(i, t, x) est le code Γ(Sit(t)) de la situation `a l’instant t de la machineMd’indiceiqui a commenc´e `a fonctionner ent= 0 sur la confi-guration suivante : surB1, . . . , Bp sont repr´esent´es les entiers x1, . . . , xp, et les autres bandes repr´esentent 0.

Th´eor`eme 4.4.8. Pour toutp≥0, la fonctionSTp est primitive r´ecursive.

D´emonstration. La fonctionλix.STp(i,0, x) est primitive r´ecursive. (C’est facile et laiss´e en exercice.) Puis, on a STp(i, t+ 1, x) =gp(i,STp(i, t, x)).

On appelle configuration de sortie pour l’entr´eex= (x1, . . . , xp) une confi-guration o`u les bandesB1, . . . , Bprepr´esententx1, . . . , xp, la bandeBp+1repr´ e-sente un entier, et o`u les autres bandes rep´esentent 0.

Pour p ≥ 0, on d´efinit un pr´edicat Ep ⊆ Np+2 de la mani`ere suivante : (i, c, x)∈Ep) ⇐⇒ i ∈Ip et c est le code d’une configuration de sortie pour l’entr´eex.

Il est facile `a voir queEp est un ensemble primitif r´ecursif. [Exercice. Pour exprimer par exemple que Bp+1 repr´esente un entier, notons que dans la for-mule∀z η(c, z, p+ 1, n) = 2∧z≥3→η(c, z−1, p˙ + 1, n) = 2

, on peut borner le quanteur universel parc.]

On d´efinit aussi les ensembles suivants : Bp=

(i, t, x)∈Np+231(STp(i, t, x)) = 1 et (i, β33(STp(i, t, x)), x)∈Ep (`a l’instantt, la machine d’indiceise trouve dans l’´etat final, et sa configuration est une configuration de sortie pour l’entr´eex)

Cp=

(i, y, t, x)∈Np+3|(i, t, x)∈Bp et y est repr´esent´e surBp+1

Les ensemblesBp et Cp sont primitifs r´ecursifs.

Soit maintenantf ∈ Fp une fonction partielleT-calculable. Choisissons une machine de Turing M qui calcule f, et posons i = pMq. On peut d´efinir la fonction partielleTM (qui donne le temps de calcul) comme

TM(x) :=µt((i, t, x)∈Bp). Alors on a

f(x) = µy≤TM(x)

(i, y, TM(x), x)∈Cp

. (4.2)

On appelle (4.2) laforme normale de Kleene def.

En particulier, nous avons montr´e les deux r´esultats suivants.

Th´eor`eme 4.4.9. Les fonctions (partielles)T-calculables sont r´ecursives.

Proposition 4.4.10. 1. Sif est totale etT-calculable en un temps primitif r´ecursif, alorsf est primitive r´ecursive.

2. L’ensemble des fonctions partielles r´ecursives est le plus petit sous-ensemble deFcontenant les fonctions primitives r´ecursives et clos par composition et sch´emaµ.

3. L’ensemble des fonctions totales r´ecursives est le plus petit sous-ensemble deF contenant les fonctions primitives r´ecursives et clos par composition et sch´emaµ total. Autrement dit, toute fonction r´ecursive totale s’obtient par un nombre fini d’applications des r`egles (R0)−(R3).

On observera que nos arguments pour montrer que toute fonctionT-calculable est r´ecursive ne sont pas sp´ecifiques aux machines de Turing. Cela justifie la Th`ese de Church.

Toute fonction calculable (au sens intuitif du terme) est r´ecursive.

Dans le document Cours de logique math (Page 55-62)