• Aucun résultat trouvé

Machines et circuits

Dans le document COMPLEXITÉ ALGORITHMIQUE (Page 157-161)

Uniformité et non-uniformité

5.2 Circuits booléens

5.2.2 Machines et circuits

Dans les deux propositions suivantes, nous allons voir le lien étroit en machines de Turing et familles de circuits. Tout d’abord, on peut évaluer efficacement un circuit.

5-X Proposition

SiC désigne un circuit booléen de taille t et de profondeur p, etx une entrée pourC, alors il existe une machine de Turing fonctionnant en tempsO(t3)et en espaceO(p)qui sur l’entrée(C,x)calculeC(x)(on remarquera que la taille de l’entrée(C,x)estO(t2)à cause du code deC).

Démonstration Nous pouvons évaluerC(x)de manière récursive en suivant la défini-tion de la valeur d’une porte du circuit.

Eval(C,x) :

– si C est réduit à une entrée étiquetée par une variable xi alors renvoyer la valeur dexi;

– siC est réduit à une entrée étiquetée par une constantec alors renvoyer la valeur dec;

– si la porte de sortie deC est une porte¬dont l’argument est le sous-circuitC, renvoyer¬Eval(C,x) ;

– si la porte de sortie deC est une portedont les arguments sont les sous-circuitsC1etC2, renvoyer Eval(C1,x)Eval(C2,x) ; – si la porte de sortie deC est une portedont les arguments sont

les sous-circuitsC1etC2, renvoyer Eval(C1,x)Eval(C2,x).

Le temps d’exécution de cet algorithme vérifie

T(|C|)O(|C|2) +T(|C1|) +T(|C2|)

car on va chercher dans le code deC les sous-circuitsC1etC2(ce qui prendO(|C|2) qui est la taille du codage deC) puis on évalueC1(x)etC2(x)(ce qui prend un temps T(|C1|) +T(|C2|)). Puisque|C1|+|C2||C| −1, on a|C1|3+|C2|3(|C| −1)3et on montre aisément par récurrence queT(t) =O(t3).

138 Chapitre 5. Uniformité et non-uniformité Pour la borne en espace, si S(p)désigne l’espace utilisé pour évaluer un circuit de profondeur p, on obtient

S(p) =max{O(logt),S(p1) +O(1)}

puisque l’on va chercher dans le code deC le sous-circuitC1(ce qui prend un espace O(log|C|)), en réutilisant cet espace on évalueC1(ce qui prend un espaceS(p1) puisqueC1 est de profondeur p1), on mémorise le résultat (espaceO(1)) et on fait de même pourC2en réutilisant l’espace, puis on effectue l’opération sur les deux résultats. Au total, on trouve donc un espaceS(p) =O(p+logt); puisquet2p+1

(lemme5-T), on obtientO(p). ⊓⊔

Réciproquement, une famille de circuits peut simuler le fonctionnement d’une machine de Turing.

Idée de la démonstration SiAest reconnu par une machineMfonctionnant en temps t(n), on considère le diagramme espace-temps deM(x)comme à la figure3.2. Dans ce diagramme, le contenu de la casei au tempsm+1dépend uniquement du contenu des casesi1,i et i+1au tempsm, ainsi que de l’état au temps m. On construit un circuit ayant t(n)« niveaux », chaque niveau correspondant à une étape dans le calculM(x)(voir la figure5.2(a)). Chaque niveau contientO(t(n))portes : un nombre constant de portes dont les valeurs coderont l’état de la machine à l’étape en cours, et pour chaque case un nombre constant de portes dont les valeurs coderont le contenu de la case à l’étape en cours, et un booléen pour savoir si la tête de lecture est sur cette case. Puisque le nombre d’états et la taille de l’alphabet de travail sont des constantes, un tel nombre de portes suffit.

Enfin, les cases du niveaum+1prennent toutes leurs valeurs en fonction des cases du niveaum: il suffit d’un petit circuit, toujours le même, de taille constante, dépendant de la fonction de transition deM, calculant le contenu de la casei à l’étape m+1 en fonction du contenu des cases i1, i et i+1 et de l’état au temps m (voir la figure5.2(b)). De même, pour calculer l’état au temps m+1, chaque case du niveau mest affublée d’un circuit de taille constante calculant, en fonction de l’état au temps m, le nouvel état si la tête est sur cette case au temps m, et0sinon : il suffit ensuite de faire une grande disjonction bits à bits de tous ces résultats pour obtenir l’état au tempsm+1(voir la figure5.2(c)). Tout cela donne un circuit de tailleO(t(n)2). Pour simuler une machine non déterministe fonctionnant en espaces(n), on utilise à nouveau la méthode du graphe des configurations. Il s’agit de construire un circuit

5.2. Circuits booléens 139

Figure 5.2 – (a) Vue d’ensemble du circuit simulantM(x)selon le diagramme espace-temps deM(x). (b) Calcul du contenu de la casei en fonction de l’étatqet du contenu des cases voisines à l’étape précédente. (c) Calcul du nouvel état en fonction de

l’ancien et de la case lue.

décidant s’il existe un chemin de taille2O(s(n))de la configuration initiale à une confi-guration acceptante. On suit pour cela l’algorithme de Savitch (théorème4-AS) : pour i de0às(n)on construit un circuit Ci décidant s’il existe un chemin de taille2i d’une configurationuà une configurationv.

C0doit simplement décider siu=vou sivest accessible depuisuen une transition.

Il s’agit de vérifier que les cases deune contenant pas la tête n’ont pas changé, que celle contenant la tête a changé en accord avec la relation de transition, et de même pour l’état. Pour cela, on compare pour chaque case son contenu dansuet dansv (profon-deur constante) et on doit faire la conjonction de ces s(n)comparaisons pour savoir si toutes son correctes : sous la forme d’un arbre, la profondeur est alorsO(logs(n)) (voir figure5.3(a)).

Pour construireCi+1, sur l’entrée (u,v) on teste pour toute configuration w si on aCi(u,w) = 1 et Ci(w,v) = 1. On fait tous ces tests en parallèle (« en largeur », cf. figure5.3(b)) si bien que la profondeur est celle deCi à un près (et la « largeur » est2O(s(n))). Puis il faut encore faire la disjonction de tous les résultats pour savoir s’il existe un telw, ce qui prend une profondeurlog(2O(s(n))) =O(s(n))sous la forme d’un arbre. Ainsi, la profondeur deCi+1est celle deCià laquelle on a ajoutéO(s(n)). On en déduit que la profondeur deCs(n)estO(s(n)2). ⊓⊔

5-Z Remarque La preuve précédente est constructive et très uniforme : elle donne un algorithme déterministe fonctionnant en espaceO(logt(n)) qui, sur l’entrée n en

140 Chapitre 5. Uniformité et non-uniformité

u tête v tête

sortie O(1)

logs(n)

(a)

Ci Ci Ci Ci

sortie

u w1w1 v . . . u w2sw2s v

. . .

i s(n) s(n)

(b)

Figure 5.3 – (a) Le circuitC0pour tester si une configurationvest accessible depuis une configurationuen une étape. (b) Le circuitCi+1construit à partir deCi.

unaire, construit le circuit simulant la machineDTIME(t(n))sur les entrées de taille n. Cette remarque nous servira notamment lorsqu’on abordera la question de l’uniformité des circuits.

Un peu de recul

Ce qui précède montre que la taille d’un circuit correspond au temps de calcul, tandis que sa profondeur correspond à l’espace. Il est facile de voir que la profondeur correspond également au temps de calcul parallèle sur une machine disposant de suffisamment de processeurs pour évaluer en même temps toutes les portes d’un même niveau.

Ainsi, le temps parallèle et l’espace sont polynomialement liés et s’interprètent comme la profondeur d’un circuit.

5-AA Corollaire

– Tout langage dePa des circuits de taille polynomiale.

– Tout langage dePSPACEa des circuits de profondeur polynomiale.

On peut en outre déduire de ces deux propositions un résultat de complétude dû à Lad-ner [Lad75b]. SoitVALEUR CIRCUITle problème suivant :

entrée: un circuitC dont toutes les entrées sont des constantes0ou1; – question: la valeur calculée par le circuitC est-elle1?

5.2. Circuits booléens 141 5-AB Proposition

Le problème VALEUR CIRCUIT est P-complet pour les réductions en espace logarith-mique.

Idée de la démonstration La proposition5-Xpermet d’évaluer en temps polynomial un circuit donné en entrée. DoncVALEUR CIRCUITP.

Pour laP-difficulté, soitAPreconnu par une machine fonctionnant en temps poly-nomial. Par la proposition5-Y,Aest reconnu par une famille(Cn)de circuits de taille polynomiale. Par ailleurs, la remarque5-Zmontre que ces circuits sont constructibles en espaceO(logn). Sia∈ {0, 1}nest fixé, on noteDale circuitCndans lequel l’entrée xi est remplacée par la constanteai (il s’agit donc deCn évalué ena).

La réduction f deAàVALEUR CIRCUITassocie alorsDx à x : xAssiC|x|(x) =1 ssi Dx vaut 1ssi f(x)VALEUR CIRCUIT. Puisque f est calculable en espace loga-rithmique, on en déduit queVALEUR CIRCUITestP-complet pour les réductions en

espace logarithmique. ⊓⊔

Des problèmesEXP-complets etNEXP-complets concernant les circuits sont proposés à l’exerciceB-C.

Dans le document COMPLEXITÉ ALGORITHMIQUE (Page 157-161)