• Aucun résultat trouvé

Circuits arithmétiques

Dans le document COMPLEXITÉ ALGORITHMIQUE (Page 166-173)

Uniformité et non-uniformité

5.6 Circuits arithmétiques

Outre les circuits booléens, nous aurons besoin par la suite de circuits arithmétiques qui calculent des polynômes. La définition est la même mais les circuits possèdent maintenant des portes d’addition et de multiplication plutôt que de disjonction et de conjonction.

Pour parler de polynômes, on se place sur un corpsK quelconque dans lequel vivront les coefficients du polynôme.

5-AO Définition

Un circuit arithmétique sur un corpsK est un graphe orienté acyclique (et connexe) tel que :

– les sommets de degré entrant nul sont appelésentréeset sont étiquetés par le nom d’une variablexi ou par une constante quelconqueαK;

– les autres sommets sont de degré entrant2et sont soit desportes d’addition, soit des portes de multiplication, respectivement étiquetées par+et×;

– un unique sommet est de degré sortant nul et est appelésortie; – les voisins entrants d’une porte sont appelés sesarguments.

Nous dirons qu’un circuit estsans constantes’il n’utilise pas de constante arbitraire deK autre que−1(pour pouvoir effectuer des soustractions).

La taille d’un circuit arithmétique est le nombre de portes de celui-ci.

5-AP Remarque Un circuit arithmétique sans constante, en tant que graphe éti-queté, peut bien sûr être encodé en binaire, par exemple par sa matrice d’adjacence et la liste des étiquettes des sommets. En revanche, si des constantes quelconques d’un corps infini sont autorisées alors celles-ci ne sont pas forcément encodable de manière finie.

Un circuit calcule un polynôme de manière naturelle.

5.6. Circuits arithmétiques 147 5-AQ Définition

SiC est un circuit arithmétique surKsur les variablesx1, . . . ,xn, alors chaque porteγ de C calcule un polynômeFγK[x1, . . . ,xn]défini comme suit :

– une porte γ étiquetée par une constante α K calcule le polynôme constant fγ(x1, . . . ,xn) =α;

– une porteγ étiquetée par une variablexi calcule le polynômefγ(x1, . . . ,xn) =xi; – une porteγétiquetée par+(respectivement×) et dont les arguments sontγ1etγ2

calcule le polynôme fγ=fγ

1+fγ

2(resp. fγ=fγ

1fγ

2).

Le polynôme calculé parC est le polynôme calculé par sa porte de sortie.

5-AR Remarque Attention, on manipule ici vraiment des polynômes, et non des fonctions polynomiales.

On trouvera quelques exemples de circuits arithmétiques à la figure5.4, illustrant notam-ment la technique des élévations au carré successives pour calculer l’entier22n en n+1 opérations.

Attardons-nous sur une remarque. Puisque le degré du polynôme calculé par une porte est au plus la somme de ceux de ses arguments, on déduit le lemme suivant.

5-AS Lemme

Si f est un polynôme calculé par un circuit de taillet, alors son degré est majoré par2t. Dans le même esprit,22n est le plus grand entier calculable enn+1opérations+ou×à partir de la constante−1, comme le montre le lemme suivant. On peut aussi majorer les coefficients d’un polynôme calculé par un circuit sans constante de taillet, résultat dont nous aurons besoin plus tard.

5-AT Lemme

– SiN Z est calculé par un circuit arithmétique sans constante de taille t, alors

|N|22t−1.

– Si pZ[x1, . . . ,xn]est calculé par un circuit arithmétique sans constante de taille t, alors les coefficients de psont strictement majorés en valeur absolue par222t.

Démonstration Pour le premier point, nous montrons que la meilleure stratégie pour calculer un grand entier est d’effectuer des élévations au carré successives. On raisonne

148 Chapitre 5. Uniformité et non-uniformité

Figure 5.4 – (a) Circuit arithmétique sans constante de taillen+2pour calculer22n. (b) Circuit arithmétique sans constante de taillen+1pour calculer le polynômex2n.

(c) Circuit arithmétique surRde taille 12 calculant le polynôme ((x+y)2+x+y+y z)(x+y+y z)(π+y z).

par récurrence surt. Pourt=1, la valeur du circuit estN=−1donc|N|22t−1. Pour t>1, si la porte de sortie du circuit est une addition, alorsN est la somme de deux termes calculés par un circuit de taille au plus t1, donc|N|2×22t−222t−1 par hypothèse de récurrence. Si c’est une multiplication, alors|N|(22t−2)2=22t−1. Donc l’hypothèse est montrée au rangt.

Pour le second point, un polynôme ennvariables calculé par un circuit de taille t a un degré2t (lemme5-AS). Ainsi, il a au plus(1+2t)nmonômes (correspondant au choix d’un degré entre0et2t pour chacune desnvariables).

On montre le résultat par récurrence sur t. Pour t =1, le résultat est clair puisque le polynôme calculé est soit la constante−1soit une variable xi. Pourt >1, soitC un circuit de taille t et g = g1g2sa porte de sortie, où◦ ∈ {×,+}. Par hypothèse de récurrence, les coefficients de g1 et g2 ont tous leur valeur absolue majorée par αt1=222(t−1).

Si g=g1+g2alors les coefficients de g sont tous la somme d’un coefficient de g1et d’un coefficient deg2donc ils sont majorés en valeur absolue part−1.

Sig=g1g2alors les coefficients deg sont la somme d’au plus(1+2t)nproduits d’un coefficient deg1et d’un coefficient de g2donc ils sont majorés en valeur absolue par

5.6. Circuits arithmétiques 149 (1+2t)nα2t−1.

Puisquenton a donc dans les deux cas :

αt (1+2t)tα2t−12t(t+1)22·22(t−1)=2t(t+1)+22t−1<222t.

⊓⊔

Dans certaines constructions, nous aurons besoin de « tronquer » un polynôme. On ap-pellecomposante homogènede degréid’un polynôme f(x1, . . . ,xn)la somme des monônes def de degréi. Par exemple, la composante homogène de degré2de

1+2x+y+3x2xy+5y22x3+x2y4

est3x2xy+5y2. Le polynôme f tronqué au degré d est la somme des composantes homogènes def de degré allant de0àd. Dans l’exemple précédent, le polynôme tronqué au degré2est1+2x+y+3x2xy+5y2. Sidn’est pas trop grand, il est facile de tronquer un polynôme calculé par un circuit.

5-AU Lemme

Si un circuit arithmétiqueC de taillet calcule un polynôme f, alors il existe un circuit arithmétiqueD de tailleαd2t calculant f tronqué au degréd, oùαest une constante indépendante deC.

Démonstration Pour chaque porte gdeC, on va ignorer les monônes de degréd+1 et on va calculer les composantes homogènes de degré compris entre0etd. On notera gila composante homogène de degréideg. Pour le calcul parDdes composantes ho-mogènes, on remplace chaque porteg deC pard+1portes deD, la porteicalculant gi.

Pour une constanteγ K en entrée, la porte deD correspondant à la composante homogène de degré0vautγ, tandis que les autres valent0. Pour une variable x, la porte deD correspondant à la composante homogène de degré1vautx, tandis que les autres valent0. Pour une porte g = p+q, pour touti on a gi = pi+qi, ce qui permet de calculer chaque gi par une simple somme en fonction des composantes homogènes de p etq. Enfin, si g = pq, alors pour touti on a gi =i

j=0pjqi−j, ce qui permet de calculer chaquegipar une circuiterie de taille2i+1(soit une circuiterie totale de tailledi=0(2i+1) = (d+1)2 pour lesd+1composantes homogènes). La construction est illustrée à la figure5.5.

La sortie du circuitDest alors la somme desd+1composantes homogènes de la sortie deC, ce qui prendd portes d’addition supplémentaires. Au total, la taille deD est

O(d2t). ⊓⊔

On aura remarqué que nos circuits n’ont pas de porte de division puisqu’on souhaite rester dans l’anneau des polynômes. Néanmoins, les divisions semblent a priori pouvoir accélérer le calcul, comme par exemple pour calculer le polynôme

d i=0

xi= xd+11 x1

150 Chapitre 5. Uniformité et non-uniformité

Figure 5.5 – Transformation d’un circuitC calculant f en un circuitD calculant f tronqué au degréd.

pour lequel la division parx1réduit le nombre d’opérations àO(logd). En réalité, tant qu’on calcule un polynôme de petit degré celles-ci n’apportent pas grand-chose comme le montre « l’élimination des divisions » de Strassen [Str73b] ci-dessous. C’est donc une autre raison pour n’autoriser que les opérations+et×dans nos circuits.

5-AV Proposition (Vermeidung von Divisionen)

SoitK un corps infini. SoitC un circuit arithmétique de taillet avec divisionscalculant dans le corps des fractions rationnellesK(x1, . . . ,xn). SiC calcule unpolynôme f de degré d, alors il existe un circuit arithmétiqueDsans divisionde tailleα(d3+d2t)calculant f, oùαest une constante indépendante deC etd.

Idée de la démonstration On souhaiterait remplacer une division f = p/(1q)par son développement en série entièrep

i⩾0qi, ce qui ne fait plus intervenir de division, mais cette somme est infinie. En utilisant le fait quef est un polynôme et en tronquant le résultat comme au lemme précédent, on peut montrer que le début de cette somme suffit, c’est-à-dire qu’on remplacera la division par pd

i=0qi puis on tronquera le résultat au degréd.

Démonstration Tout d’abord, on remplace chaque porte g deC par deux portes, la

5.6. Circuits arithmétiques 151 première calculant le numérateur deg et la seconde son dénominateur. Puisque

(p/q)(p/q) = (p p)/(q q) et (p/q) + (p/q) = (pq+pq)/(q q), on peut aisément calculer le numérateur et dénominateur d’une porte d’addition ou de multiplication à partir des numérateurs et dénominateurs de ses arguments, ce qui permet de calculer les numérateurs et dénominateurs de toutes les portes deC en multipliant la taille deC par une constante seulement. Dans ce nouveau circuit, il n’y a pas de division. Le polynôme f est alors le quotient du numérateur de la porte de sortie deC par son dénominateur, c’est-à-dire qu’on s’est ramené à une unique division f =p/q.

SoitαKn unn-uple de constantes tel queq(α) =β̸=0, qui existe carK est infini etq̸=0en tant que dénominateur. Pourxunn-uple de variables, on note alors

p(x) =β−1p(α+x) et q(x) =1β−1q(α+x),

Ainsi, le calcul de fs’effectue en calculant dans un premier tempsdi=0q′i, qui re-quiertO(d)portes supplémentaires une fois queq est calculé, c’est-à-dire une taille O(d+t)puisqueCa une tailleO(t). Puis on tronque le produit pd

i=0q′i au degré d. Le lemme5-AUindique qu’une telle opération multiplie la taille parO(d2). Ainsi,

fse calcule par un circuit de tailleO(d3+d2t).

Enfin, pour calculer f il suffit d’évaluer f en(xα)et on obtient donc un circuit

sans division et de tailleO(d3+d2t)pour f. ⊓⊔

Précisons enfin pour les lecteurs désirant s’entraîner que les exercicesB-BetB-Gen annexe traitent également de non-uniformité.

6

Algorithmes

Dans le document COMPLEXITÉ ALGORITHMIQUE (Page 166-173)