• Aucun résultat trouvé

Quelques remarques sur la complexité des algorithmes

N/A
N/A
Protected

Academic year: 2022

Partager "Quelques remarques sur la complexité des algorithmes"

Copied!
19
0
0

Texte intégral

(1)

R EVUE FRANÇAISE D ’ INFORMATIQUE ET DE RECHERCHE OPÉRATIONNELLE . S ÉRIE ROUGE

G. W ERNER

Quelques remarques sur la complexité des algorithmes

Revue française d’informatique et de recherche opérationnelle. Sé- rie rouge, tome 4, noR2 (1970), p. 33-50

<http://www.numdam.org/item?id=M2AN_1970__4_2_33_0>

© AFCET, 1970, tous droits réservés.

L’accès aux archives de la revue « Revue française d’informatique et de recherche opérationnelle. Série rouge » implique l’accord avec les condi- tions générales d’utilisation (http://www.numdam.org/conditions). Toute uti- lisation commerciale ou impression systématique est constitutive d’une infraction pénale. Toute copie ou impression de ce fichier doit conte- nir la présente mention de copyright.

Article numérisé dans le cadre du programme Numérisation de documents anciens mathématiques

http://www.numdam.org/

(2)

(4e année, R-2, 1970, p. 33-50)

QUELQUES REMARQUES

SUR LA COMPLEXITE DES ALGORITHMES

par G. WERNER(1)

Résumé. — Le problème de Vestimation de la complexité pour un algorithme d'une certaine classe est défini indépendamment d'un type particulier de machines. On montre Vexistence de certaines familles de fonctions récursives qui croissent trop vite pour être calculables par un algorithme dont la complexité est inférieure à une certaine borne. Ces fonctions sont utilisées pour la construction d'une infinité de classes récursivement énumé- rables de fonctions récursives. Celles-ci peuvent être définies par une classe d'algorithmes de complexité bornée pour lesquels le problème de Vestimation est soluble.

INTRODUCTION

La notion de complexité ou de coût des calculs, c'est-à-dire des suites de configurations internes d'une certaine classe d'automates, peut servir à diverses restrictions de la calculabilité correspondante et par là à des classifications d'algorithmes et de fonctions [1-4].

M. O. Rabin [5] a montré que les « degrés de complexité » de systèmes canoniques de Post forment un ordre partiel; cette classification peut être étendue aux fonctions calculables par de tels systèmes. Si l'ensemble des semi-fonctions récursives {<p* } est donné par une gödelisation acceptable C2), alors, la définition de la complexité d'une classe de fonctions calculables peut être rendue indépendante d'une classe particulière de machines par une défi- nition axiomatique de l'ensemble des «fonctions de complexité» { O ^ cor- respondantes [6].

M. Blum montre l'existence de fonctions dont tout algorithme peut être remplacé par un autre algorithme pour la même fonction et moins complexe que le précédent. D'autre part, il montre qu'il existe une fonction h et une autre fonction T telles que pour toute classe récursivement énumérable de

(1) Institut de Mathématiques Appliquées de l'Université de Grenoble.

(2) C'est-à-dire par une énumération effective qui satisfait au théorème de l'itération ou théorème ST.

(3)

3 4 G. WERNER

fonctions de complexité {<£,},<&,- < <I>T(0 < h[x9<bfa)] Po u r t o u t*e t Po u r

presque tout x.

Nous sommes ici concernés par une sorte de problème inverse, c'est-à-dire estimer, pour un algorithme donné, sa complexité.

Pour certaines classes de fonctions de complexité {O£} on montre qu'il existe des fonctions qui « croissent trop vite », pour être calculables par un algorithme de complexité inférieure à h[x9 O;(x)]; sous certaines conditions h est une telle fonction.

Or, la question de décider si un algorithme donné calcule une fonction bornée par celle calculée par un autre algorithme est indécidable pour la classe des semi-fonctions {cp{} ; ainsi la fonction caractéristique de l'ensemble B = { < x, y > | <?x ^ <py o (V u)(3 z)[u < z et [[<px(z) et <py(z) définis et

<px(z) < <py(z)] ou [<?x(z) = <py(z) = indéfini]]] } n'est pas récursive. En effet, ce n'est qu'un cas particulier d'un théorème de Rice qui dit que toute propriété qui définit une dichotomie non-triviale de la classe des semi-fonctions récur- sives est indécidable.

Il est par contre possible de trouver des classes restreintes d'algorithmes pour lesquelles le problème suivant a une solution : soit A et B des classes d'algorithmes, existe-t-il une fonction récursive Y telle que

(*) (Vx) [[x e A n B~>W(X) = i] & [x e A n B-+ Y(X) = o]]?

Soit par exemple {fk(x) } la classe de fonctions définies par fo{x) = x, fk+ i(x) == 2fkix) ; un indice peut être trouvé uniformément pour tout fk ; soit A la classe de ces indices et soit B = { < x, y > \fx <fy}> le problème B est décidable relatif à la classe A comme on prouve facilement par induction Sur la construction de A.

Le problème d'estimer la complexité d'un algorithme d'une certaine classe C revient à trouver une classe A et un procédé effectif K qui fait cor- respondre à tout élément x de C un élément K(x) de A tel que :

(**)

(i) (V x € Q{3y € A)(\fz > zox{z) < fy(z) (ii) Qfx € C)(V z > zo)<ï>x(z) < fKix)(z)

(iii) B = { < x, y > | fx < fy } est décidable relatif à A.

On montre dans le paragraphe 1 que le problème (*) est indécidable pour un certain nombre de classes d'algorithmes ; le problème de l'estimation par contre s'avère soluble pour certaines de ces classes. Ceci pose les problèmes suivants :

(1) Quelles sont les classes A, C d'algorithmes telles que : A C C, (V x € C)(3j; ç A)(?x < fy et (*) est décidable pour Al

(2) Quelles sont les classes C pour lesquelles il existe un K récursif tel que : ( V x ) x € C et K(

(4)

Soit lyxfy(x) = lxyh(x, y) une fonction récursive. Si le problème de Pes- timation s'avère insoluble pour la classe de tous les algorithmes de complexité bornée {i \ (3 y)(V x ^ xo)$>i(x) < fy(x) } , la classe de fonctions récursives totales correspondantes

Fh = {ƒ | (3 0(3 7)(V x > xo)[f(x) = 9i(x) & O;(x) < h{x, y)] }

est-elle une classe récursivement énumérable, c'est-à-dire existe-t-il une fonc- tion qui énumère au moins un indice pour toute fonction dans Fh ?

On montre que si \yxh{x, y) a certaines propriétés alors il existe une fonc- tion universelle Xzjc<pf0(< i,x>) pour la séquence de fonctions 'kxfi(x)9

i — 0, 1, 2,... telle que "kixU((i)09 x, 9I0(< (0i> x >)) est une fonction d'énu- mération pour Fh qui appartient à une hiérarchie de classes restreintes d'al- gorithmes pour Fb pour lesquelles le problème de l'estimation (**) a une solution.

(3) Quelle est la complexité de \ixU(i, x)l

M. Blum [7] a montré que la complexité de la fonction 1 $i(3y<h(x))[T(x9x,y)]

0 sinon est plus grande que h(x) ; de combien?

Dans ce qui suit on essaie de donner une réponse partielle à ces questions.

On verra que les problèmes (1) et (2) ont une solution pour une classe impor- tante d'algorithmes. Le problème (3) ou problème de complexité d'une fonc- tion universelle pourrait être appelé problème de complexité d'un compila- teur (interprétatif) pour une classe d'algorithmes de complexité bornée ; on verra qu'elle peut être estimée et que dans un certain sens on n'ajoute que très peu à la complexité de <p£(;c) si <pt(x) est suffisamment complexe.

1. L'INDECIDABILITE DU PROBLEME (*) POUR CERTAINES CLASSES D'ALGORITHMES

On prouve d'abord que le problème (*) est indécidable relatif à la classe des algorithmes des fonctions récursives totales A ~ { x [ <px total}, puis on étend ce résultat à une certaine classe d'algorithmes de fonctions récursives primitives et récursives élémentaires. Un résultat similaire sera prouvé pour la classe des algorithmes obtenus par des schémas de définitions récursifs primitifs ou élémentaires par une méthode différente qui donne un corollaire intéressant.

Définition 1.1. Soit Mx la machine numéro x dans une liste de toutes les machines (ou programmes) d'un certain type M; soit cp^ft) la semi-fonction récursive calculée par Mx : Mx(xu ..., xk) s'arrête avec <p<.ft) dans un registre

(5)

désigné ou Mx{xu ..., x^) ne s'arrête pas et <p<.fc) est indéfini. On appelle x (le code pour) un algorithme ou indice de cp*.

On a la proposition suivante :

P.1.2. Le problème (*) est indécidable relatif à A = { x \ <px total }. Soit 1 si <pz(z) converge en ^ y pas de Mz

0 si <pz(z) ne converge pas en < y pas de Mz. Pour tout z, 9/(z)(^) est une fonction totale associée à z qui peut être effec- tivement trouvée donné z\

1 si y > y0 et cpz(z) converge en y0 pas on a 9/<«)O0 =

0 partout si <pz(z) ne converge pas.

Soit g une fonction caractéristique récursive pour

et soit x0 un indice pour la fonction constante Xz [1]; alors si g était récursive : g(f(x), xo) = 1 si <P/(jC)(z) = 0 pour tout z et <px0 = 1 o cpx(x) ne converge pas g(f(x), *o) = 0 si <p/(jc)(z) = 1 pour tout z ^ z0 et cp*0 = 1 o <px(x) converge, g serait fonction caractéristique récursive pour le problème de l'arrêt, ce qui est impossible.

On considère maintenant des classes d'algorithmes « de complexité bornée » : P.1.3. Le problème (*) demeure indécidable relatif à A = { x | il existe une fonction élémentaire h telle que (V y)(?x(y) converge en ^ h(y) pas }.

Démonstration comme ci-dessus :

(3 u ^ y)[T(z9 z, u)] est le prédicat : « <pz(z) converge en ^ y pas ».

On suppose [4], [8] qu'il existe une gödelisation de M telle que T(x, y, z) est un prédicat récursif élémentaire et cette classe de prédicats est close par rapport à la quantification bornée, donc Tz est une fonction élémentaire. Par consé- quent/peut être choisi de façon que Mf(z) s'arrête en h(y) pas au plus, h élé- mentaire, car A contient un indice pour toute fonction récursive élémentaire.

Définition 1.4. On dira que Mx est récursif primitif ou x € P o P est un ensemble récursif d'indices tel que iz : P —> FPR est une numération de Gödel des fonctions récursives primitives équivalente à la numération standard de FPR.

Mx récursif élémentaire ou x € E est défini de la même façon.

(6)

Définition 1.5. Soit /0(*), ZiOO, »•> ƒ*(*)> ••> max {ƒ*(*) } une suite de fonctions telle que pour tout k ^ 0 :

(1) ( V n ) ( V x ^ *<>)ƒ*(*) < A + i ( * ) ; récursif primitif (élémentaire pour

* = 0 , l ) ;

(2) fk(x) est monotone croissant et non-borné : fk(x + 1) > /(x) ^ JC;

(3) toute fonction récursive primitive est majorée par un ƒ£(#).

P.1.6. L'ensemble d'indices ^fc = { x | (3 »)(V z)yx(z) ^ fnk{z) 8c x e P(E) } n'est pas récursif.

On utilise le Lemme 1.7. Soit

B = {x\x€P8c<ç>x non-décroissant et 9 ^ + 1) < <ç>x(y) + 1 } alors les ensembles

C = {x\x£B& <px(N) est fini } et D= {x\x€B& yx(N) est infini } ne sont pas récursivement énumérables.

Soit { Wt } une énumération standard de tous les ensembles récursivement énumérables, on réduit

At = {x\ Wxfini } à C et A2 = { x \ Wxinfini } à D par une certaine fonc- tion récursive/;

donc : x € Ax of(x) € C et x e A2 of(x) € D.

Construction d e / : soit

Wx = dom <px = { y \ yx(y) converge o (3 z)T{x, y,z)};

on pose

9 / ( x )(0) = 0

?f(x)(Z + 1) =

I <pfix)(z) si (V 7 ^ z)tr(x, J , Z + 1 ) ^ ( 3 / I < z)T(x, y, ri))

\ 9/<x)W + 1 si (3 y ^ z)[T(x, y, z + 1) & (V « < 2) ^ T(x, y, n)].

Avec une gödelisation récursive élémentaire de M <pf (jc) est élémentaire, donc

o (3 w)(V 2)[w < z => 9/(x)(z) = 9/(x)(^

€ /> o (V «)(3 j)[« < y & (3 i«)7Xx, ^ «)]

o (V w)(3 z)[w < 2 & 9/(x)(z) > 9/(x)(w)l o x € ^2

(7)

Or, At est 22-complet et A2 est I^-completC1) [10], nous avons donc prouvé le lemme en déterminant le type d'isomorphisme récursif de C et de D.

Démonstration du théorème P. 1.6. :

Soit hk(x:O) = x,hk(x,y + l)=fk(hk(x,y))<hk(x,y)=fl(x)y et soit A\ = {x | xeP&<px(N)&ni}ctA'2 = {x\ x € P & <px(N) infini } des ensembles d'indices de fonctions récursives primitives. Ax et A2 sont réductibles à A\ et A'2 respectivement; il suffit de poser Wx = <?g(X)(N) où g(x) est l'indice d'une fonction récursive primitive qui énumère Wx. Par conséquent, A[ est réductible à C et A2 à D par un h(z).

Soit, pour tout z € P, n(z) € P un indice de lxhk(x, <?h(z)(x))9 alors par défi- nition 1.5.(3)

(V *)<?»(*)(*) < ^ƒ£(*) pour un certain 7 o <p,,(z) borné (V x ^ ^o)?«(z)W > tefl(x) Po u r tout j o (pfc(z) non-borné.

Corollaire 1.8. L'ensemble d'indices Ak est du type S2(3 V-définissable).

La signification profonde de la proposition 1.6. est donnée par le Corollaire 1.9. Il n'y a pas de fonction récursive K(z) telle que

(V *)(V z € P)[q>,(x) ^ f&x) of&x) = çw( * ) ] .

Supposons le contraire : soit Bk un ensemble récursif d'indices pour { ƒ£(*)> « = 0, 1,... } : alors Ak serait réductible à Bk par K, donc récursif.

Mais ^4fc n'est pas récursif.

2. UN CAS SOLUBLE D'UN PROBLEME D'ESTIMATION Dans le paragraphe précédent on a trouvé que le problème (*), c'est-à-dire de savoir si cpx est borné par <py, x, y e C n'a pas de solution pour un certain nombre de classes importantes d'algorithmes C. Soit maintenant C une classe d'algorithmes et Axy<pto« x, y » une séquence récursivement énumérable de fonctions fo(x), fi(x)9 »- telles que

(i) *y<pio« *>y» = tyfJy) p°ur tout x,

(2) il existe une fonction récursive oc qui énumère un ensemble d'indices A,

<^Q pour {fx(y) } tel que le problème (*) est décidable relatif à A;

(3) (V i)[i e C => (3 *XV x > xo)Mx) < ƒ*(*)]].

(1) Un ensemble ii est £2-complet s*il est 3 V-définissable et si tout ensemble a V-défi- nissable est réductible à E.

(8)

Une telle classe existe; on essaie donc de construire la classe C telle que le problème suivant ait une solution :

Définition 2.1. Le problème de l'estimation est soluble pour la classe d'algorithmes C => il existe Xx^cpi0« x, y » avec les propriétés (1) à (3) et une fonction récursive h : C —> A telle que

( V ƒ ) [ ƒ - <P t(x) & i € C ^ (V x > xOf)9 t(x) < 9HO(X)].

On montre d'abord que E, la classe de définitions de fonctions élémentaires qui est close par rapport aux schémas de la substitution simultanée, de la somme finie et du produit fini, est une classe pour laquelle ce problème de l'estimation a une solution :

P.2.2. Le problème de l'estimation de la définition 2.1 est soluble pour la classe E de définitions (équationnelles) de fonctions.

Lerame 2,3. (Propriétés de clôture de la classe E) : E est close par rapport à :

(i) la minimisation bornée, (ii) la récursion primitive bornée,

(iii) Rel(£) = { R | (3 ƒ € E)R(x) of(x) = 0 } est clos par rapport à la quantification bornée et par rapport aux opérations de la logique proposition- nelle.

(i) On utilise les indices récursifs élémentaires, similaires aux indices de Kleene [9], pour la caractérisation de la classe E des dérivations de fonctions récursives élémentaires. Soit donc E la plus petite classe de dérivations qui contient

(1) Uï = Xxx ... xn[xt] (1 < i ^ ri) codifié < 1, U n >

C? = X*i ... xj[i\9 Un > 0 < 2, i, n >

h =*xy[x + y] < 3 , 2 >

f2 =\xy[x^y] < 4 , 2 >

(2) et qui est close par rapport à la substitution simultanée f{n\x) = ém\g^\x\ ..., g£\x» < 5, n, g, gu ..., gm >

(3) et par rapport à la somme finie et au produit fini ƒ<»+ D(3E, y) = £ gf r f) < 6 in + i)g>

f( n + 1\ x , y ) = Y [ g ( x , i ) < 7 , » + l , * >

i<y

°ù g, gu —J gm s o n t le s indices de fonctions g, gl9..., gm introduites par un des schémas de (1), (2) ou (3).

(9)

On dira que g(n+l)(x, y) € E si g € E.

Soit

= U z < [g(x, z) = 0] si (3z < yMx, z) = 0] 1 [ 0 sinon J

Ç.E

car

(ii) Soit /("+1>(Jc, y) défini par

f(x,0) = g(Jc) £<">, /t(l>+2> et / "+ 1 ) € E

f(x, y) < j(x, y)

avec fc(x, ƒ) = < j(x, 0) j(x, y) >

0 = g(x) A (V/

où Xx0 — •«>. < x0, —, x„ > = z et XzXz)y, < (z)o> —. (z)« > — z> s o n t d e s fonc~ tions de codifications des «-uplets qui peuvent être choisies dans E [8].

(III) - , [ƒ(*) = 0] o [[1 - ƒ(*)] = 0]

= 0) A fe(*) = 0)] o [[ƒ(*) + g(x)] = 0]

, y) = 0] o X /(if, y) = 0

Si Ton pose Xxy[x. j] = X x e t 'kxylx*] = f i ^ o n obtient une autre caractérisation de E :

(i) ÜT, Cr, Xx[x + 1], X^[xy] = /3(x, y)

(ii) close par rapport à la substitution simultanée et par rapport à la récur- sion primitive bornée.

Lemme 2.4. La suite de fonctions \ygliy), x = 0, 1, 2,... satisfait au propriétés (1) à (3) de la définition 2.1.

Soit

Uy)=g(Kx,y));

h(x. y) = gx(y) et avec g =/3(fc, y) = gk(y) = on a hk(x, y) = gl(y) = kkV, les itérées successives de k*.

(10)

(1) Xj«p( < x, y > ) = !yhk(x, y) = g%y) € E pour tout x, mais

0,y)) pour un certain >>OJ donc cp« y0, y0 » + 1 < cp« j0, y0 » , une contradiction et cp(z) $ K

(2) Construction de la fonction récursive afe qui énumère un ensemble d'indices pour Xyg%(y) pour lequel le problème (*) est décidable :

soit j = < 7,1, < 2, fc, 1 > > l'indice de gfc(y) = k\ la fonction a(0) = < 1,1, 1 >

a(n + 1) - < 5, 1,7; o(/i) >

définit un ensemble d'indices élémentaires pour gl(y) ; on vérifie aisément que 8k+l(y) > êk(y) > y P °u r t o u t ^ > O et tout y.

(3) (V i)[t € C => (3»)(V x > xo)[9i(x) ^ gnk(x)]].

Cette propriété est facile à prouver par induction sur la construction de la classe C des indices élémentaires;

(i) i indice d'une fonction initiale : immédiat

(ii) substitution : si f(x) ^ gl(x) et ffcc) < gl%x), 1 ^ i < m

( V ^ xQ)f(A(x),^fm(x)) ^ «KmaxC/i, ...,/J)

somme finie et produit fini : si f(x) ^ gl(x)

( V o xo) S AO < S «KO < * •

n«î(o

Pour la démonstration de la proposition 2.2, il suffit maintenant de poser : /»'(ƒ) = 0 s i ( / )0 = l , 2 , 4

h'(f) = 1 si ( / )0 = 3

*'(ƒ> = *'fe) + max (A'fei), - , A'(f J si ƒ = < 5, n, f, gu ..., gm >

*'(ƒ) = *'(*•)+1 s i / = < 6 , « + l , g >

A'(/) = A'^) + 2 s i / = < 7 , « + l)g >

A'(/) = indéfini sinon on pose h" = v-h'(f).

(11)

On peut aussi déterminer la fonction h' pour les autres schémas de clôture de E, puis avec rémunération standard des indices récursifs élémentaires -m : N—> E, on obtient une fonction récursive totale h~ n~ 1hffn(x).

3. LA SOLUTION DU PROBLEME (**) POUR LA CLASSE E On considère maintenant une certaine classe de machines de Minsky et une mesure de complexité fixée :

Définition 3.1. { Mt } est la classe de machines de Minsky o { M(- } est une des opérations de base sur le contenu X du registre x(x = 0,1, 2,...) :

(i) 0fx)0fy)Sx:X:=X+ 1; Nx : X := 0; Txy : X := Fe{M£};

ou { Mt } est une opération portant sur une suite d'instructions MxMpF : itérer Mp tant que X ^ 0 (ii)(Vx)Mp, Mq € {M, } ^

MpMq : effectuer Mp puis Mq

Définition 3.2, Mt calcule <pi avec complexité ®t o (V x)[Mi(x) s'arrête après exactement ®i(x) pas avec <pt(x) = < x, cpf(x) > dans les registres ou Mf

ne s'arrête jamais et <Pi(x) = CE>i(x) = indéfini].

P.3.3. La classe des algorithmes (M-indices) de complexité bornée Ê = { i \Mt calcule cpj avec complexité <Df & (3/i)(Vx)#f(x) < gl(x)} n'est pas récursivement énumérable.

!

g$(x) si (3 n < x)T{z, z, n) 1 si (V n « JC) -n J(z, z, «) Soit

donc (3 *0)(V x > xo)9/<2)(x) = g^(x) o (V «)(3 xo)(V x > xo)&fiz}(x) > g%(x) et (V x)9fizy(x) = 1 «*> (3 i,)(V x)d>/(2)W < «Rx)

! s i <V ^ s W ^ « S W ^ < ^ " > 6 «

0 si (3 xo)(V x > xo)0z(x) > gnk(x) o < z, « > | oc (3 «M/(z), ») = 1 o (3 «)(V x)9/(,)(x) = 1 o (3 «)(V x)O/w(x) < gnk(x)

o <p2(z) diverge donc Ê = { z | (3 «)[< z» « > € a] } n'est pas récursivement énumérable.

La classe M et la classe correspondante de fonctions F-g = {ƒ | (3 i € ^)<PÎ

= ƒ } est close par rapport à un certain nombre de schémas de définitions S : S(Ë) C E. En particulier, E est close par rapport aux schémas de clôture de E, SE. Ces propriétés de clôture permettent de construire, pour tout sous-

(12)

ensemble récursivement énumérable F de Ë> une fonction récursive k, telle que (V i € S(F)) [O£ = çft(0 &k(i) € SB(F% Si l'on pose J1 = E, la classe des algorithmes des fonctions récursives élémentaires, on voit que E et Ë con- tiennent un indice pour toutes leurs fonctions de complexité.

Comme M peut être arithmétisé dans E, on en déduit que pour toute fonc- tion dans F£ il existe un indice récursif élémentaire pour la même fonction et tel que le problème de l'estimation de la complexité (**) ait une solution.

P.3.4. Le problème (**) est soluble pour E o (3 k fonction récursive totale) (V i € E)[k(i) € E & «f = 9 m ^ <pn(0].

Pour la démonstration, il suffit de montrer l'existence d'une telle fonction récursive totale k, puis on pose n(i) — hxk(i), où ht correspond à la fonction récursive totale de la définition 2.1.

On remarque d'abord (et on prouve aisément par induction sur la définition des indices récursifs élémentaires) qu'il existe un procédé effectif (en fait, un

« compiler ») qui, à tout indice récursif élémentaire donné, fait correspondre un M-indice équivalent (voir aussi la définition 1.4).

On détermine maintenant l'influence de certains schémas de définitions sur les fonctions de complexité de la classe Ê.

Lemme 3.5. La classe È est close par rapport au schéma de (i) la composition des fonctions,

(ii) l'itération bornée,

(iii) la somme finie et du produit fini, (iv) la minimisation bornée.

Il suffit de se borner aux fonctions singulières sans restriction de la généralité car si Xz/(1)(z) = Xzg(rt+1)((z)Û5..., (z)n) on peut associer

Xx0 ... xng^n+1\x09..., *„) avec Xxf^x) = ƒ<*>( < x09 ..., xn > ) et E contient une fonction de Cantor (des couples).

On adopte une méthode de [8] pour prouver que si ƒ et g sont calculables avec fonctions Or, 9, et O^, 9^ fetg€É9 alors

(i) h(x) =fg(x) est calculable avec

<?h(x) = ?i(?/(9fl(*))) = ?/?ƒ( < x, g(x) > ))

> S(x)J(g(x)) > ) = < xjg(x) >

donc OA(X) = 9ft(ft)W est récursif élémentaire dans ƒ, g, Of et Q>9 et avec le lemme 2.4(3) il suit que k(h) e Ê,

(13)

(ii) h(x) = fix)1(g((x)0) < j(pc) est calculable avec

?K < Mo, W t , 0, g ( ( 4 ) > ) = < (*)o, (*)i - *, t A( < (*)o, O ) >

) est élémentaire en g,f, Off et <&r ;

k(h) €Êo(y x)[h(x) < j(x)], ce schéma est non-effectif car

n'est pas en général décidable pour Ë par P. 1.3,

(iii) ƒ = E £(0 e s t calculable avec (D/jt) - £ O,(0 + £ (3*(0 + 1) + 1 et similairement pour f(x) = IlgO')?

(iv) ce schéma est équivalent à certains schémas précédents.

Définition 3.6. S(C) est la classe de fonctions de complexité de la classe d'algorithmes C

Corollaire 3.7. Q(E) C E.

Immédiat par le lemme 3.5.

La définition explicite de la fonction récursive totale k(pc) de la proposition P.3.4, peut également être fondée sur la démonstration du lemme.

Le problème de l'estimation n'a évidemment pas de solution pour la classe Êy car celle-ci n'est pas récursivement énumérable par la proposition P.3.3 et par conséquent n'est pas le domaine de définition d'une fonction récursive.

La proposition P.3.3, permet également de montrer qu'il existe des fonctions qui « croissent trop vite » pour être calculables par un algorithme de complexité inférieure à une certaine borne.

Corollaire 3.8. Il n'y a pas d'indice dans Ë pour la fonction f(x) = gk{x\x)9 a(jc) € FË et non-borné.

Supposons le contraire; on obtient une contradiction :

Soit gftx) = hk(x, x), hk(x, y) = gl(x) et g?x\x) = hk(x, ot(*)).

Soit ƒ € is un indice pour h(x, a(x)); hk est obtenu de gk par itération et composition, d'après le lemme 3.5 :

®ÂX) ^ 9/nfc(/)(;c) — gk(~\x) Po u r u n e certaine fonction K(x) récursive élémentaire et par 3.5.(ii) :

(î)+(x\ ~> > Ô (x fx(x\ ~ 7 i h.(Y i\\ *> h (Y neCxW ">• <rK^O(x\

(14)

4. CLASSES RECURSIVEMENT ENUMERABLES DE FONCTIONS RECURSIVES ET HIERARCHIES

II résulte des sections (2) et (3) que pour la classe E des algorithmes (M- indices) récursifs élémentaires le problème de l'estimation de la complexité (**) est soluble. Le même problème n'a pas de solution pour la classe de toutes les machines Ê dont la fonction de complexité est bornée par une des fonctions récursives élémentaires g£f

On utilise maintenant une méthode de gödelisation de M [8] pour la cons- truction de fonctions d'énumération de classes de fonctions récursives totales, Fh - {ƒ | ƒ = <?* & (30(V x)®z(x) < ?l0( < î, x > ) } où 9to( < * , * > ) énumère une suite de « fonctions d'estimations » Xx<pio« î, x » = ~kxh(xf y). Lorsque l'on choisit 7oc<piQ( < i9 X > ) = 'kxglix) on obtient la classe des fonctions Ff. La fonction d'énumération correspondante détermine un certain sous-ensemble de E, celui-ci contient donc (au moins) un indice pour toute fonction dans Ff:

II en résulte que les classes de fonctions

FE = {ƒ| ( 3 x € £ ) 9 , = ƒ } et FE= { ƒ | ( 3 * € l > p , = ƒ }

coïncident. Ce résultat peut être généralisé; on montre que Ton peut effec- tivement construire une infinité de classes récursivement énumérables Fh0 C Fhl C ^ C , , , qui coïncident avec certaines hiérarchies de fonctions récursives totales. En outre, si {ft(x) } est une suite de fonctions d'estimation d'une certaine classe d'algorithmes, la classe de fonctions correspondantes Fh

peut être caractérisée à l'aide de toute fonction cpi0( < i, x > ) qui énumère une infinité d'éléments de {ft(x) }.

Soit maintenant Xxç£o( <j>, x >) ~ XJC/J(X), y = 0, 1, 2,... une suite de

«fonctions d'estimation» récursives totales pour la complexité des algo- rithmes d'une certaine classe C. On sait (section 3) que Xyxh(x, y) = Xjx/l(x) et plus généralement ~kyxh(x9 a(j)), a non-borné, n'est pas C-calculable.

Définition 4.1. Soit "kxfl(x), y = 0, 1, 2,... une suite de fonctions telles que (1) (V y)fl(x + 1) > lxfl(x) > x et A x / r *00 > ^Mx); fo(x) ^ 2X; (2) (V î € C)(3fc)(V xybfic) < ft(x) ;

(3) en particulier : (3i € C)(3fc)(V *)<pf = /0 =>Of(x) ^ /o(x) c'est-à-dire qu'il existe un algorithme pour f0 dans C.

P.4.2. Soit XxA(x? a(j))5 oc élémentaire et non-borné, une suite de fonctions satisfaisant à la définition 4.1 alors,

(i) la classe de fonctions Fh = {g | g = çz => (3 i)(V x)3>z(x) ^ XxA(x, ot(O) } est une classe récursivement énumérable.

(15)

(ii) II existe une classe d'algorithmes qui contient au moins un indice pour tout g e Fh et pour laquelle le problème de l'estimation de la complexité est soluble.

(i) II suffit de construire une fonction universelle pour cette classe de fonc- tions, c'est-à-dire d'indiquer un procédé qui énumère au moins un indice pour toute fonction de cette classe. On procède d'abord à la construction d'une cer- taine « forme normale » pour les fonctions de Fh; Pénumérabilité récursive en est un corollaire.

(ii) Soit h et f0 des indices pour h et fQ respectivement; un algorithme d'une fonction universelle pour Fh peut être construit dans la classe SE (h) ( = E(h)) des définitions par des schémas récursifs élémentaires en h et tel que pour tout i fixé, si <p£ = g €Fh, il fournit un indice pour g dans E(f0). Le problème de l'estimation (**) est soluble pour cette classe.

Lemme 4,3. Il existe une arithmétisation de M telle que la fonction

\ixi U(i, x, t) = code de la configuration des registres de Mt si i ^ <&*(*) Xixt U(U x, 0 = 0 si t < $>&)

est récursive élémentaire.

Rödding montre dans [8] pour une machine M différente, mais équivalente, qu'il existe une codification {pt } des machines { Mt } telle que U(i, x, t) est même sub-élémentaire (la classe des fonctions sub-élémentaires contient les fonctions initiales de E et est close par rapport à la substitution simultanée et par rapport à la somme finie; toute fonction sub-élémentaire est bornée par un polynôme).

Étant donné un M-indice x on définit une x-configuration Cx par

<( x, /, x0,..., xn y où i est le code d'une instruction de base de Mx, (px)i — n et x0,..., xn sont les contenus des registres.

On prouve d'abord sans difficulté ([4], [8]) que les prédicats M(px) opx est le code de Mx € { Mt } et Conf (px> y) o y est x-configuration sont sub- élémentaires et que les codes px pour les machines Mx peuvent être énumérés par une fonction récursive élémentaire. Par conséquent, la fonction successeur

\yS(x, y) pour les ^-configurations y :

S(x, y) — configuration successeur de y, si une telle configuration existe

S(x9 y) — y ûy est finale

est sub-élémentaire, et la fonction de configuration :

C(i, x, t) = « /-configuration Cf après t pas de Mt » peut être définie par une récursion bornée :

C(i, x, 0) = < Ï, F(ï), x } = g(i9 x), F(i) la première instruction de base de M(

C(i, xtt+l) = S(i, (Cft x, 0) = KU C(i, x, t))

(16)

avec Xxg(f, x) et XX/Z(Ï, x) sub-élémentaires, donc Xixt C(i, x, t) élémentaire (si Ton borne {p^x = n < n0 on peut trouver un 'kxtjXh x, 0 sub-élémentaire).

Par définition de S(x, y), C(i, x, t + 1) = C(i, x, i) lorsque C(i, x, 0 est une configuration finale < U L(ï), <p£(x) > :

= jtf [Cft x, 0 = C(i, x, / + 1)] et

^, 0 = C(i, x, f Finalement, on pose

XixyU(i,x,y) =

0 Démonstration de P.4.2. :

(i) On construit une fonction \ikxg(i ; k, x) telle que

, x) - f(x) si (x?[C(/5 x, t) - C(i, x, t + 1)] ^ /0(fc)(x) ft A:, x) - 0 si jJtr[C(î, x, t) = Cft x, f + 1)] > /g(fc)(x) où p(x) = max { a(i) } est non-décroissant et non-borné ;

donc fffyc) ~f(x) € Fh -> &k)f(x) - lxg{U h, x)

<?&) =f(x) tFh^(V k)-kxg{U kt x) =j(x) ^f(x) & j(x) € F, Xflfc^ft k, x) = likxUiU x, fiik\x)) est cette fonction.

Par le théorème S^[9], il existe une fonction récursive S(e, i, k) telle que

\xU(i, x, fi{k\x)) = >^xcpS(eiI-)ïf)(x) où e est un indice pour C/. Donc, si i € C =• (3 k)-hxg(it k, x) = ƒ = <p ,(x) : FA ç { 9S(#>W | i, *: €

f (a)

et si 7 € 5(e, /, ife) => f ( a ) * * c ^ - ? * * * . < / ^ o u

s Fh

(ii) D'après le lemme, un indice e pour XikxUQ, x, fo(k\x)) peut être trouvé dans £(/*), ^ un indice pour \yx ƒ 0(y)(x). D'autre part, S(e, i, À:) C E( ƒ 0), donc ^(/o) contient au moins un indice pour toute fonction dans Fh et le pro- blème (**) est soluble pour E(f0).

Corollaire 4.4. — (i) \inxU(U x, gi{n\x)) énumère la classe F^ \

(ii) FE = F»

(i), (ii) immédiat par P. 4.2. (i), (ii).

(17)

Corollaire 4.5.

1 si (3 M < h(x)T(x, x, ri)

, h(x) récursif, est calculable avec 0 sinon

complexité O/(x) = gQ(x, h(x))9 g0 récursif élémentaire.

(ii) Pour tout a non-borné, h(x, a(j)) détermine la même classe Ffc.

[ si O£(JC) ^ h(x)

(i) Soit îdxDJLCiU x9 h(x))) = j

( 0 si <&&) > h(x)

, x, h(x))) = cpe(x, h(x)), e 6 E par la définition de C ; donc (x, h(x)) = <pfc(c)(x, h(x)) = gQ(x, h(x)) ; k(e) e E.

(ii) Soit a(x) tel que (V u)(3 x)(3 i)[« < x Se x - a(0] ; 9e(h x, y) = -KiyxUiU x, h(x, a(j))) = XikxU(i, x, fk0(x)) -

00 oo

pour une infinité de Je, donc U {gS(etUy) } = U {gs(/,i,ft) } .

On généralise maintenant la construction de certaines hiérarchies de fonc- tions récursives à l'aide d'un théorème de Rabin [5] et Blum [6] :

P.4.6. — Soit 7och0(x, <x.(y)) = Xx/5(y)(x)? a non-borné, une suite de fonctions récursives, fo(x) satisfaisant à la définition 4.1. On peut construire une hiérarchie de classes récursivement énumérables de fonc- tions Fh0 C Fhl C Fh2 C ... et d'algorithmes correspondants pour lesquels le problème (**) a une solution.

Soit E(f0) la classe de définitions de fonctions élémentaires en f0 ; Fh0 == FE(fi)) par la proposition P.4.2. Donné /0, il suffit de construire fx(x) > max [fo{i\x)] =fH(x\x), p(x) non-borné et non décroissant, de telle

i<x

façon que Fhx = FE{£_iy

On prouve d'abord que le théorème de Rabin-Blum s'applique à la classe {gi(x)} des fonctions de complexité de E(f0): soit lxE( < 1, x >) =fi(x) une fonction d'énumération pour les fonctions récursives élémentaires en /o ; la proposition P. 3.4 permet de trouver un indice k(ï) pour la fonction de complexité correspondante gt(x) et le théorème S " donne gi(x) =fk(i)(x) = (?tm.

Le prédicat ^xy[gt(x) — y] o ~kixy[M(i, x, y) = 1]

Mxy[gi(x) ^y]o Uxy[M(i9 x9 y) = 0]

est récursif, car gx est total et borné.

(18)

Théorème 4.7. (Rabin-Blum) :

Pour tout gi il existe une fonction ƒ : N-> {0, 1 } telle que : (i) si j est un indice pour ƒ, gt(x) < ®j(x) pour presque tout x ;

(ii) il existe un indice k pour ƒ tel que <pk = ƒ = <pT(0 avec une certaine fonction récursive T ;

(iii) il existe une fonction récursive h telle que OT(0(JC) = ®k(x) < Kx> £»(*)) pour presque tout x.

Pour le calcul de f(x) on considère l'ensemble de fonctions { 9o(x)> •••> 9*(*) } 5 o n cherche le premier indice i < x qui n'a pas été utilisé pour le calcul de f(j), j < x et qui est tel que 0,00 < g(x), puis on pose f(x) = 1 — 9i(x) si un tel f existe

et f(x) = 0 sinon.

On montre sans difficulté que l'algorithme s(i) pour la fonction f(x) du théorème peut être effectué par une machine de Minsky en moins de fo+k(x) k constant, si gt(x) < fl(x). Donc, pour tout gt(x) donné, f(x) possède un indice dans E(f 0)

si Et =ƒ*(*)» a l o r s ft*) =fsk(i) =Â(t) et T(Ï) € £ ( /0) .

La fonction de complexité de f(x) est^T ( 0, elle peut être majorée par une itérée de fo(x) :

Âr(i)(x) ^ fhlkTii)(x) = fS(i\x) = ho(x9 a(0)

où la fonction non-bornée a(/)> qui dépend de l'énumération E( < iy x ) ), peut être effectivement déterminée.

La fonction h{x) = max [/S(0(x)] = fo(x\x) est une majorante pour toutes les fonctions fkT(i).

Soit/t > fo(x\x) une autre fonction qui satisfait à la définition 4.1. Le pro- cédé peut être itéré et dorme une hiérarchie d'algorithmes E(f0) C E{f^) C ...

et de fonctions Fh0 C Fhl C ... correspondantes. L'inclusion propre des classes suit si l'on prouve que E(ft) contient une fonction d'énumération pour Fh0 : \ïkxU(U x, fi(k\x)). Il suffit de montrer que fl(y)€E(ft) mais f%^\x) = [iz < ^(max (x, y)) [fl(y\x) = z] et cette fonction est élémentaire en fu ce qui prouve P.4.6.

(19)

BIBLIOGRAPHIE

[1] J. HARTMANIS, R. E. STEARNS. « On the Computational Complexity of Algorithms » Trans. Amer, Math. Soc, 117, pp. 285-306 (1965).

[2] P. M. LEWIS II, R. E. STEARNS et HARTMANIS J. « Memory bounds for the réco- gnition of context-free and context-sensitive languages », 1965, IEEE Conference Reord on Switching Circuit Theory and Logical Design, pp. 191-202, IEEE, New- York (1965).

[3] J. HARTMANIS, « Tape-Reversal Bounded Turing Machine Computations », Journal of Computer and System Sciences 2, Nr 2, pp. 117-135 (1968).

[4] R. W. RITCHIE, « Classes of Predictably Computable Functions », Trans. Amer.

Math. Soc, 106, pp. 139-173 (1963).

15] M. O. RABIN, « Degrees of Difficulty of Computing a Function and a Partial Ordering of Recursive Sets », Technical Reporter 2, Hebrew University, Jérusalem, (1960).

[6] Manuel BLUM, « A Machine-Independent Theory of the Complexity of Recursive Functions », Journal A.C.M., avril 1967, vol. 14, Nr 2, pp. 322-336.

{7] Manuel BLUM, « Recursive Function Theory and Speed of Computation », Canadian Math. Bull. 9 (1966), pp. 745-750.

[8] Dieter RÖDDING, « Klassen rekursiver Funktionen », Lecture Notes in Math. 70, 1968, Springer-Verlag, Berlin, pp. 159-222.

[9] S. C. KLEENE, « Extension of an Effectively Generated Class of Functions by Enumeration », Colloquium Math. VI (1958), pp. 67-78.

[10] Hartley ROGERS, Theory of Recursive Functions and Effective Computability, Mac Graw-Hill Book Company, New York, 1967.

Références

Documents relatifs

Complexité dans le meilleurs cas : Modèle de complexité peu utile Complexité en moyenne : à partir d’une répartition probabiliste des tailles de données, tente d’évaluer le

Le temps d'exécution n'est pas proportionnel à la taille de l'entrée mais la c'est à peine moins bien, on parle parfois de complexité quasi-linéaire.. Exemple : Le

En effet, si on connaît la distance minimale, d, du code C déterminé par H, on peut répondre à la question du problème II en comparant w et d, et si on peut résoudre le problème

Partant d'un sommet s on cherche le sommet v(s) qui en est le plus proche en calculant les n distances de s à tous les sommets non rangés dans la chaîne; en cherche ensuite v(v(s))

Pour avoir des chances de pouvoir établir une correspondance précise entre les nombres d'opérât ions et le temps d'exécution il semble nécessaire de suivre la démarche proposée

le coût de l’exécution cout A (d ) = nombre d’exécution de chaque opération de l’algorithme A sur la donnée d. En général, on restreint le nombre d’opérations

On demande d’écrire un algorithme permettant de calculer cette somme, pour chacune des deux représen- tations, puis de comparer

complexité temporel en fonction d'un paramètre n passé à l'algorithme on se concentre sur des grands n en utilisant la représentation au de haine et on s'intéresse au pire des